apache-airflow-providers-google 12.0.0rc2__py3-none-any.whl → 14.0.0__py3-none-any.whl

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 (163) hide show
  1. airflow/providers/google/LICENSE +0 -52
  2. airflow/providers/google/__init__.py +1 -1
  3. airflow/providers/google/ads/hooks/ads.py +27 -13
  4. airflow/providers/google/ads/transfers/ads_to_gcs.py +18 -4
  5. airflow/providers/google/assets/bigquery.py +17 -0
  6. airflow/providers/google/cloud/_internal_client/secret_manager_client.py +2 -3
  7. airflow/providers/google/cloud/hooks/alloy_db.py +736 -8
  8. airflow/providers/google/cloud/hooks/automl.py +10 -4
  9. airflow/providers/google/cloud/hooks/bigquery.py +125 -22
  10. airflow/providers/google/cloud/hooks/bigquery_dts.py +8 -8
  11. airflow/providers/google/cloud/hooks/bigtable.py +2 -3
  12. airflow/providers/google/cloud/hooks/cloud_batch.py +3 -4
  13. airflow/providers/google/cloud/hooks/cloud_build.py +4 -5
  14. airflow/providers/google/cloud/hooks/cloud_composer.py +3 -4
  15. airflow/providers/google/cloud/hooks/cloud_memorystore.py +3 -4
  16. airflow/providers/google/cloud/hooks/cloud_run.py +3 -4
  17. airflow/providers/google/cloud/hooks/cloud_sql.py +7 -3
  18. airflow/providers/google/cloud/hooks/cloud_storage_transfer_service.py +119 -7
  19. airflow/providers/google/cloud/hooks/compute.py +3 -3
  20. airflow/providers/google/cloud/hooks/datacatalog.py +3 -4
  21. airflow/providers/google/cloud/hooks/dataflow.py +12 -12
  22. airflow/providers/google/cloud/hooks/dataform.py +2 -3
  23. airflow/providers/google/cloud/hooks/datafusion.py +2 -2
  24. airflow/providers/google/cloud/hooks/dataplex.py +1032 -11
  25. airflow/providers/google/cloud/hooks/dataproc.py +4 -5
  26. airflow/providers/google/cloud/hooks/dataproc_metastore.py +3 -4
  27. airflow/providers/google/cloud/hooks/dlp.py +3 -4
  28. airflow/providers/google/cloud/hooks/gcs.py +7 -6
  29. airflow/providers/google/cloud/hooks/kms.py +2 -3
  30. airflow/providers/google/cloud/hooks/kubernetes_engine.py +8 -8
  31. airflow/providers/google/cloud/hooks/life_sciences.py +1 -1
  32. airflow/providers/google/cloud/hooks/managed_kafka.py +482 -0
  33. airflow/providers/google/cloud/hooks/natural_language.py +2 -3
  34. airflow/providers/google/cloud/hooks/os_login.py +2 -3
  35. airflow/providers/google/cloud/hooks/pubsub.py +6 -6
  36. airflow/providers/google/cloud/hooks/secret_manager.py +2 -3
  37. airflow/providers/google/cloud/hooks/spanner.py +2 -2
  38. airflow/providers/google/cloud/hooks/speech_to_text.py +2 -3
  39. airflow/providers/google/cloud/hooks/stackdriver.py +4 -4
  40. airflow/providers/google/cloud/hooks/tasks.py +3 -4
  41. airflow/providers/google/cloud/hooks/text_to_speech.py +2 -3
  42. airflow/providers/google/cloud/hooks/translate.py +236 -5
  43. airflow/providers/google/cloud/hooks/vertex_ai/auto_ml.py +9 -4
  44. airflow/providers/google/cloud/hooks/vertex_ai/batch_prediction_job.py +3 -4
  45. airflow/providers/google/cloud/hooks/vertex_ai/custom_job.py +4 -5
  46. airflow/providers/google/cloud/hooks/vertex_ai/dataset.py +3 -4
  47. airflow/providers/google/cloud/hooks/vertex_ai/endpoint_service.py +2 -3
  48. airflow/providers/google/cloud/hooks/vertex_ai/feature_store.py +3 -4
  49. airflow/providers/google/cloud/hooks/vertex_ai/generative_model.py +1 -181
  50. airflow/providers/google/cloud/hooks/vertex_ai/hyperparameter_tuning_job.py +3 -4
  51. airflow/providers/google/cloud/hooks/vertex_ai/model_service.py +2 -3
  52. airflow/providers/google/cloud/hooks/vertex_ai/pipeline_job.py +3 -4
  53. airflow/providers/google/cloud/hooks/vertex_ai/prediction_service.py +2 -3
  54. airflow/providers/google/cloud/hooks/video_intelligence.py +2 -3
  55. airflow/providers/google/cloud/hooks/vision.py +3 -4
  56. airflow/providers/google/cloud/hooks/workflows.py +2 -3
  57. airflow/providers/google/cloud/links/alloy_db.py +46 -0
  58. airflow/providers/google/cloud/links/bigquery.py +25 -0
  59. airflow/providers/google/cloud/links/dataplex.py +172 -2
  60. airflow/providers/google/cloud/links/kubernetes_engine.py +1 -2
  61. airflow/providers/google/cloud/links/managed_kafka.py +104 -0
  62. airflow/providers/google/cloud/links/translate.py +28 -0
  63. airflow/providers/google/cloud/log/gcs_task_handler.py +3 -3
  64. airflow/providers/google/cloud/log/stackdriver_task_handler.py +11 -10
  65. airflow/providers/google/cloud/openlineage/facets.py +67 -0
  66. airflow/providers/google/cloud/openlineage/mixins.py +438 -173
  67. airflow/providers/google/cloud/openlineage/utils.py +394 -61
  68. airflow/providers/google/cloud/operators/alloy_db.py +980 -69
  69. airflow/providers/google/cloud/operators/automl.py +83 -245
  70. airflow/providers/google/cloud/operators/bigquery.py +377 -74
  71. airflow/providers/google/cloud/operators/bigquery_dts.py +126 -13
  72. airflow/providers/google/cloud/operators/bigtable.py +1 -3
  73. airflow/providers/google/cloud/operators/cloud_base.py +1 -2
  74. airflow/providers/google/cloud/operators/cloud_batch.py +2 -4
  75. airflow/providers/google/cloud/operators/cloud_build.py +3 -5
  76. airflow/providers/google/cloud/operators/cloud_composer.py +5 -7
  77. airflow/providers/google/cloud/operators/cloud_memorystore.py +4 -6
  78. airflow/providers/google/cloud/operators/cloud_run.py +6 -5
  79. airflow/providers/google/cloud/operators/cloud_sql.py +20 -8
  80. airflow/providers/google/cloud/operators/cloud_storage_transfer_service.py +62 -8
  81. airflow/providers/google/cloud/operators/compute.py +3 -4
  82. airflow/providers/google/cloud/operators/datacatalog.py +9 -11
  83. airflow/providers/google/cloud/operators/dataflow.py +1 -112
  84. airflow/providers/google/cloud/operators/dataform.py +3 -5
  85. airflow/providers/google/cloud/operators/datafusion.py +1 -1
  86. airflow/providers/google/cloud/operators/dataplex.py +2046 -7
  87. airflow/providers/google/cloud/operators/dataproc.py +102 -17
  88. airflow/providers/google/cloud/operators/dataproc_metastore.py +7 -9
  89. airflow/providers/google/cloud/operators/dlp.py +17 -19
  90. airflow/providers/google/cloud/operators/gcs.py +14 -17
  91. airflow/providers/google/cloud/operators/kubernetes_engine.py +2 -2
  92. airflow/providers/google/cloud/operators/managed_kafka.py +788 -0
  93. airflow/providers/google/cloud/operators/natural_language.py +3 -5
  94. airflow/providers/google/cloud/operators/pubsub.py +39 -7
  95. airflow/providers/google/cloud/operators/speech_to_text.py +3 -5
  96. airflow/providers/google/cloud/operators/stackdriver.py +3 -5
  97. airflow/providers/google/cloud/operators/tasks.py +4 -6
  98. airflow/providers/google/cloud/operators/text_to_speech.py +2 -4
  99. airflow/providers/google/cloud/operators/translate.py +414 -5
  100. airflow/providers/google/cloud/operators/translate_speech.py +2 -4
  101. airflow/providers/google/cloud/operators/vertex_ai/auto_ml.py +9 -8
  102. airflow/providers/google/cloud/operators/vertex_ai/batch_prediction_job.py +4 -6
  103. airflow/providers/google/cloud/operators/vertex_ai/custom_job.py +6 -8
  104. airflow/providers/google/cloud/operators/vertex_ai/dataset.py +4 -6
  105. airflow/providers/google/cloud/operators/vertex_ai/endpoint_service.py +4 -6
  106. airflow/providers/google/cloud/operators/vertex_ai/generative_model.py +0 -322
  107. airflow/providers/google/cloud/operators/vertex_ai/hyperparameter_tuning_job.py +4 -6
  108. airflow/providers/google/cloud/operators/vertex_ai/model_service.py +4 -6
  109. airflow/providers/google/cloud/operators/vertex_ai/pipeline_job.py +4 -6
  110. airflow/providers/google/cloud/operators/video_intelligence.py +3 -5
  111. airflow/providers/google/cloud/operators/vision.py +4 -6
  112. airflow/providers/google/cloud/operators/workflows.py +5 -7
  113. airflow/providers/google/cloud/secrets/secret_manager.py +1 -2
  114. airflow/providers/google/cloud/sensors/bigquery_dts.py +3 -5
  115. airflow/providers/google/cloud/sensors/bigtable.py +2 -3
  116. airflow/providers/google/cloud/sensors/cloud_composer.py +32 -8
  117. airflow/providers/google/cloud/sensors/cloud_storage_transfer_service.py +39 -1
  118. airflow/providers/google/cloud/sensors/dataplex.py +4 -6
  119. airflow/providers/google/cloud/sensors/dataproc.py +2 -3
  120. airflow/providers/google/cloud/sensors/dataproc_metastore.py +1 -2
  121. airflow/providers/google/cloud/sensors/gcs.py +2 -4
  122. airflow/providers/google/cloud/sensors/pubsub.py +2 -3
  123. airflow/providers/google/cloud/sensors/workflows.py +3 -5
  124. airflow/providers/google/cloud/transfers/bigquery_to_gcs.py +5 -5
  125. airflow/providers/google/cloud/transfers/gcs_to_bigquery.py +10 -12
  126. airflow/providers/google/cloud/transfers/gcs_to_gcs.py +1 -1
  127. airflow/providers/google/cloud/transfers/gcs_to_sftp.py +36 -4
  128. airflow/providers/google/cloud/transfers/mssql_to_gcs.py +27 -2
  129. airflow/providers/google/cloud/transfers/mysql_to_gcs.py +27 -2
  130. airflow/providers/google/cloud/transfers/postgres_to_gcs.py +27 -2
  131. airflow/providers/google/cloud/transfers/sftp_to_gcs.py +34 -5
  132. airflow/providers/google/cloud/transfers/sql_to_gcs.py +15 -0
  133. airflow/providers/google/cloud/transfers/trino_to_gcs.py +25 -2
  134. airflow/providers/google/cloud/triggers/bigquery_dts.py +1 -2
  135. airflow/providers/google/cloud/triggers/cloud_batch.py +1 -2
  136. airflow/providers/google/cloud/triggers/cloud_build.py +1 -2
  137. airflow/providers/google/cloud/triggers/cloud_composer.py +13 -3
  138. airflow/providers/google/cloud/triggers/cloud_storage_transfer_service.py +102 -4
  139. airflow/providers/google/cloud/triggers/dataflow.py +2 -3
  140. airflow/providers/google/cloud/triggers/dataplex.py +1 -2
  141. airflow/providers/google/cloud/triggers/dataproc.py +2 -3
  142. airflow/providers/google/cloud/triggers/kubernetes_engine.py +1 -1
  143. airflow/providers/google/cloud/triggers/pubsub.py +1 -2
  144. airflow/providers/google/cloud/triggers/vertex_ai.py +7 -8
  145. airflow/providers/google/cloud/utils/credentials_provider.py +15 -8
  146. airflow/providers/google/cloud/utils/external_token_supplier.py +1 -0
  147. airflow/providers/google/common/auth_backend/google_openid.py +4 -4
  148. airflow/providers/google/common/consts.py +1 -2
  149. airflow/providers/google/common/hooks/base_google.py +8 -7
  150. airflow/providers/google/get_provider_info.py +186 -134
  151. airflow/providers/google/marketing_platform/hooks/analytics_admin.py +2 -3
  152. airflow/providers/google/marketing_platform/hooks/search_ads.py +1 -1
  153. airflow/providers/google/marketing_platform/operators/analytics_admin.py +5 -7
  154. {apache_airflow_providers_google-12.0.0rc2.dist-info → apache_airflow_providers_google-14.0.0.dist-info}/METADATA +41 -58
  155. {apache_airflow_providers_google-12.0.0rc2.dist-info → apache_airflow_providers_google-14.0.0.dist-info}/RECORD +157 -159
  156. airflow/providers/google/cloud/example_dags/example_facebook_ads_to_gcs.py +0 -141
  157. airflow/providers/google/cloud/example_dags/example_looker.py +0 -64
  158. airflow/providers/google/cloud/example_dags/example_presto_to_gcs.py +0 -194
  159. airflow/providers/google/cloud/example_dags/example_salesforce_to_gcs.py +0 -129
  160. airflow/providers/google/marketing_platform/example_dags/__init__.py +0 -16
  161. airflow/providers/google/marketing_platform/example_dags/example_display_video.py +0 -213
  162. {apache_airflow_providers_google-12.0.0rc2.dist-info → apache_airflow_providers_google-14.0.0.dist-info}/WHEEL +0 -0
  163. {apache_airflow_providers_google-12.0.0rc2.dist-info → apache_airflow_providers_google-14.0.0.dist-info}/entry_points.txt +0 -0
