apache-airflow-providers-google 10.21.1rc2__tar.gz → 10.22.0__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.
Files changed (315) hide show
  1. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/PKG-INFO +16 -16
  2. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/README.rst +5 -5
  3. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/__init__.py +3 -3
  4. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/hooks/cloud_run.py +124 -0
  5. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/hooks/cloud_storage_transfer_service.py +2 -0
  6. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/operators/cloud_run.py +143 -2
  7. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/operators/dataproc.py +71 -89
  8. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/triggers/dataproc.py +4 -1
  9. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/common/hooks/base_google.py +31 -6
  10. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/get_provider_info.py +4 -3
  11. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/pyproject.toml +11 -11
  12. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/LICENSE +0 -0
  13. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/ads/.gitignore +0 -0
  14. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/ads/__init__.py +0 -0
  15. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/ads/hooks/__init__.py +0 -0
  16. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/ads/hooks/ads.py +0 -0
  17. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/ads/operators/__init__.py +0 -0
  18. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/ads/operators/ads.py +0 -0
  19. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/ads/transfers/__init__.py +0 -0
  20. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/ads/transfers/ads_to_gcs.py +0 -0
  21. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/__init__.py +0 -0
  22. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/_internal_client/__init__.py +0 -0
  23. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/_internal_client/secret_manager_client.py +0 -0
  24. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/example_dags/__init__.py +0 -0
  25. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/example_dags/example_cloud_task.py +0 -0
  26. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/example_dags/example_facebook_ads_to_gcs.py +0 -0
  27. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/example_dags/example_looker.py +0 -0
  28. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/example_dags/example_presto_to_gcs.py +0 -0
  29. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/example_dags/example_salesforce_to_gcs.py +0 -0
  30. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/fs/__init__.py +0 -0
  31. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/fs/gcs.py +0 -0
  32. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/hooks/__init__.py +0 -0
  33. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/hooks/automl.py +0 -0
  34. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/hooks/bigquery.py +0 -0
  35. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/hooks/bigquery_dts.py +0 -0
  36. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/hooks/bigtable.py +0 -0
  37. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/hooks/cloud_batch.py +0 -0
  38. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/hooks/cloud_build.py +0 -0
  39. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/hooks/cloud_composer.py +0 -0
  40. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/hooks/cloud_memorystore.py +0 -0
  41. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/hooks/cloud_sql.py +0 -0
  42. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/hooks/compute.py +0 -0
  43. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/hooks/compute_ssh.py +0 -0
  44. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/hooks/datacatalog.py +0 -0
  45. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/hooks/dataflow.py +0 -0
  46. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/hooks/dataform.py +0 -0
  47. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/hooks/datafusion.py +0 -0
  48. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/hooks/datapipeline.py +0 -0
  49. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/hooks/dataplex.py +0 -0
  50. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/hooks/dataprep.py +0 -0
  51. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/hooks/dataproc.py +0 -0
  52. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/hooks/dataproc_metastore.py +0 -0
  53. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/hooks/datastore.py +0 -0
  54. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/hooks/dlp.py +0 -0
  55. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/hooks/functions.py +0 -0
  56. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/hooks/gcs.py +0 -0
  57. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/hooks/gdm.py +0 -0
  58. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/hooks/kms.py +0 -0
  59. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/hooks/kubernetes_engine.py +0 -0
  60. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/hooks/life_sciences.py +0 -0
  61. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/hooks/looker.py +0 -0
  62. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/hooks/mlengine.py +0 -0
  63. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/hooks/natural_language.py +0 -0
  64. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/hooks/os_login.py +0 -0
  65. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/hooks/pubsub.py +0 -0
  66. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/hooks/secret_manager.py +0 -0
  67. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/hooks/spanner.py +0 -0
  68. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/hooks/speech_to_text.py +0 -0
  69. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/hooks/stackdriver.py +0 -0
  70. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/hooks/tasks.py +0 -0
  71. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/hooks/text_to_speech.py +0 -0
  72. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/hooks/translate.py +0 -0
  73. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/hooks/vertex_ai/__init__.py +0 -0
  74. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/hooks/vertex_ai/auto_ml.py +0 -0
  75. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/hooks/vertex_ai/batch_prediction_job.py +0 -0
  76. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/hooks/vertex_ai/custom_job.py +0 -0
  77. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/hooks/vertex_ai/dataset.py +0 -0
  78. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/hooks/vertex_ai/endpoint_service.py +0 -0
  79. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/hooks/vertex_ai/generative_model.py +0 -0
  80. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/hooks/vertex_ai/hyperparameter_tuning_job.py +0 -0
  81. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/hooks/vertex_ai/model_service.py +0 -0
  82. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/hooks/vertex_ai/pipeline_job.py +0 -0
  83. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/hooks/vertex_ai/prediction_service.py +0 -0
  84. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/hooks/video_intelligence.py +0 -0
  85. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/hooks/vision.py +0 -0
  86. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/hooks/workflows.py +0 -0
  87. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/links/__init__.py +0 -0
  88. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/links/automl.py +0 -0
  89. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/links/base.py +0 -0
  90. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/links/bigquery.py +0 -0
  91. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/links/bigquery_dts.py +0 -0
  92. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/links/bigtable.py +0 -0
  93. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/links/cloud_build.py +0 -0
  94. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/links/cloud_functions.py +0 -0
  95. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/links/cloud_memorystore.py +0 -0
  96. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/links/cloud_sql.py +0 -0
  97. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/links/cloud_storage_transfer.py +0 -0
  98. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/links/cloud_tasks.py +0 -0
  99. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/links/compute.py +0 -0
  100. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/links/data_loss_prevention.py +0 -0
  101. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/links/datacatalog.py +0 -0
  102. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/links/dataflow.py +0 -0
  103. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/links/dataform.py +0 -0
  104. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/links/datafusion.py +0 -0
  105. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/links/dataplex.py +0 -0
  106. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/links/dataprep.py +0 -0
  107. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/links/dataproc.py +0 -0
  108. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/links/datastore.py +0 -0
  109. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/links/kubernetes_engine.py +0 -0
  110. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/links/life_sciences.py +0 -0
  111. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/links/mlengine.py +0 -0
  112. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/links/pubsub.py +0 -0
  113. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/links/spanner.py +0 -0
  114. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/links/stackdriver.py +0 -0
  115. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/links/translate.py +0 -0
  116. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/links/vertex_ai.py +0 -0
  117. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/links/workflows.py +0 -0
  118. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/log/__init__.py +0 -0
  119. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/log/gcs_task_handler.py +0 -0
  120. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/log/stackdriver_task_handler.py +0 -0
  121. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/openlineage/BigQueryErrorRunFacet.json +0 -0
  122. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/openlineage/BigQueryJobRunFacet.json +0 -0
  123. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/openlineage/__init__.py +0 -0
  124. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/openlineage/mixins.py +0 -0
  125. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/openlineage/utils.py +0 -0
  126. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/operators/__init__.py +0 -0
  127. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/operators/automl.py +0 -0
  128. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/operators/bigquery.py +0 -0
  129. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/operators/bigquery_dts.py +0 -0
  130. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/operators/bigtable.py +0 -0
  131. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/operators/cloud_base.py +0 -0
  132. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/operators/cloud_batch.py +0 -0
  133. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/operators/cloud_build.py +0 -0
  134. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/operators/cloud_composer.py +0 -0
  135. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/operators/cloud_memorystore.py +0 -0
  136. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/operators/cloud_sql.py +0 -0
  137. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/operators/cloud_storage_transfer_service.py +0 -0
  138. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/operators/compute.py +0 -0
  139. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/operators/datacatalog.py +0 -0
  140. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/operators/dataflow.py +0 -0
  141. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/operators/dataform.py +0 -0
  142. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/operators/datafusion.py +0 -0
  143. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/operators/datapipeline.py +0 -0
  144. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/operators/dataplex.py +0 -0
  145. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/operators/dataprep.py +0 -0
  146. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/operators/dataproc_metastore.py +0 -0
  147. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/operators/datastore.py +0 -0
  148. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/operators/dlp.py +0 -0
  149. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/operators/functions.py +0 -0
  150. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/operators/gcs.py +0 -0
  151. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/operators/kubernetes_engine.py +0 -0
  152. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/operators/life_sciences.py +0 -0
  153. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/operators/looker.py +0 -0
  154. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/operators/mlengine.py +0 -0
  155. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/operators/natural_language.py +0 -0
  156. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/operators/pubsub.py +0 -0
  157. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/operators/spanner.py +0 -0
  158. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/operators/speech_to_text.py +0 -0
  159. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/operators/stackdriver.py +0 -0
  160. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/operators/tasks.py +0 -0
  161. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/operators/text_to_speech.py +0 -0
  162. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/operators/translate.py +0 -0
  163. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/operators/translate_speech.py +0 -0
  164. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/operators/vertex_ai/__init__.py +0 -0
  165. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/operators/vertex_ai/auto_ml.py +0 -0
  166. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/operators/vertex_ai/batch_prediction_job.py +0 -0
  167. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/operators/vertex_ai/custom_job.py +0 -0
  168. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/operators/vertex_ai/dataset.py +0 -0
  169. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/operators/vertex_ai/endpoint_service.py +0 -0
  170. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/operators/vertex_ai/generative_model.py +0 -0
  171. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/operators/vertex_ai/hyperparameter_tuning_job.py +0 -0
  172. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/operators/vertex_ai/model_service.py +0 -0
  173. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/operators/vertex_ai/pipeline_job.py +0 -0
  174. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/operators/video_intelligence.py +0 -0
  175. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/operators/vision.py +0 -0
  176. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/operators/workflows.py +0 -0
  177. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/secrets/__init__.py +0 -0
  178. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/secrets/secret_manager.py +0 -0
  179. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/sensors/__init__.py +0 -0
  180. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/sensors/bigquery.py +0 -0
  181. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/sensors/bigquery_dts.py +0 -0
  182. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/sensors/bigtable.py +0 -0
  183. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/sensors/cloud_composer.py +0 -0
  184. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/sensors/cloud_storage_transfer_service.py +0 -0
  185. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/sensors/dataflow.py +0 -0
  186. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/sensors/dataform.py +0 -0
  187. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/sensors/datafusion.py +0 -0
  188. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/sensors/dataplex.py +0 -0
  189. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/sensors/dataprep.py +0 -0
  190. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/sensors/dataproc.py +0 -0
  191. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/sensors/dataproc_metastore.py +0 -0
  192. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/sensors/gcs.py +0 -0
  193. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/sensors/looker.py +0 -0
  194. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/sensors/pubsub.py +0 -0
  195. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/sensors/tasks.py +0 -0
  196. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/sensors/workflows.py +0 -0
  197. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/transfers/__init__.py +0 -0
  198. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/transfers/adls_to_gcs.py +0 -0
  199. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/transfers/azure_blob_to_gcs.py +0 -0
  200. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/transfers/azure_fileshare_to_gcs.py +0 -0
  201. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/transfers/bigquery_to_bigquery.py +0 -0
  202. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/transfers/bigquery_to_gcs.py +0 -0
  203. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/transfers/bigquery_to_mssql.py +0 -0
  204. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/transfers/bigquery_to_mysql.py +0 -0
  205. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/transfers/bigquery_to_postgres.py +0 -0
  206. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/transfers/bigquery_to_sql.py +0 -0
  207. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/transfers/calendar_to_gcs.py +0 -0
  208. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/transfers/cassandra_to_gcs.py +0 -0
  209. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/transfers/facebook_ads_to_gcs.py +0 -0
  210. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/transfers/gcs_to_bigquery.py +0 -0
  211. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/transfers/gcs_to_gcs.py +0 -0
  212. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/transfers/gcs_to_local.py +0 -0
  213. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/transfers/gcs_to_sftp.py +0 -0
  214. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/transfers/gdrive_to_gcs.py +0 -0
  215. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/transfers/gdrive_to_local.py +0 -0
  216. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/transfers/local_to_gcs.py +0 -0
  217. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/transfers/mssql_to_gcs.py +0 -0
  218. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/transfers/mysql_to_gcs.py +0 -0
  219. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/transfers/oracle_to_gcs.py +0 -0
  220. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/transfers/postgres_to_gcs.py +0 -0
  221. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/transfers/presto_to_gcs.py +0 -0
  222. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/transfers/s3_to_gcs.py +0 -0
  223. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/transfers/salesforce_to_gcs.py +0 -0
  224. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/transfers/sftp_to_gcs.py +0 -0
  225. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/transfers/sheets_to_gcs.py +0 -0
  226. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/transfers/sql_to_gcs.py +0 -0
  227. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/transfers/trino_to_gcs.py +0 -0
  228. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/triggers/__init__.py +0 -0
  229. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/triggers/bigquery.py +0 -0
  230. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/triggers/bigquery_dts.py +0 -0
  231. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/triggers/cloud_batch.py +0 -0
  232. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/triggers/cloud_build.py +0 -0
  233. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/triggers/cloud_composer.py +0 -0
  234. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/triggers/cloud_run.py +0 -0
  235. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/triggers/cloud_sql.py +0 -0
  236. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/triggers/cloud_storage_transfer_service.py +0 -0
  237. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/triggers/dataflow.py +0 -0
  238. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/triggers/datafusion.py +0 -0
  239. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/triggers/dataplex.py +0 -0
  240. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/triggers/gcs.py +0 -0
  241. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/triggers/kubernetes_engine.py +0 -0
  242. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/triggers/mlengine.py +0 -0
  243. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/triggers/pubsub.py +0 -0
  244. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/triggers/vertex_ai.py +0 -0
  245. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/utils/__init__.py +0 -0
  246. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/utils/bigquery.py +0 -0
  247. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/utils/bigquery_get_data.py +0 -0
  248. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/utils/credentials_provider.py +0 -0
  249. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/utils/dataform.py +0 -0
  250. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/utils/datafusion.py +0 -0
  251. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/utils/dataproc.py +0 -0
  252. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/utils/external_token_supplier.py +0 -0
  253. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/utils/field_sanitizer.py +0 -0
  254. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/utils/field_validator.py +0 -0
  255. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/utils/helpers.py +0 -0
  256. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/utils/mlengine_operator_utils.py +0 -0
  257. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/cloud/utils/mlengine_prediction_summary.py +0 -0
  258. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/common/__init__.py +0 -0
  259. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/common/auth_backend/__init__.py +0 -0
  260. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/common/auth_backend/google_openid.py +0 -0
  261. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/common/consts.py +0 -0
  262. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/common/hooks/__init__.py +0 -0
  263. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/common/hooks/discovery_api.py +0 -0
  264. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/common/links/__init__.py +0 -0
  265. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/common/links/storage.py +0 -0
  266. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/common/utils/__init__.py +0 -0
  267. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/common/utils/id_token_credentials.py +0 -0
  268. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/datasets/__init__.py +0 -0
  269. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/datasets/bigquery.py +0 -0
  270. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/firebase/__init__.py +0 -0
  271. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/firebase/hooks/__init__.py +0 -0
  272. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/firebase/hooks/firestore.py +0 -0
  273. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/firebase/operators/__init__.py +0 -0
  274. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/firebase/operators/firestore.py +0 -0
  275. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/go_module_utils.py +0 -0
  276. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/leveldb/__init__.py +0 -0
  277. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/leveldb/hooks/__init__.py +0 -0
  278. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/leveldb/hooks/leveldb.py +0 -0
  279. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/leveldb/operators/__init__.py +0 -0
  280. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/leveldb/operators/leveldb.py +0 -0
  281. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/marketing_platform/__init__.py +0 -0
  282. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/marketing_platform/example_dags/__init__.py +0 -0
  283. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/marketing_platform/example_dags/example_display_video.py +0 -0
  284. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/marketing_platform/hooks/__init__.py +0 -0
  285. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/marketing_platform/hooks/analytics.py +0 -0
  286. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/marketing_platform/hooks/analytics_admin.py +0 -0
  287. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/marketing_platform/hooks/campaign_manager.py +0 -0
  288. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/marketing_platform/hooks/display_video.py +0 -0
  289. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/marketing_platform/hooks/search_ads.py +0 -0
  290. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/marketing_platform/links/__init__.py +0 -0
  291. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/marketing_platform/links/analytics_admin.py +0 -0
  292. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/marketing_platform/operators/__init__.py +0 -0
  293. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/marketing_platform/operators/analytics.py +0 -0
  294. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/marketing_platform/operators/analytics_admin.py +0 -0
  295. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/marketing_platform/operators/campaign_manager.py +0 -0
  296. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/marketing_platform/operators/display_video.py +0 -0
  297. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/marketing_platform/operators/search_ads.py +0 -0
  298. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/marketing_platform/sensors/__init__.py +0 -0
  299. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/marketing_platform/sensors/campaign_manager.py +0 -0
  300. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/marketing_platform/sensors/display_video.py +0 -0
  301. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/marketing_platform/sensors/search_ads.py +0 -0
  302. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/suite/__init__.py +0 -0
  303. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/suite/hooks/__init__.py +0 -0
  304. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/suite/hooks/calendar.py +0 -0
  305. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/suite/hooks/drive.py +0 -0
  306. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/suite/hooks/sheets.py +0 -0
  307. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/suite/operators/__init__.py +0 -0
  308. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/suite/operators/sheets.py +0 -0
  309. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/suite/sensors/__init__.py +0 -0
  310. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/suite/sensors/drive.py +0 -0
  311. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/suite/transfers/__init__.py +0 -0
  312. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/suite/transfers/gcs_to_gdrive.py +0 -0
  313. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/suite/transfers/gcs_to_sheets.py +0 -0
  314. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/suite/transfers/local_to_drive.py +0 -0
  315. {apache_airflow_providers_google-10.21.1rc2 → apache_airflow_providers_google-10.22.0}/airflow/providers/google/suite/transfers/sql_to_sheets.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: apache-airflow-providers-google
