apache-airflow-providers-google 10.21.1rc2__tar.gz → 10.22.0rc1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/PKG-INFO +10 -10
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/README.rst +5 -5
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/__init__.py +3 -3
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/hooks/cloud_run.py +124 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/hooks/cloud_storage_transfer_service.py +2 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/operators/cloud_run.py +143 -2
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/operators/dataproc.py +71 -89
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/triggers/dataproc.py +4 -1
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/common/hooks/base_google.py +31 -6
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/get_provider_info.py +4 -3
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/pyproject.toml +5 -5
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/LICENSE +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/ads/.gitignore +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/ads/__init__.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/ads/hooks/__init__.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/ads/hooks/ads.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/ads/operators/__init__.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/ads/operators/ads.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/ads/transfers/__init__.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/ads/transfers/ads_to_gcs.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/__init__.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/_internal_client/__init__.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/_internal_client/secret_manager_client.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/example_dags/__init__.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/example_dags/example_cloud_task.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/example_dags/example_facebook_ads_to_gcs.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/example_dags/example_looker.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/example_dags/example_presto_to_gcs.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/example_dags/example_salesforce_to_gcs.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/fs/__init__.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/fs/gcs.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/hooks/__init__.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/hooks/automl.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/hooks/bigquery.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/hooks/bigquery_dts.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/hooks/bigtable.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/hooks/cloud_batch.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/hooks/cloud_build.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/hooks/cloud_composer.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/hooks/cloud_memorystore.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/hooks/cloud_sql.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/hooks/compute.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/hooks/compute_ssh.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/hooks/datacatalog.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/hooks/dataflow.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/hooks/dataform.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/hooks/datafusion.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/hooks/datapipeline.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/hooks/dataplex.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/hooks/dataprep.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/hooks/dataproc.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/hooks/dataproc_metastore.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/hooks/datastore.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/hooks/dlp.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/hooks/functions.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/hooks/gcs.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/hooks/gdm.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/hooks/kms.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/hooks/kubernetes_engine.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/hooks/life_sciences.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/hooks/looker.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/hooks/mlengine.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/hooks/natural_language.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/hooks/os_login.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/hooks/pubsub.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/hooks/secret_manager.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/hooks/spanner.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/hooks/speech_to_text.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/hooks/stackdriver.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/hooks/tasks.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/hooks/text_to_speech.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/hooks/translate.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/hooks/vertex_ai/__init__.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/hooks/vertex_ai/auto_ml.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/hooks/vertex_ai/batch_prediction_job.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/hooks/vertex_ai/custom_job.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/hooks/vertex_ai/dataset.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/hooks/vertex_ai/endpoint_service.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/hooks/vertex_ai/generative_model.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/hooks/vertex_ai/hyperparameter_tuning_job.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/hooks/vertex_ai/model_service.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/hooks/vertex_ai/pipeline_job.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/hooks/vertex_ai/prediction_service.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/hooks/video_intelligence.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/hooks/vision.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/hooks/workflows.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/links/__init__.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/links/automl.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/links/base.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/links/bigquery.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/links/bigquery_dts.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/links/bigtable.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/links/cloud_build.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/links/cloud_functions.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/links/cloud_memorystore.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/links/cloud_sql.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/links/cloud_storage_transfer.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/links/cloud_tasks.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/links/compute.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/links/data_loss_prevention.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/links/datacatalog.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/links/dataflow.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/links/dataform.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/links/datafusion.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/links/dataplex.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/links/dataprep.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/links/dataproc.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/links/datastore.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/links/kubernetes_engine.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/links/life_sciences.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/links/mlengine.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/links/pubsub.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/links/spanner.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/links/stackdriver.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/links/translate.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/links/vertex_ai.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/links/workflows.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/log/__init__.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/log/gcs_task_handler.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/log/stackdriver_task_handler.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/openlineage/BigQueryErrorRunFacet.json +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/openlineage/BigQueryJobRunFacet.json +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/openlineage/__init__.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/openlineage/mixins.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/openlineage/utils.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/operators/__init__.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/operators/automl.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/operators/bigquery.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/operators/bigquery_dts.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/operators/bigtable.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/operators/cloud_base.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/operators/cloud_batch.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/operators/cloud_build.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/operators/cloud_composer.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/operators/cloud_memorystore.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/operators/cloud_sql.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/operators/cloud_storage_transfer_service.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/operators/compute.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/operators/datacatalog.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/operators/dataflow.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/operators/dataform.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/operators/datafusion.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/operators/datapipeline.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/operators/dataplex.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/operators/dataprep.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/operators/dataproc_metastore.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/operators/datastore.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/operators/dlp.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/operators/functions.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/operators/gcs.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/operators/kubernetes_engine.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/operators/life_sciences.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/operators/looker.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/operators/mlengine.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/operators/natural_language.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/operators/pubsub.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/operators/spanner.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/operators/speech_to_text.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/operators/stackdriver.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/operators/tasks.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/operators/text_to_speech.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/operators/translate.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/operators/translate_speech.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/operators/vertex_ai/__init__.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/operators/vertex_ai/auto_ml.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/operators/vertex_ai/batch_prediction_job.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/operators/vertex_ai/custom_job.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/operators/vertex_ai/dataset.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/operators/vertex_ai/endpoint_service.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/operators/vertex_ai/generative_model.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/operators/vertex_ai/hyperparameter_tuning_job.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/operators/vertex_ai/model_service.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/operators/vertex_ai/pipeline_job.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/operators/video_intelligence.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/operators/vision.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/operators/workflows.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/secrets/__init__.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/secrets/secret_manager.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/sensors/__init__.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/sensors/bigquery.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/sensors/bigquery_dts.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/sensors/bigtable.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/sensors/cloud_composer.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/sensors/cloud_storage_transfer_service.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/sensors/dataflow.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/sensors/dataform.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/sensors/datafusion.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/sensors/dataplex.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/sensors/dataprep.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/sensors/dataproc.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/sensors/dataproc_metastore.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/sensors/gcs.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/sensors/looker.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/sensors/pubsub.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/sensors/tasks.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/sensors/workflows.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/transfers/__init__.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/transfers/adls_to_gcs.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/transfers/azure_blob_to_gcs.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/transfers/azure_fileshare_to_gcs.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/transfers/bigquery_to_bigquery.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/transfers/bigquery_to_gcs.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/transfers/bigquery_to_mssql.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/transfers/bigquery_to_mysql.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/transfers/bigquery_to_postgres.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/transfers/bigquery_to_sql.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/transfers/calendar_to_gcs.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/transfers/cassandra_to_gcs.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/transfers/facebook_ads_to_gcs.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/transfers/gcs_to_bigquery.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/transfers/gcs_to_gcs.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/transfers/gcs_to_local.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/transfers/gcs_to_sftp.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/transfers/gdrive_to_gcs.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/transfers/gdrive_to_local.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/transfers/local_to_gcs.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/transfers/mssql_to_gcs.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/transfers/mysql_to_gcs.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/transfers/oracle_to_gcs.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/transfers/postgres_to_gcs.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/transfers/presto_to_gcs.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/transfers/s3_to_gcs.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/transfers/salesforce_to_gcs.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/transfers/sftp_to_gcs.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/transfers/sheets_to_gcs.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/transfers/sql_to_gcs.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/transfers/trino_to_gcs.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/triggers/__init__.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/triggers/bigquery.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/triggers/bigquery_dts.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/triggers/cloud_batch.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/triggers/cloud_build.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/triggers/cloud_composer.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/triggers/cloud_run.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/triggers/cloud_sql.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/triggers/cloud_storage_transfer_service.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/triggers/dataflow.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/triggers/datafusion.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/triggers/dataplex.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/triggers/gcs.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/triggers/kubernetes_engine.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/triggers/mlengine.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/triggers/pubsub.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/triggers/vertex_ai.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/utils/__init__.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/utils/bigquery.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/utils/bigquery_get_data.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/utils/credentials_provider.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/utils/dataform.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/utils/datafusion.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/utils/dataproc.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/utils/external_token_supplier.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/utils/field_sanitizer.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/utils/field_validator.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/utils/helpers.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/utils/mlengine_operator_utils.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/cloud/utils/mlengine_prediction_summary.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/common/__init__.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/common/auth_backend/__init__.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/common/auth_backend/google_openid.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/common/consts.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/common/hooks/__init__.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/common/hooks/discovery_api.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/common/links/__init__.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/common/links/storage.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/common/utils/__init__.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/common/utils/id_token_credentials.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/datasets/__init__.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/datasets/bigquery.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/firebase/__init__.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/firebase/hooks/__init__.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/firebase/hooks/firestore.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/firebase/operators/__init__.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/firebase/operators/firestore.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/go_module_utils.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/leveldb/__init__.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/leveldb/hooks/__init__.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/leveldb/hooks/leveldb.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/leveldb/operators/__init__.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/leveldb/operators/leveldb.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/marketing_platform/__init__.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/marketing_platform/example_dags/__init__.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/marketing_platform/example_dags/example_display_video.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/marketing_platform/hooks/__init__.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/marketing_platform/hooks/analytics.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/marketing_platform/hooks/analytics_admin.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/marketing_platform/hooks/campaign_manager.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/marketing_platform/hooks/display_video.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/marketing_platform/hooks/search_ads.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/marketing_platform/links/__init__.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/marketing_platform/links/analytics_admin.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/marketing_platform/operators/__init__.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/marketing_platform/operators/analytics.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/marketing_platform/operators/analytics_admin.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/marketing_platform/operators/campaign_manager.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/marketing_platform/operators/display_video.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/marketing_platform/operators/search_ads.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/marketing_platform/sensors/__init__.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/marketing_platform/sensors/campaign_manager.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/marketing_platform/sensors/display_video.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/marketing_platform/sensors/search_ads.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/suite/__init__.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/suite/hooks/__init__.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/suite/hooks/calendar.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/suite/hooks/drive.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/suite/hooks/sheets.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/suite/operators/__init__.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/suite/operators/sheets.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/suite/sensors/__init__.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/suite/sensors/drive.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/suite/transfers/__init__.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/suite/transfers/gcs_to_gdrive.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/suite/transfers/gcs_to_sheets.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/suite/transfers/local_to_drive.py +0 -0
- {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/airflow/providers/google/suite/transfers/sql_to_sheets.py +0 -0
{apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/PKG-INFO
RENAMED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: apache-airflow-providers-google
|
3
|
-
Version: 10.
|
3
|
+
Version: 10.22.0rc1
|
4
4
|
Summary: Provider package apache-airflow-providers-google for Apache Airflow
|
5
5
|
Keywords: airflow-provider,google,airflow,integration
|
6
6
|
Author-email: Apache Software Foundation <dev@airflow.apache.org>
|
@@ -24,10 +24,10 @@ Classifier: Topic :: System :: Monitoring
|
|
24
24
|
Requires-Dist: PyOpenSSL>=23.0.0
|
25
25
|
Requires-Dist: apache-airflow-providers-common-compat>=1.1.0rc0
|
26
26
|
Requires-Dist: apache-airflow-providers-common-sql>=1.7.2rc0
|
27
|
-
Requires-Dist: apache-airflow>=2.
|
27
|
+
Requires-Dist: apache-airflow>=2.8.0rc0
|
28
28
|
Requires-Dist: asgiref>=3.5.2
|
29
29
|
Requires-Dist: dill>=0.2.3
|
30
|
-
Requires-Dist: gcloud-aio-auth>=
|
30
|
+
Requires-Dist: gcloud-aio-auth>=5.2.0
|
31
31
|
Requires-Dist: gcloud-aio-bigquery>=6.1.2
|
32
32
|
Requires-Dist: gcloud-aio-storage>=9.0.0
|
33
33
|
Requires-Dist: gcsfs>=2023.10.0
|
@@ -107,8 +107,8 @@ Requires-Dist: apache-airflow-providers-sftp ; extra == "sftp"
|
|
107
107
|
Requires-Dist: apache-airflow-providers-ssh ; extra == "ssh"
|
108
108
|
Requires-Dist: apache-airflow-providers-trino ; extra == "trino"
|
109
109
|
Project-URL: Bug Tracker, https://github.com/apache/airflow/issues
|
110
|
-
Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-google/10.
|
111
|
-
Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-google/10.
|
110
|
+
Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-google/10.22.0/changelog.html
|
111
|
+
Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-google/10.22.0
|
112
112
|
Project-URL: Slack Chat, https://s.apache.org/airflow-slack
|
113
113
|
Project-URL: Source Code, https://github.com/apache/airflow
|
114
114
|
Project-URL: Twitter, https://twitter.com/ApacheAirflow
|
@@ -177,7 +177,7 @@ Provides-Extra: trino
|
|
177
177
|
|
178
178
|
Package ``apache-airflow-providers-google``
|
179
179
|
|
180
|
-
Release: ``10.
|
180
|
+
Release: ``10.22.0.rc1``
|
181
181
|
|
182
182
|
|
183
183
|
Google services including:
|
@@ -197,7 +197,7 @@ This is a provider package for ``google`` provider. All classes for this provide
|
|
197
197
|
are in ``airflow.providers.google`` python package.
|
198
198
|
|
199
199
|
You can find package information and changelog for the provider
|
200
|
-
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-google/10.
|
200
|
+
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-google/10.22.0/>`_.
|
201
201
|
|
202
202
|
Installation
|
203
203
|
------------
|
@@ -214,12 +214,12 @@ Requirements
|
|
214
214
|
========================================== =========================================
|
215
215
|
PIP package Version required
|
216
216
|
========================================== =========================================
|
217
|
-
``apache-airflow`` ``>=2.
|
217
|
+
``apache-airflow`` ``>=2.8.0``
|
218
218
|
``apache-airflow-providers-common-compat`` ``>=1.1.0``
|
219
219
|
``apache-airflow-providers-common-sql`` ``>=1.7.2``
|
220
220
|
``asgiref`` ``>=3.5.2``
|
221
221
|
``dill`` ``>=0.2.3``
|
222
|
-
``gcloud-aio-auth`` ``>=
|
222
|
+
``gcloud-aio-auth`` ``>=5.2.0``
|
223
223
|
``gcloud-aio-bigquery`` ``>=6.1.2``
|
224
224
|
``gcloud-aio-storage`` ``>=9.0.0``
|
225
225
|
``gcsfs`` ``>=2023.10.0``
|
@@ -318,4 +318,4 @@ Dependent package
|
|
318
318
|
======================================================================================================================== ====================
|
319
319
|
|
320
320
|
The changelog for the provider package can be found in the
|
321
|
-
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-google/10.
|
321
|
+
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-google/10.22.0/changelog.html>`_.
|
{apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0rc1}/README.rst
RENAMED
@@ -42,7 +42,7 @@
|
|
42
42
|
|
43
43
|
Package ``apache-airflow-providers-google``
|
44
44
|
|
45
|
-
Release: ``10.
|
45
|
+
Release: ``10.22.0.rc1``
|
46
46
|
|
47
47
|
|
48
48
|
Google services including:
|
@@ -62,7 +62,7 @@ This is a provider package for ``google`` provider. All classes for this provide
|
|
62
62
|
are in ``airflow.providers.google`` python package.
|
63
63
|
|
64
64
|
You can find package information and changelog for the provider
|
65
|
-
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-google/10.
|
65
|
+
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-google/10.22.0/>`_.
|
66
66
|
|
67
67
|
Installation
|
68
68
|
------------
|
@@ -79,12 +79,12 @@ Requirements
|
|
79
79
|
========================================== =========================================
|
80
80
|
PIP package Version required
|
81
81
|
========================================== =========================================
|
82
|
-
``apache-airflow`` ``>=2.
|
82
|
+
``apache-airflow`` ``>=2.8.0``
|
83
83
|
``apache-airflow-providers-common-compat`` ``>=1.1.0``
|
84
84
|
``apache-airflow-providers-common-sql`` ``>=1.7.2``
|
85
85
|
``asgiref`` ``>=3.5.2``
|
86
86
|
``dill`` ``>=0.2.3``
|
87
|
-
``gcloud-aio-auth`` ``>=
|
87
|
+
``gcloud-aio-auth`` ``>=5.2.0``
|
88
88
|
``gcloud-aio-bigquery`` ``>=6.1.2``
|
89
89
|
``gcloud-aio-storage`` ``>=9.0.0``
|
90
90
|
``gcsfs`` ``>=2023.10.0``
|
@@ -183,4 +183,4 @@ Dependent package
|
|
183
183
|
======================================================================================================================== ====================
|
184
184
|
|
185
185
|
The changelog for the provider package can be found in the
|
186
|
-
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-google/10.
|
186
|
+
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-google/10.22.0/changelog.html>`_.
|
@@ -29,11 +29,11 @@ from airflow import __version__ as airflow_version
|
|
29
29
|
|
30
30
|
__all__ = ["__version__"]
|
31
31
|
|
32
|
-
__version__ = "10.
|
32
|
+
__version__ = "10.22.0"
|
33
33
|
|
34
34
|
if packaging.version.parse(packaging.version.parse(airflow_version).base_version) < packaging.version.parse(
|
35
|
-
"2.
|
35
|
+
"2.8.0"
|
36
36
|
):
|
37
37
|
raise RuntimeError(
|
38
|
-
f"The package `apache-airflow-providers-google:{__version__}` needs Apache Airflow 2.
|
38
|
+
f"The package `apache-airflow-providers-google:{__version__}` needs Apache Airflow 2.8.0+"
|
39
39
|
)
|
@@ -22,13 +22,19 @@ from typing import TYPE_CHECKING, Any, Iterable, Sequence
|
|
22
22
|
|
23
23
|
from google.cloud.run_v2 import (
|
24
24
|
CreateJobRequest,
|
25
|
+
CreateServiceRequest,
|
25
26
|
DeleteJobRequest,
|
27
|
+
DeleteServiceRequest,
|
26
28
|
GetJobRequest,
|
29
|
+
GetServiceRequest,
|
27
30
|
Job,
|
28
31
|
JobsAsyncClient,
|
29
32
|
JobsClient,
|
30
33
|
ListJobsRequest,
|
31
34
|
RunJobRequest,
|
35
|
+
Service,
|
36
|
+
ServicesAsyncClient,
|
37
|
+
ServicesClient,
|
32
38
|
UpdateJobRequest,
|
33
39
|
)
|
34
40
|
from google.longrunning import operations_pb2 # type: ignore[attr-defined]
|
@@ -39,6 +45,7 @@ from airflow.providers.google.common.hooks.base_google import PROVIDE_PROJECT_ID
|
|
39
45
|
|
40
46
|
if TYPE_CHECKING:
|
41
47
|
from google.api_core import operation
|
48
|
+
from google.api_core.operation_async import AsyncOperation
|
42
49
|
from google.cloud.run_v2.services.jobs import pagers
|
43
50
|
|
44
51
|
|
@@ -183,3 +190,120 @@ class CloudRunAsyncHook(GoogleBaseHook):
|
|
183
190
|
return await self.get_conn().get_operation(
|
184
191
|
operations_pb2.GetOperationRequest(name=operation_name), timeout=120
|
185
192
|
)
|
193
|
+
|
194
|
+
|
195
|
+
class CloudRunServiceHook(GoogleBaseHook):
|
196
|
+
"""
|
197
|
+
Hook for the Google Cloud Run services.
|
198
|
+
|
199
|
+
:param gcp_conn_id: The connection ID to use when fetching connection info.
|
200
|
+
:param impersonation_chain: Optional service account to impersonate using short-term
|
201
|
+
credentials, or chained list of accounts required to get the access_token
|
202
|
+
of the last account in the list, which will be impersonated in the request.
|
203
|
+
If set as a string, the account must grant the originating account
|
204
|
+
the Service Account Token Creator IAM role.
|
205
|
+
If set as a sequence, the identities from the list must grant
|
206
|
+
Service Account Token Creator IAM role to the directly preceding identity, with first
|
207
|
+
account from the list granting this role to the originating account.
|
208
|
+
"""
|
209
|
+
|
210
|
+
def __init__(
|
211
|
+
self,
|
212
|
+
gcp_conn_id: str = "google_cloud_default",
|
213
|
+
impersonation_chain: str | Sequence[str] | None = None,
|
214
|
+
):
|
215
|
+
self._client: ServicesClient | None = None
|
216
|
+
super().__init__(gcp_conn_id=gcp_conn_id, impersonation_chain=impersonation_chain)
|
217
|
+
|
218
|
+
def get_conn(self):
|
219
|
+
if self._client is None:
|
220
|
+
self._client = ServicesClient(credentials=self.get_credentials(), client_info=CLIENT_INFO)
|
221
|
+
|
222
|
+
return self._client
|
223
|
+
|
224
|
+
@GoogleBaseHook.fallback_to_default_project_id
|
225
|
+
def get_service(self, service_name: str, region: str, project_id: str = PROVIDE_PROJECT_ID):
|
226
|
+
get_service_request = GetServiceRequest(
|
227
|
+
name=f"projects/{project_id}/locations/{region}/services/{service_name}"
|
228
|
+
)
|
229
|
+
return self.get_conn().get_service(get_service_request)
|
230
|
+
|
231
|
+
@GoogleBaseHook.fallback_to_default_project_id
|
232
|
+
def create_service(
|
233
|
+
self, service_name: str, service: Service | dict, region: str, project_id: str = PROVIDE_PROJECT_ID
|
234
|
+
) -> Service:
|
235
|
+
if isinstance(service, dict):
|
236
|
+
service = Service(service)
|
237
|
+
|
238
|
+
create_request = CreateServiceRequest(
|
239
|
+
parent=f"projects/{project_id}/locations/{region}",
|
240
|
+
service=service,
|
241
|
+
service_id=service_name,
|
242
|
+
)
|
243
|
+
|
244
|
+
operation = self.get_conn().create_service(create_request)
|
245
|
+
return operation.result()
|
246
|
+
|
247
|
+
@GoogleBaseHook.fallback_to_default_project_id
|
248
|
+
def delete_service(self, service_name: str, region: str, project_id: str = PROVIDE_PROJECT_ID) -> Service:
|
249
|
+
delete_request = DeleteServiceRequest(
|
250
|
+
name=f"projects/{project_id}/locations/{region}/services/{service_name}"
|
251
|
+
)
|
252
|
+
|
253
|
+
operation = self.get_conn().delete_service(delete_request)
|
254
|
+
return operation.result()
|
255
|
+
|
256
|
+
|
257
|
+
class CloudRunServiceAsyncHook(GoogleBaseHook):
|
258
|
+
"""
|
259
|
+
Async hook for the Google Cloud Run services.
|
260
|
+
|
261
|
+
:param gcp_conn_id: The connection ID to use when fetching connection info.
|
262
|
+
:param impersonation_chain: Optional service account to impersonate using short-term
|
263
|
+
credentials, or chained list of accounts required to get the access_token
|
264
|
+
of the last account in the list, which will be impersonated in the request.
|
265
|
+
If set as a string, the account must grant the originating account
|
266
|
+
the Service Account Token Creator IAM role.
|
267
|
+
If set as a sequence, the identities from the list must grant
|
268
|
+
Service Account Token Creator IAM role to the directly preceding identity, with first
|
269
|
+
account from the list granting this role to the originating account.
|
270
|
+
"""
|
271
|
+
|
272
|
+
def __init__(
|
273
|
+
self,
|
274
|
+
gcp_conn_id: str = "google_cloud_default",
|
275
|
+
impersonation_chain: str | Sequence[str] | None = None,
|
276
|
+
):
|
277
|
+
self._client: ServicesClient | None = None
|
278
|
+
super().__init__(gcp_conn_id=gcp_conn_id, impersonation_chain=impersonation_chain)
|
279
|
+
|
280
|
+
def get_conn(self):
|
281
|
+
if self._client is None:
|
282
|
+
self._client = ServicesAsyncClient(credentials=self.get_credentials(), client_info=CLIENT_INFO)
|
283
|
+
|
284
|
+
return self._client
|
285
|
+
|
286
|
+
@GoogleBaseHook.fallback_to_default_project_id
|
287
|
+
async def create_service(
|
288
|
+
self, service_name: str, service: Service | dict, region: str, project_id: str = PROVIDE_PROJECT_ID
|
289
|
+
) -> AsyncOperation:
|
290
|
+
if isinstance(service, dict):
|
291
|
+
service = Service(service)
|
292
|
+
|
293
|
+
create_request = CreateServiceRequest(
|
294
|
+
parent=f"projects/{project_id}/locations/{region}",
|
295
|
+
service=service,
|
296
|
+
service_id=service_name,
|
297
|
+
)
|
298
|
+
|
299
|
+
return await self.get_conn().create_service(create_request)
|
300
|
+
|
301
|
+
@GoogleBaseHook.fallback_to_default_project_id
|
302
|
+
async def delete_service(
|
303
|
+
self, service_name: str, region: str, project_id: str = PROVIDE_PROJECT_ID
|
304
|
+
) -> AsyncOperation:
|
305
|
+
delete_request = DeleteServiceRequest(
|
306
|
+
name=f"projects/{project_id}/locations/{region}/services/{service_name}"
|
307
|
+
)
|
308
|
+
|
309
|
+
return await self.get_conn().delete_service(delete_request)
|
@@ -552,6 +552,8 @@ class CloudDataTransferServiceHook(GoogleBaseHook):
|
|
552
552
|
class CloudDataTransferServiceAsyncHook(GoogleBaseAsyncHook):
|
553
553
|
"""Asynchronous hook for Google Storage Transfer Service."""
|
554
554
|
|
555
|
+
sync_hook_class = CloudDataTransferServiceHook
|
556
|
+
|
555
557
|
def __init__(self, project_id: str = PROVIDE_PROJECT_ID, **kwargs: Any) -> None:
|
556
558
|
super().__init__(**kwargs)
|
557
559
|
self.project_id = project_id
|
@@ -19,11 +19,13 @@ from __future__ import annotations
|
|
19
19
|
|
20
20
|
from typing import TYPE_CHECKING, Any, Sequence
|
21
21
|
|
22
|
-
|
22
|
+
import google.cloud.exceptions
|
23
|
+
from google.api_core.exceptions import AlreadyExists
|
24
|
+
from google.cloud.run_v2 import Job, Service
|
23
25
|
|
24
26
|
from airflow.configuration import conf
|
25
27
|
from airflow.exceptions import AirflowException
|
26
|
-
from airflow.providers.google.cloud.hooks.cloud_run import CloudRunHook
|
28
|
+
from airflow.providers.google.cloud.hooks.cloud_run import CloudRunHook, CloudRunServiceHook
|
27
29
|
from airflow.providers.google.cloud.operators.cloud_base import GoogleCloudBaseOperator
|
28
30
|
from airflow.providers.google.cloud.triggers.cloud_run import CloudRunJobFinishedTrigger, RunJobStatus
|
29
31
|
|
@@ -353,3 +355,142 @@ class CloudRunExecuteJobOperator(GoogleCloudBaseOperator):
|
|
353
355
|
except Exception:
|
354
356
|
error = operation.exception(timeout=self.timeout_seconds)
|
355
357
|
raise AirflowException(error)
|
358
|
+
|
359
|
+
|
360
|
+
class CloudRunCreateServiceOperator(GoogleCloudBaseOperator):
|
361
|
+
"""
|
362
|
+
Creates a Service without executing it. Pushes the created service to xcom.
|
363
|
+
|
364
|
+
:param project_id: Required. The ID of the Google Cloud project that the service belongs to.
|
365
|
+
:param region: Required. The ID of the Google Cloud region that the service belongs to.
|
366
|
+
:param service_name: Required. The name of the service to create.
|
367
|
+
:param service: The service descriptor containing the configuration of the service to submit.
|
368
|
+
:param gcp_conn_id: The connection ID used to connect to Google Cloud.
|
369
|
+
:param impersonation_chain: Optional service account to impersonate using short-term
|
370
|
+
credentials, or chained list of accounts required to get the access_token
|
371
|
+
of the last account in the list, which will be impersonated in the request.
|
372
|
+
If set as a string, the account must grant the originating account
|
373
|
+
the Service Account Token Creator IAM role.
|
374
|
+
If set as a sequence, the identities from the list must grant
|
375
|
+
Service Account Token Creator IAM role to the directly preceding identity, with first
|
376
|
+
account from the list granting this role to the originating account (templated).
|
377
|
+
"""
|
378
|
+
|
379
|
+
template_fields = ("project_id", "region", "gcp_conn_id", "impersonation_chain", "service_name")
|
380
|
+
|
381
|
+
def __init__(
|
382
|
+
self,
|
383
|
+
project_id: str,
|
384
|
+
region: str,
|
385
|
+
service_name: str,
|
386
|
+
service: dict | Service,
|
387
|
+
gcp_conn_id: str = "google_cloud_default",
|
388
|
+
impersonation_chain: str | Sequence[str] | None = None,
|
389
|
+
**kwargs,
|
390
|
+
):
|
391
|
+
super().__init__(**kwargs)
|
392
|
+
self.project_id = project_id
|
393
|
+
self.region = region
|
394
|
+
self.service = service
|
395
|
+
self.service_name = service_name
|
396
|
+
self.gcp_conn_id = gcp_conn_id
|
397
|
+
self.impersonation_chain = impersonation_chain
|
398
|
+
self._validate_inputs()
|
399
|
+
|
400
|
+
def _validate_inputs(self):
|
401
|
+
missing_fields = [k for k in ["project_id", "region", "service_name"] if not getattr(self, k)]
|
402
|
+
if not self.project_id or not self.region or not self.service_name:
|
403
|
+
raise AirflowException(
|
404
|
+
f"Required parameters are missing: {missing_fields}. These parameters be passed either as "
|
405
|
+
"keyword parameter or as extra field in Airflow connection definition. Both are not set!"
|
406
|
+
)
|
407
|
+
|
408
|
+
def execute(self, context: Context):
|
409
|
+
hook: CloudRunServiceHook = CloudRunServiceHook(
|
410
|
+
gcp_conn_id=self.gcp_conn_id, impersonation_chain=self.impersonation_chain
|
411
|
+
)
|
412
|
+
|
413
|
+
try:
|
414
|
+
service = hook.create_service(
|
415
|
+
service=self.service,
|
416
|
+
service_name=self.service_name,
|
417
|
+
region=self.region,
|
418
|
+
project_id=self.project_id,
|
419
|
+
)
|
420
|
+
except AlreadyExists:
|
421
|
+
self.log.info(
|
422
|
+
"Already existed Cloud run service, service_name=%s, region=%s",
|
423
|
+
self.service_name,
|
424
|
+
self.region,
|
425
|
+
)
|
426
|
+
return hook.get_service(
|
427
|
+
service_name=self.service_name, region=self.region, project_id=self.project_id
|
428
|
+
)
|
429
|
+
except google.cloud.exceptions.GoogleCloudError as e:
|
430
|
+
self.log.error("An error occurred. Exiting.")
|
431
|
+
raise e
|
432
|
+
|
433
|
+
return Service.to_dict(service)
|
434
|
+
|
435
|
+
|
436
|
+
class CloudRunDeleteServiceOperator(GoogleCloudBaseOperator):
|
437
|
+
"""
|
438
|
+
Deletes a Service without executing it. Pushes the deleted service to xcom.
|
439
|
+
|
440
|
+
:param project_id: Required. The ID of the Google Cloud project that the service belongs to.
|
441
|
+
:param region: Required. The ID of the Google Cloud region that the service belongs to.
|
442
|
+
:param service_name: Required. The name of the service to create.
|
443
|
+
:param gcp_conn_id: The connection ID used to connect to Google Cloud.
|
444
|
+
:param impersonation_chain: Optional service account to impersonate using short-term
|
445
|
+
credentials, or chained list of accounts required to get the access_token
|
446
|
+
of the last account in the list, which will be impersonated in the request.
|
447
|
+
If set as a string, the account must grant the originating account
|
448
|
+
the Service Account Token Creator IAM role.
|
449
|
+
If set as a sequence, the identities from the list must grant
|
450
|
+
Service Account Token Creator IAM role to the directly preceding identity, with first
|
451
|
+
account from the list granting this role to the originating account (templated).
|
452
|
+
"""
|
453
|
+
|
454
|
+
template_fields = ("project_id", "region", "gcp_conn_id", "impersonation_chain", "service_name")
|
455
|
+
|
456
|
+
def __init__(
|
457
|
+
self,
|
458
|
+
project_id: str,
|
459
|
+
region: str,
|
460
|
+
service_name: str,
|
461
|
+
gcp_conn_id: str = "google_cloud_default",
|
462
|
+
impersonation_chain: str | Sequence[str] | None = None,
|
463
|
+
**kwargs,
|
464
|
+
):
|
465
|
+
super().__init__(**kwargs)
|
466
|
+
self.project_id = project_id
|
467
|
+
self.region = region
|
468
|
+
self.service_name = service_name
|
469
|
+
self.gcp_conn_id = gcp_conn_id
|
470
|
+
self.impersonation_chain = impersonation_chain
|
471
|
+
self._validate_inputs()
|
472
|
+
|
473
|
+
def _validate_inputs(self):
|
474
|
+
missing_fields = [k for k in ["project_id", "region", "service_name"] if not getattr(self, k)]
|
475
|
+
if not self.project_id or not self.region or not self.service_name:
|
476
|
+
raise AirflowException(
|
477
|
+
f"Required parameters are missing: {missing_fields}. These parameters be passed either as "
|
478
|
+
"keyword parameter or as extra field in Airflow connection definition. Both are not set!"
|
479
|
+
)
|
480
|
+
|
481
|
+
def execute(self, context: Context):
|
482
|
+
hook: CloudRunServiceHook = CloudRunServiceHook(
|
483
|
+
gcp_conn_id=self.gcp_conn_id, impersonation_chain=self.impersonation_chain
|
484
|
+
)
|
485
|
+
|
486
|
+
try:
|
487
|
+
service = hook.delete_service(
|
488
|
+
service_name=self.service_name,
|
489
|
+
region=self.region,
|
490
|
+
project_id=self.project_id,
|
491
|
+
)
|
492
|
+
except google.cloud.exceptions.NotFound as e:
|
493
|
+
self.log.error("An error occurred. Not Found.")
|
494
|
+
raise e
|
495
|
+
|
496
|
+
return Service.to_dict(service)
|