:py:mod:`airflow.providers.google.cloud.operators.vertex_ai.auto_ml`
====================================================================

.. py:module:: airflow.providers.google.cloud.operators.vertex_ai.auto_ml

.. autoapi-nested-parse::

   This module contains Google Vertex AI operators.



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

Classes
~~~~~~~

.. autoapisummary::

   airflow.providers.google.cloud.operators.vertex_ai.auto_ml.AutoMLTrainingJobBaseOperator
   airflow.providers.google.cloud.operators.vertex_ai.auto_ml.CreateAutoMLForecastingTrainingJobOperator
   airflow.providers.google.cloud.operators.vertex_ai.auto_ml.CreateAutoMLImageTrainingJobOperator
   airflow.providers.google.cloud.operators.vertex_ai.auto_ml.CreateAutoMLTabularTrainingJobOperator
   airflow.providers.google.cloud.operators.vertex_ai.auto_ml.CreateAutoMLTextTrainingJobOperator
   airflow.providers.google.cloud.operators.vertex_ai.auto_ml.CreateAutoMLVideoTrainingJobOperator
   airflow.providers.google.cloud.operators.vertex_ai.auto_ml.DeleteAutoMLTrainingJobOperator
   airflow.providers.google.cloud.operators.vertex_ai.auto_ml.ListAutoMLTrainingJobOperator




.. py:class:: AutoMLTrainingJobBaseOperator(*, project_id, region, display_name, labels = None, training_encryption_spec_key_name = None, model_encryption_spec_key_name = None, training_fraction_split = None, test_fraction_split = None, model_display_name = None, model_labels = None, sync = True, gcp_conn_id = 'google_cloud_default', delegate_to = None, impersonation_chain = None, **kwargs)

   Bases: :py:obj:`airflow.models.BaseOperator`

   The base class for operators that launch AutoML jobs on VertexAI.

   .. py:method:: on_kill(self)

      Callback called when the operator is killed.
      Cancel any running job.



.. py:class:: CreateAutoMLForecastingTrainingJobOperator(*, dataset_id, target_column, time_column, time_series_identifier_column, unavailable_at_forecast_columns, available_at_forecast_columns, forecast_horizon, data_granularity_unit, data_granularity_count, optimization_objective = None, column_specs = None, column_transformations = None, validation_fraction_split = None, predefined_split_column_name = None, weight_column = None, time_series_attribute_columns = None, context_window = None, export_evaluated_data_items = False, export_evaluated_data_items_bigquery_destination_uri = None, export_evaluated_data_items_override_destination = False, quantiles = None, validation_options = None, budget_milli_node_hours = 1000, **kwargs)

   Bases: :py:obj:`AutoMLTrainingJobBaseOperator`

   Create AutoML Forecasting Training job

   .. py:attribute:: template_fields
      :annotation: = ['region', 'impersonation_chain']

      

   .. py:attribute:: operator_extra_links
      

      

   .. py:method:: execute(self, context)

      This is the main method to derive when creating an operator.
      Context is the same dictionary used as when rendering jinja templates.

      Refer to get_template_context for more context.



.. py:class:: CreateAutoMLImageTrainingJobOperator(*, dataset_id, prediction_type = 'classification', multi_label = False, model_type = 'CLOUD', base_model = None, validation_fraction_split = None, training_filter_split = None, validation_filter_split = None, test_filter_split = None, budget_milli_node_hours = None, disable_early_stopping = False, **kwargs)

   Bases: :py:obj:`AutoMLTrainingJobBaseOperator`

   Create Auto ML Image Training job

   .. py:attribute:: template_fields
      :annotation: = ['region', 'impersonation_chain']

      

   .. py:attribute:: operator_extra_links
      

      

   .. py:method:: execute(self, context)

      This is the main method to derive when creating an operator.
      Context is the same dictionary used as when rendering jinja templates.

      Refer to get_template_context for more context.