3
- Version: 10.21.1rc2
3
+ Version: 10.22.0
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>
@@ -22,12 +22,12 @@ Classifier: Programming Language :: Python :: 3.11
22
22
  Classifier: Programming Language :: Python :: 3.12
23
23
  Classifier: Topic :: System :: Monitoring
24
24
  Requires-Dist: PyOpenSSL>=23.0.0
25
- Requires-Dist: apache-airflow-providers-common-compat>=1.1.0rc0
26
- Requires-Dist: apache-airflow-providers-common-sql>=1.7.2rc0
27
- Requires-Dist: apache-airflow>=2.7.0rc0
25
+ Requires-Dist: apache-airflow-providers-common-compat>=1.1.0
26
+ Requires-Dist: apache-airflow-providers-common-sql>=1.7.2
27
+ Requires-Dist: apache-airflow>=2.8.0
28
28
  Requires-Dist: asgiref>=3.5.2
29
29
  Requires-Dist: dill>=0.2.3
30
- Requires-Dist: gcloud-aio-auth>=4.0.0,<5.0.0
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
@@ -86,20 +86,20 @@ Requires-Dist: python-slugify>=7.0.0
86
86
  Requires-Dist: sqlalchemy-bigquery>=1.2.1
87
87
  Requires-Dist: sqlalchemy-spanner>=1.6.2