@@ -28,7 +28,7 @@ from typing import TYPE_CHECKING, Any
28
28
  from googleapiclient.errors import HttpError
29
29
 
30
30
  from airflow.configuration import conf
31
- from airflow.exceptions import AirflowException, AirflowProviderDeprecationWarning
31
+ from airflow.exceptions import AirflowException
32
32
  from airflow.providers.google.cloud.hooks.dataflow import (
33
33
  DEFAULT_DATAFLOW_LOCATION,
34
34
  DataflowHook,
@@ -40,7 +40,6 @@ from airflow.providers.google.cloud.triggers.dataflow import (
40
40
  TemplateJobStartTrigger,
41
41
  )
42
42
  from airflow.providers.google.common.consts import GOOGLE_DEFAULT_DEFERRABLE_METHOD_NAME
43
- from airflow.providers.google.common.deprecated import deprecated
44
43
  from airflow.providers.google.common.hooks.base_google import PROVIDE_PROJECT_ID
45
44
 
46
45
  if TYPE_CHECKING:
@@ -654,116 +653,6 @@ class DataflowStartFlexTemplateOperator(GoogleCloudBaseOperator):
654
653
  )
655
654
 
656
655
 
657
- @deprecated(
658
- planned_removal_date="January 31, 2025",
659
- use_instead="DataflowStartYamlJobOperator",
660
- category=AirflowProviderDeprecationWarning,
661
- )
662
- class DataflowStartSqlJobOperator(GoogleCloudBaseOperator):
663
- """
664
- Starts Dataflow SQL query.
665
-
666
- .. seealso::
667
- For more information on how to use this operator, take a look at the guide:
668
- :ref:`howto/operator:DataflowStartSqlJobOperator`
669
-
670
- .. warning::
671
- This operator requires ``gcloud`` command (Google Cloud SDK) must be installed on the Airflow worker
672
- <https://cloud.google.com/sdk/docs/install>`__
673
-
674
- :param job_name: The unique name to assign to the Cloud Dataflow job.
675
- :param query: The SQL query to execute.
676
- :param options: Job parameters to be executed. It can be a dictionary with the following keys.
677
-
678
- For more information, look at:
679
- `https://cloud.google.com/sdk/gcloud/reference/beta/dataflow/sql/query
680
- <gcloud beta dataflow sql query>`__
681
- command reference
682
-
683
- :param location: The location of the Dataflow job (for example europe-west1)
684
- :param project_id: The ID of the GCP project that owns the job.
685
- If set to ``None`` or missing, the default project_id from the GCP connection is used.
686
- :param gcp_conn_id: The connection ID to use connecting to Google Cloud
687
- Platform.
688
- :param drain_pipeline: Optional, set to True if want to stop streaming job by draining it
689
- instead of canceling during killing task instance. See:
690
- https://cloud.google.com/dataflow/docs/guides/stopping-a-pipeline
691
- :param impersonation_chain: Optional service account to impersonate using short-term
692
- credentials, or chained list of accounts required to get the access_token
693
- of the last account in the list, which will be impersonated in the request.
694
- If set as a string, the account must grant the originating account
695
- the Service Account Token Creator IAM role.
696
- If set as a sequence, the identities from the list must grant
697
- Service Account Token Creator IAM role to the directly preceding identity, with first
698
- account from the list granting this role to the originating account (templated).
699
- """
700
-
701
- template_fields: Sequence[str] = (
702
- "job_name",
703
- "query",
704
- "options",
705
- "location",
706
- "project_id",
707
- "gcp_conn_id",
708
- )
709
- template_fields_renderers = {"query": "sql"}
710
-
711
- def __init__(
712
- self,
713
- job_name: str,
714
- query: str,
715
- options: dict[str, Any],
716
- location: str = DEFAULT_DATAFLOW_LOCATION,
717
- project_id: str = PROVIDE_PROJECT_ID,
718
- gcp_conn_id: str = "google_cloud_default",
719
- drain_pipeline: bool = False,
720
- impersonation_chain: str | Sequence[str] | None = None,
721
- *args,
722
- **kwargs,
723
- ) -> None:
724
- super().__init__(*args, **kwargs)
725
- self.job_name = job_name
726
- self.query = query
727
- self.options = options
728
- self.location = location
729
- self.project_id = project_id
730
- self.gcp_conn_id = gcp_conn_id
731
- self.drain_pipeline = drain_pipeline
732
- self.impersonation_chain = impersonation_chain
733
- self.job = None
734
- self.hook: DataflowHook | None = None
735
-
736
- def execute(self, context: Context):
737
- self.hook = DataflowHook(
738
- gcp_conn_id=self.gcp_conn_id,
739
- drain_pipeline=self.drain_pipeline,
740
- impersonation_chain=self.impersonation_chain,
741
- )
742
-
743
- def set_current_job(current_job):
744
- self.job = current_job
745
-
746
- job = self.hook.start_sql_job(
747
- job_name=self.job_name,
748
- query=self.query,
749
- options=self.options,
750
- location=self.location,
751
- project_id=self.project_id,
752
- on_new_job_callback=set_current_job,
753
- )
754
-
755
- return job
756
-
757
- def on_kill(self) -> None:
758
- self.log.info("On kill.")
759
- if self.job:
760
- self.hook.cancel_job(
761
- job_id=self.job.get("id"),
762
- project_id=self.job.get("projectId"),
763
- location=self.job.get("location"),
764
- )
765
-
766
-
767
656
  class DataflowStartYamlJobOperator(GoogleCloudBaseOperator):