.. py:class:: CreateAutoMLTabularTrainingJobOperator(*, dataset_id, target_column, optimization_prediction_type, optimization_objective = None, column_specs = None, column_transformations = None, optimization_objective_recall_value = None, optimization_objective_precision_value = None, validation_fraction_split = None, predefined_split_column_name = None, timestamp_split_column_name = None, weight_column = None, budget_milli_node_hours = 1000, disable_early_stopping = False, export_evaluated_data_items = False, export_evaluated_data_items_bigquery_destination_uri = None, export_evaluated_data_items_override_destination = False, **kwargs)

   Bases: :py:obj:`AutoMLTrainingJobBaseOperator`

   Create Auto ML Tabular Training job

   .. py:attribute:: template_fields
      :annotation: = ['region', 'impersonation_chain']

      

   .. py:attribute:: operator_extra_links
      

      

   .. py:method:: execute(self, context)

      This is the main method to derive when creating an operator.
      Context is the same dictionary used as when rendering jinja templates.

      Refer to get_template_context for more context.



.. py:class:: CreateAutoMLTextTrainingJobOperator(*, dataset_id, prediction_type, multi_label = False, sentiment_max = 10, validation_fraction_split = None, training_filter_split = None, validation_filter_split = None, test_filter_split = None, **kwargs)

   Bases: :py:obj:`AutoMLTrainingJobBaseOperator`

   Create Auto ML Text Training job

   .. py:attribute:: template_fields
      :annotation: = ['region', 'impersonation_chain']

      

   .. py:attribute:: operator_extra_links
      

      

   .. py:method:: execute(self, context)

      This is the main method to derive when creating an operator.
      Context is the same dictionary used as when rendering jinja templates.

      Refer to get_template_context for more context.



.. py:class:: CreateAutoMLVideoTrainingJobOperator(*, dataset_id, prediction_type = 'classification', model_type = 'CLOUD', training_filter_split = None, test_filter_split = None, **kwargs)

   Bases: :py:obj:`AutoMLTrainingJobBaseOperator`

   Create Auto ML Video Training job

   .. py:attribute:: template_fields
      :annotation: = ['region', 'impersonation_chain']

      

   .. py:attribute:: operator_extra_links
      

      

   .. py:method:: execute(self, context)

      This is the main method to derive when creating an operator.
      Context is the same dictionary used as when rendering jinja templates.

      Refer to get_template_context for more context.



.. py:class:: DeleteAutoMLTrainingJobOperator(*, training_pipeline_id, region, project_id, retry = DEFAULT, timeout = None, metadata = (), gcp_conn_id = 'google_cloud_default', delegate_to = None, impersonation_chain = None, **kwargs)

   Bases: :py:obj:`airflow.models.BaseOperator`

   Deletes an AutoMLForecastingTrainingJob, AutoMLImageTrainingJob, AutoMLTabularTrainingJob,
   AutoMLTextTrainingJob, or AutoMLVideoTrainingJob.

   .. py:attribute:: template_fields
      :annotation: = ['region', 'project_id', 'impersonation_chain']

      

   .. py:method:: execute(self, context)

      This is the main method to derive when creating an operator.
      Context is the same dictionary used as when rendering jinja templates.

      Refer to get_template_context for more context.



.. py:class:: ListAutoMLTrainingJobOperator(*, region, project_id, page_size = None, page_token = None, filter = None, read_mask = None, retry = DEFAULT, timeout = None, metadata = (), gcp_conn_id = 'google_cloud_default', delegate_to = None, impersonation_chain = None, **kwargs)

   Bases: :py:obj:`airflow.models.BaseOperator`

   Lists AutoMLForecastingTrainingJob, AutoMLImageTrainingJob, AutoMLTabularTrainingJob,
   AutoMLTextTrainingJob, or AutoMLVideoTrainingJob in a Location.

   .. py:attribute:: template_fields
      :annotation: = ['region', 'project_id', 'impersonation_chain']

      

   .. py:attribute:: operator_extra_links
      

      

   .. py:method:: execute(self, context)

      This is the main method to derive when creating an operator.
      Context is the same dictionary used as when rendering jinja templates.

      Refer to get_template_context for more context.