88
88
  Requires-Dist: tenacity>=8.1.0
89
- Requires-Dist: apache-airflow-providers-amazon>=2.6.0rc0 ; extra == "amazon"
89
+ Requires-Dist: apache-airflow-providers-amazon>=2.6.0 ; extra == "amazon"
90
90
  Requires-Dist: apache-airflow-providers-apache-beam ; extra == "apache.beam"
91
91
  Requires-Dist: apache-beam[gcp] ; extra == "apache.beam"
92
92
  Requires-Dist: apache-airflow-providers-apache-cassandra ; extra == "apache.cassandra"
93
- Requires-Dist: apache-airflow-providers-cncf-kubernetes>=7.2.0rc0 ; extra == "cncf.kubernetes"
93
+ Requires-Dist: apache-airflow-providers-cncf-kubernetes>=7.2.0 ; extra == "cncf.kubernetes"
94
94
  Requires-Dist: apache-airflow-providers-common-compat ; extra == "common.compat"
95
95
  Requires-Dist: apache-airflow-providers-common-sql ; extra == "common.sql"
96
- Requires-Dist: apache-airflow-providers-facebook>=2.2.0rc0 ; extra == "facebook"
96
+ Requires-Dist: apache-airflow-providers-facebook>=2.2.0 ; extra == "facebook"
97
97
  Requires-Dist: plyvel ; extra == "leveldb"