768
657
  """
769
658
  Launch a Dataflow YAML job and return the result.
@@ -26,10 +26,11 @@ from airflow.providers.google.cloud.links.dataform import (
26
26
  )
27
27
 
28
28
  if TYPE_CHECKING:
29
- from google.api_core.retry import Retry
30
-
31
29
  from airflow.utils.context import Context
30
+ from google.api_core.retry import Retry
32
31
 
32
+ from airflow.providers.google.cloud.hooks.dataform import DataformHook
33
+ from airflow.providers.google.cloud.operators.cloud_base import GoogleCloudBaseOperator
33
34
  from google.api_core.gapic_v1.method import DEFAULT, _MethodDefault
34
35
  from google.cloud.dataform_v1beta1.types import (
35
36
  CompilationResult,
@@ -42,9 +43,6 @@ from google.cloud.dataform_v1beta1.types import (
42
43
  WriteFileResponse,
43
44
  )
44
45
 
45
- from airflow.providers.google.cloud.hooks.dataform import DataformHook
46
- from airflow.providers.google.cloud.operators.cloud_base import GoogleCloudBaseOperator
47
-
48
46
 
49
47
  class DataformCreateCompilationResultOperator(GoogleCloudBaseOperator):
50
48
  """
@@ -22,7 +22,6 @@ import time
22
22
  from collections.abc import Sequence
23
23
  from typing import TYPE_CHECKING, Any
24
24
 
25
- from google.api_core.retry import exponential_sleep_generator
26
25
  from googleapiclient.errors import HttpError
27
26
 
28
27
  from airflow.configuration import conf
@@ -39,6 +38,7 @@ from airflow.providers.google.cloud.utils.datafusion import DataFusionPipelineTy
39
38
  from airflow.providers.google.cloud.utils.helpers import resource_path_to_dict
40
39
  from airflow.providers.google.common.deprecated import deprecated
41
40
  from airflow.providers.google.common.hooks.base_google import PROVIDE_PROJECT_ID
41
+ from google.api_core.retry import exponential_sleep_generator
42
42
 
43
43
  if TYPE_CHECKING:
44
44
  from airflow.utils.context import Context