98
98
  Requires-Dist: apache-airflow-providers-microsoft-azure ; extra == "microsoft.azure"
99
99
  Requires-Dist: apache-airflow-providers-microsoft-mssql ; extra == "microsoft.mssql"
100
100
  Requires-Dist: apache-airflow-providers-mysql ; extra == "mysql"
101
101
  Requires-Dist: apache-airflow-providers-openlineage ; extra == "openlineage"
102
- Requires-Dist: apache-airflow-providers-oracle>=3.1.0rc0 ; extra == "oracle"
102
+ Requires-Dist: apache-airflow-providers-oracle>=3.1.0 ; extra == "oracle"
103
103
  Requires-Dist: apache-airflow-providers-postgres ; extra == "postgres"
104
104
  Requires-Dist: apache-airflow-providers-presto ; extra == "presto"
105
105
  Requires-Dist: apache-airflow-providers-salesforce ; extra == "salesforce"
@@ -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.21.1/changelog.html
111
- Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-google/10.21.1
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.21.1.rc2``
180
+ Release: ``10.22.0``
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.21.1/>`_.
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.7.0``
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`` ``>=4.0.0,<5.0.0``
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.21.1/changelog.html>`_.
321
+ `changelog <https://airflow.apache.org/docs/apache-airflow-providers-google/10.22.0/changelog.html>`_.
@@ -42,7 +42,7 @@
42
42
 
43
43
  Package ``apache-airflow-providers-google``
44
44
 
45
- Release: ``10.21.1.rc2``
45
+ Release: ``10.22.0``
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.21.1/>`_.
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.7.0``
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`` ``>=4.0.0,<5.0.0``
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.21.1/changelog.html>`_.
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.21.1"
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.7.0"
35
+ "2.8.0"
36
36
  ):
37
37
  raise RuntimeError(
38
- f"The package `apache-airflow-providers-google:{__version__}` needs Apache Airflow 2.7.0+"
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
- from google.cloud.run_v2 import Job
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)