apache-airflow-providers-amazon 9.18.0rc2__py3-none-any.whl → 9.19.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 (128) hide show
  1. airflow/providers/amazon/__init__.py +1 -1
  2. airflow/providers/amazon/aws/auth_manager/avp/facade.py +1 -1
  3. airflow/providers/amazon/aws/bundles/s3.py +1 -1
  4. airflow/providers/amazon/aws/exceptions.py +1 -1
  5. airflow/providers/amazon/aws/executors/aws_lambda/lambda_executor.py +1 -2
  6. airflow/providers/amazon/aws/executors/batch/batch_executor.py +1 -2
  7. airflow/providers/amazon/aws/executors/ecs/ecs_executor.py +1 -2
  8. airflow/providers/amazon/aws/hooks/athena.py +1 -1
  9. airflow/providers/amazon/aws/hooks/athena_sql.py +1 -1
  10. airflow/providers/amazon/aws/hooks/base_aws.py +2 -6
  11. airflow/providers/amazon/aws/hooks/batch_client.py +1 -1
  12. airflow/providers/amazon/aws/hooks/batch_waiters.py +1 -1
  13. airflow/providers/amazon/aws/hooks/chime.py +1 -1
  14. airflow/providers/amazon/aws/hooks/comprehend.py +1 -1
  15. airflow/providers/amazon/aws/hooks/datasync.py +2 -2
  16. airflow/providers/amazon/aws/hooks/dynamodb.py +1 -1
  17. airflow/providers/amazon/aws/hooks/ec2.py +1 -1
  18. airflow/providers/amazon/aws/hooks/elasticache_replication_group.py +1 -1
  19. airflow/providers/amazon/aws/hooks/emr.py +1 -1
  20. airflow/providers/amazon/aws/hooks/glue.py +2 -1
  21. airflow/providers/amazon/aws/hooks/glue_catalog.py +1 -1
  22. airflow/providers/amazon/aws/hooks/logs.py +10 -2
  23. airflow/providers/amazon/aws/hooks/quicksight.py +1 -1
  24. airflow/providers/amazon/aws/hooks/rds.py +1 -1
  25. airflow/providers/amazon/aws/hooks/redshift_sql.py +11 -2
  26. airflow/providers/amazon/aws/hooks/s3.py +2 -1
  27. airflow/providers/amazon/aws/hooks/sagemaker.py +1 -1
  28. airflow/providers/amazon/aws/hooks/sagemaker_unified_studio.py +2 -3
  29. airflow/providers/amazon/aws/links/base_aws.py +1 -1
  30. airflow/providers/amazon/aws/links/emr.py +1 -1
  31. airflow/providers/amazon/aws/log/cloudwatch_task_handler.py +50 -20
  32. airflow/providers/amazon/aws/notifications/chime.py +1 -1
  33. airflow/providers/amazon/aws/operators/appflow.py +2 -2
  34. airflow/providers/amazon/aws/operators/athena.py +2 -2
  35. airflow/providers/amazon/aws/operators/batch.py +2 -2
  36. airflow/providers/amazon/aws/operators/bedrock.py +3 -4
  37. airflow/providers/amazon/aws/operators/cloud_formation.py +1 -1
  38. airflow/providers/amazon/aws/operators/comprehend.py +3 -4
  39. airflow/providers/amazon/aws/operators/datasync.py +2 -3
  40. airflow/providers/amazon/aws/operators/dms.py +2 -6
  41. airflow/providers/amazon/aws/operators/ec2.py +2 -2
  42. airflow/providers/amazon/aws/operators/ecs.py +2 -2
  43. airflow/providers/amazon/aws/operators/eks.py +3 -2
  44. airflow/providers/amazon/aws/operators/emr.py +3 -2
  45. airflow/providers/amazon/aws/operators/eventbridge.py +2 -2
  46. airflow/providers/amazon/aws/operators/glacier.py +1 -1
  47. airflow/providers/amazon/aws/operators/glue.py +2 -2
  48. airflow/providers/amazon/aws/operators/glue_crawler.py +3 -4
  49. airflow/providers/amazon/aws/operators/glue_databrew.py +2 -2
  50. airflow/providers/amazon/aws/operators/kinesis_analytics.py +2 -2
  51. airflow/providers/amazon/aws/operators/lambda_function.py +2 -2
  52. airflow/providers/amazon/aws/operators/mwaa.py +2 -2
  53. airflow/providers/amazon/aws/operators/neptune.py +2 -2
  54. airflow/providers/amazon/aws/operators/quicksight.py +1 -1
  55. airflow/providers/amazon/aws/operators/rds.py +2 -2
  56. airflow/providers/amazon/aws/operators/redshift_cluster.py +2 -2
  57. airflow/providers/amazon/aws/operators/redshift_data.py +2 -2
  58. airflow/providers/amazon/aws/operators/s3.py +2 -2
  59. airflow/providers/amazon/aws/operators/sagemaker.py +2 -2
  60. airflow/providers/amazon/aws/operators/sagemaker_unified_studio.py +2 -3
  61. airflow/providers/amazon/aws/operators/sns.py +1 -1
  62. airflow/providers/amazon/aws/operators/sqs.py +1 -1
  63. airflow/providers/amazon/aws/operators/ssm.py +1 -1
  64. airflow/providers/amazon/aws/operators/step_function.py +2 -2
  65. airflow/providers/amazon/aws/secrets/secrets_manager.py +2 -1
  66. airflow/providers/amazon/aws/secrets/systems_manager.py +2 -1
  67. airflow/providers/amazon/aws/sensors/athena.py +3 -4
  68. airflow/providers/amazon/aws/sensors/batch.py +2 -2
  69. airflow/providers/amazon/aws/sensors/bedrock.py +2 -2
  70. airflow/providers/amazon/aws/sensors/cloud_formation.py +2 -3
  71. airflow/providers/amazon/aws/sensors/comprehend.py +2 -2
  72. airflow/providers/amazon/aws/sensors/dms.py +2 -2
  73. airflow/providers/amazon/aws/sensors/dynamodb.py +1 -1
  74. airflow/providers/amazon/aws/sensors/ec2.py +2 -2
  75. airflow/providers/amazon/aws/sensors/ecs.py +2 -2
  76. airflow/providers/amazon/aws/sensors/eks.py +3 -2
  77. airflow/providers/amazon/aws/sensors/emr.py +2 -4
  78. airflow/providers/amazon/aws/sensors/glacier.py +2 -2
  79. airflow/providers/amazon/aws/sensors/glue.py +2 -2
  80. airflow/providers/amazon/aws/sensors/glue_catalog_partition.py +2 -2
  81. airflow/providers/amazon/aws/sensors/glue_crawler.py +2 -2
  82. airflow/providers/amazon/aws/sensors/kinesis_analytics.py +2 -2
  83. airflow/providers/amazon/aws/sensors/lambda_function.py +2 -2
  84. airflow/providers/amazon/aws/sensors/mwaa.py +2 -2
  85. airflow/providers/amazon/aws/sensors/opensearch_serverless.py +2 -2
  86. airflow/providers/amazon/aws/sensors/quicksight.py +2 -2
  87. airflow/providers/amazon/aws/sensors/rds.py +2 -2
  88. airflow/providers/amazon/aws/sensors/redshift_cluster.py +2 -2
  89. airflow/providers/amazon/aws/sensors/s3.py +5 -7
  90. airflow/providers/amazon/aws/sensors/sagemaker.py +2 -2
  91. airflow/providers/amazon/aws/sensors/sagemaker_unified_studio.py +2 -3
  92. airflow/providers/amazon/aws/sensors/sqs.py +2 -2
  93. airflow/providers/amazon/aws/sensors/ssm.py +1 -1
  94. airflow/providers/amazon/aws/sensors/step_function.py +2 -2
  95. airflow/providers/amazon/aws/transfers/azure_blob_to_s3.py +1 -1
  96. airflow/providers/amazon/aws/transfers/exasol_to_s3.py +1 -1
  97. airflow/providers/amazon/aws/transfers/ftp_to_s3.py +1 -1
  98. airflow/providers/amazon/aws/transfers/gcs_to_s3.py +2 -3
  99. airflow/providers/amazon/aws/transfers/glacier_to_gcs.py +1 -1
  100. airflow/providers/amazon/aws/transfers/google_api_to_s3.py +1 -1
  101. airflow/providers/amazon/aws/transfers/hive_to_dynamodb.py +1 -1
  102. airflow/providers/amazon/aws/transfers/http_to_s3.py +1 -1
  103. airflow/providers/amazon/aws/transfers/imap_attachment_to_s3.py +1 -1
  104. airflow/providers/amazon/aws/transfers/local_to_s3.py +1 -1
  105. airflow/providers/amazon/aws/transfers/mongo_to_s3.py +1 -1
  106. airflow/providers/amazon/aws/transfers/redshift_to_s3.py +2 -3
  107. airflow/providers/amazon/aws/transfers/s3_to_dynamodb.py +2 -3
  108. airflow/providers/amazon/aws/transfers/s3_to_ftp.py +1 -1
  109. airflow/providers/amazon/aws/transfers/s3_to_redshift.py +2 -3
  110. airflow/providers/amazon/aws/transfers/s3_to_sftp.py +1 -1
  111. airflow/providers/amazon/aws/transfers/s3_to_sql.py +2 -3
  112. airflow/providers/amazon/aws/transfers/salesforce_to_s3.py +1 -1
  113. airflow/providers/amazon/aws/transfers/sftp_to_s3.py +1 -1
  114. airflow/providers/amazon/aws/transfers/sql_to_s3.py +6 -6
  115. airflow/providers/amazon/aws/triggers/ecs.py +1 -1
  116. airflow/providers/amazon/aws/triggers/eks.py +1 -1
  117. airflow/providers/amazon/aws/triggers/sagemaker.py +1 -1
  118. airflow/providers/amazon/aws/triggers/sqs.py +1 -1
  119. airflow/providers/amazon/aws/utils/__init__.py +1 -1
  120. airflow/providers/amazon/aws/utils/connection_wrapper.py +1 -1
  121. airflow/providers/amazon/aws/utils/waiter.py +1 -1
  122. airflow/providers/amazon/aws/utils/waiter_with_logging.py +1 -1
  123. {apache_airflow_providers_amazon-9.18.0rc2.dist-info → apache_airflow_providers_amazon-9.19.0.dist-info}/METADATA +18 -14
  124. {apache_airflow_providers_amazon-9.18.0rc2.dist-info → apache_airflow_providers_amazon-9.19.0.dist-info}/RECORD +128 -128
  125. {apache_airflow_providers_amazon-9.18.0rc2.dist-info → apache_airflow_providers_amazon-9.19.0.dist-info}/WHEEL +0 -0
  126. {apache_airflow_providers_amazon-9.18.0rc2.dist-info → apache_airflow_providers_amazon-9.19.0.dist-info}/entry_points.txt +0 -0
  127. {apache_airflow_providers_amazon-9.18.0rc2.dist-info → apache_airflow_providers_amazon-9.19.0.dist-info}/licenses/LICENSE +0 -0
  128. {apache_airflow_providers_amazon-9.18.0rc2.dist-info → apache_airflow_providers_amazon-9.19.0.dist-info}/licenses/NOTICE +0 -0
@@ -24,7 +24,6 @@ from typing import TYPE_CHECKING, Any
24
24
  from botocore.exceptions import ClientError
25
25
 
26
26
  from airflow.configuration import conf
27
- from airflow.exceptions import AirflowException
28
27
  from airflow.providers.amazon.aws.hooks.bedrock import (
29
28
  BedrockAgentHook,
30
29
  BedrockAgentRuntimeHook,
@@ -41,11 +40,11 @@ from airflow.providers.amazon.aws.triggers.bedrock import (
41
40
  )
42
41
  from airflow.providers.amazon.aws.utils import validate_execute_complete_event
43
42
  from airflow.providers.amazon.aws.utils.mixins import aws_template_fields
43
+ from airflow.providers.common.compat.sdk import AirflowException, timezone
44
44
  from airflow.utils.helpers import prune_dict
45
- from airflow.utils.timezone import utcnow
46
45
 
47
46
  if TYPE_CHECKING:
48
- from airflow.utils.context import Context
47
+ from airflow.sdk import Context
49
48
 
50
49
 
51
50
  class BedrockInvokeModelOperator(AwsBaseOperator[BedrockRuntimeHook]):
@@ -237,7 +236,7 @@ class BedrockCustomizeModelOperator(AwsBaseOperator[BedrockHook]):
237
236
  if not self.ensure_unique_job_name:
238
237
  raise error
239
238
  retry = True
240
- self.job_name = f"{self.job_name}-{int(utcnow().timestamp())}"
239
+ self.job_name = f"{self.job_name}-{int(timezone.utcnow().timestamp())}"
241
240
  self.log.info("Changed job name to '%s' to avoid collision.", self.job_name)
242
241
 
243
242
  if response["ResponseMetadata"]["HTTPStatusCode"] != 201:
@@ -27,7 +27,7 @@ from airflow.providers.amazon.aws.operators.base_aws import AwsBaseOperator
27
27
  from airflow.providers.amazon.aws.utils.mixins import aws_template_fields
28
28
 
29
29
  if TYPE_CHECKING:
30
- from airflow.utils.context import Context
30
+ from airflow.sdk import Context
31
31
 
32
32
 
33
33
  class CloudFormationCreateStackOperator(AwsBaseOperator[CloudFormationHook]):
@@ -21,7 +21,6 @@ from functools import cached_property
21
21
  from typing import TYPE_CHECKING, Any, ClassVar
22
22
 
23
23
  from airflow.configuration import conf
24
- from airflow.exceptions import AirflowException
25
24
  from airflow.providers.amazon.aws.hooks.comprehend import ComprehendHook
26
25
  from airflow.providers.amazon.aws.links.comprehend import (
27
26
  ComprehendDocumentClassifierLink,
@@ -34,12 +33,12 @@ from airflow.providers.amazon.aws.triggers.comprehend import (
34
33
  )
35
34
  from airflow.providers.amazon.aws.utils import validate_execute_complete_event
36
35
  from airflow.providers.amazon.aws.utils.mixins import aws_template_fields
37
- from airflow.utils.timezone import utcnow
36
+ from airflow.providers.common.compat.sdk import AirflowException, timezone
38
37
 
39
38
  if TYPE_CHECKING:
40
39
  import boto3
41
40
 
42
- from airflow.utils.context import Context
41
+ from airflow.sdk import Context
43
42
 
44
43
 
45
44
  class ComprehendBaseOperator(AwsBaseOperator[ComprehendHook]):
@@ -157,7 +156,7 @@ class ComprehendStartPiiEntitiesDetectionJobOperator(ComprehendBaseOperator):
157
156
  def execute(self, context: Context) -> str:
158
157
  if self.start_pii_entities_kwargs.get("JobName", None) is None:
159
158
  self.start_pii_entities_kwargs["JobName"] = (
160
- f"start_pii_entities_detection_job-{int(utcnow().timestamp())}"
159
+ f"start_pii_entities_detection_job-{int(timezone.utcnow().timestamp())}"
161
160
  )
162
161
 
163
162
  self.log.info(
@@ -23,15 +23,14 @@ import random
23
23
  from collections.abc import Sequence
24
24
  from typing import TYPE_CHECKING, Any
25
25
 
26
- from airflow.exceptions import AirflowException
27
26
  from airflow.providers.amazon.aws.hooks.datasync import DataSyncHook
28
27
  from airflow.providers.amazon.aws.links.datasync import DataSyncTaskExecutionLink, DataSyncTaskLink
29
28
  from airflow.providers.amazon.aws.operators.base_aws import AwsBaseOperator
30
29
  from airflow.providers.amazon.aws.utils.mixins import aws_template_fields
31
- from airflow.providers.common.compat.sdk import AirflowTaskTimeout
30
+ from airflow.providers.common.compat.sdk import AirflowException, AirflowTaskTimeout
32
31
 
33
32
  if TYPE_CHECKING:
34
- from airflow.utils.context import Context
33
+ from airflow.sdk import Context
35
34
 
36
35
 
37
36
  class DataSyncOperator(AwsBaseOperator[DataSyncHook]):
@@ -19,10 +19,9 @@ from __future__ import annotations
19
19
 
20
20
  from collections.abc import Sequence
21
21
  from datetime import datetime
22
- from typing import TYPE_CHECKING, Any, ClassVar
22
+ from typing import Any, ClassVar
23
23
 
24
24
  from airflow.configuration import conf
25
- from airflow.exceptions import AirflowException
26
25
  from airflow.providers.amazon.aws.hooks.dms import DmsHook
27
26
  from airflow.providers.amazon.aws.operators.base_aws import AwsBaseOperator
28
27
  from airflow.providers.amazon.aws.triggers.dms import (
@@ -33,10 +32,7 @@ from airflow.providers.amazon.aws.triggers.dms import (
33
32
  DmsReplicationTerminalStatusTrigger,
34
33
  )
35
34
  from airflow.providers.amazon.aws.utils.mixins import aws_template_fields
36
- from airflow.utils.context import Context
37
-
38
- if TYPE_CHECKING:
39
- from airflow.utils.context import Context
35
+ from airflow.providers.common.compat.sdk import AirflowException, Context
40
36
 
41
37
 
42
38
  class DmsCreateTaskOperator(AwsBaseOperator[DmsHook]):
@@ -20,7 +20,6 @@ from __future__ import annotations
20
20
  from collections.abc import Sequence
21
21
  from typing import TYPE_CHECKING, Any
22
22
 
23
- from airflow.exceptions import AirflowException
24
23
  from airflow.providers.amazon.aws.hooks.ec2 import EC2Hook
25
24
  from airflow.providers.amazon.aws.links.ec2 import (
26
25
  EC2InstanceDashboardLink,
@@ -28,9 +27,10 @@ from airflow.providers.amazon.aws.links.ec2 import (
28
27
  )
29
28
  from airflow.providers.amazon.aws.operators.base_aws import AwsBaseOperator
30
29
  from airflow.providers.amazon.aws.utils.mixins import aws_template_fields
30
+ from airflow.providers.common.compat.sdk import AirflowException
31
31
 
32
32
  if TYPE_CHECKING:
33
- from airflow.utils.context import Context
33
+ from airflow.sdk import Context
34
34
 
35
35
 
36
36
  class EC2StartInstanceOperator(AwsBaseOperator[EC2Hook]):
@@ -25,7 +25,6 @@ from time import sleep
25
25
  from typing import TYPE_CHECKING, Any
26
26
 
27
27
  from airflow.configuration import conf
28
- from airflow.exceptions import AirflowException
29
28
  from airflow.providers.amazon.aws.exceptions import EcsOperatorError, EcsTaskFailToStart
30
29
  from airflow.providers.amazon.aws.hooks.ecs import EcsClusterStates, EcsHook
31
30
  from airflow.providers.amazon.aws.hooks.logs import AwsLogsHook
@@ -39,13 +38,14 @@ from airflow.providers.amazon.aws.utils import validate_execute_complete_event
39
38
  from airflow.providers.amazon.aws.utils.identifiers import generate_uuid
40
39
  from airflow.providers.amazon.aws.utils.mixins import aws_template_fields
41
40
  from airflow.providers.amazon.aws.utils.task_log_fetcher import AwsTaskLogFetcher
41
+ from airflow.providers.common.compat.sdk import AirflowException
42
42
  from airflow.utils.helpers import prune_dict
43
43
 
44
44
  if TYPE_CHECKING:
45
45
  import boto3
46
46
 
47
47
  from airflow.models import TaskInstance
48
- from airflow.utils.context import Context
48
+ from airflow.sdk import Context
49
49
 
50
50
 
51
51
  class EcsBaseOperator(AwsBaseOperator[EcsHook]):
@@ -28,7 +28,7 @@ from typing import TYPE_CHECKING, Any, cast
28
28
  from botocore.exceptions import ClientError, WaiterError
29
29
 
30
30
  from airflow.configuration import conf
31
- from airflow.exceptions import AirflowException, AirflowProviderDeprecationWarning
31
+ from airflow.exceptions import AirflowProviderDeprecationWarning
32
32
  from airflow.providers.amazon.aws.hooks.eks import EksHook
33
33
  from airflow.providers.amazon.aws.operators.base_aws import AwsBaseOperator
34
34
  from airflow.providers.amazon.aws.triggers.eks import (
@@ -43,6 +43,7 @@ from airflow.providers.amazon.aws.utils import validate_execute_complete_event
43
43
  from airflow.providers.amazon.aws.utils.mixins import aws_template_fields
44
44
  from airflow.providers.amazon.aws.utils.waiter_with_logging import wait
45
45
  from airflow.providers.cncf.kubernetes.utils.pod_manager import OnFinishAction
46
+ from airflow.providers.common.compat.sdk import AirflowException
46
47
 
47
48
  try:
48
49
  from airflow.providers.cncf.kubernetes.operators.pod import KubernetesPodOperator
@@ -53,7 +54,7 @@ except ImportError:
53
54
  )
54
55
 
55
56
  if TYPE_CHECKING:
56
- from airflow.utils.context import Context
57
+ from airflow.sdk import Context
57
58
 
58
59
 
59
60
  CHECK_INTERVAL_SECONDS = 15
@@ -25,7 +25,7 @@ from typing import TYPE_CHECKING, Any
25
25
  from uuid import uuid4
26
26
 
27
27
  from airflow.configuration import conf
28
- from airflow.exceptions import AirflowException, AirflowProviderDeprecationWarning
28
+ from airflow.exceptions import AirflowProviderDeprecationWarning
29
29
  from airflow.providers.amazon.aws.hooks.emr import EmrContainerHook, EmrHook, EmrServerlessHook
30
30
  from airflow.providers.amazon.aws.links.emr import (
31
31
  EmrClusterLink,
@@ -58,10 +58,11 @@ from airflow.providers.amazon.aws.utils.waiter import (
58
58
  )
59
59
  from airflow.providers.amazon.aws.utils.waiter_with_logging import wait
60
60
  from airflow.providers.amazon.version_compat import NOTSET, ArgNotSet
61
+ from airflow.providers.common.compat.sdk import AirflowException
61
62
  from airflow.utils.helpers import exactly_one, prune_dict
62
63
 
63
64
  if TYPE_CHECKING:
64
- from airflow.utils.context import Context
65
+ from airflow.sdk import Context
65
66
 
66
67
 
67
68
  class EmrAddStepsOperator(AwsBaseOperator[EmrHook]):
@@ -19,14 +19,14 @@ from __future__ import annotations
19
19
  from collections.abc import Sequence
20
20
  from typing import TYPE_CHECKING
21
21
 
22
- from airflow.exceptions import AirflowException
23
22
  from airflow.providers.amazon.aws.hooks.eventbridge import EventBridgeHook
24
23
  from airflow.providers.amazon.aws.operators.base_aws import AwsBaseOperator
25
24
  from airflow.providers.amazon.aws.utils.mixins import aws_template_fields
25
+ from airflow.providers.common.compat.sdk import AirflowException
26
26
  from airflow.utils.helpers import prune_dict
27
27
 
28
28
  if TYPE_CHECKING:
29
- from airflow.utils.context import Context
29
+ from airflow.sdk import Context
30
30
 
31
31
 
32
32
  class EventBridgePutEventsOperator(AwsBaseOperator[EventBridgeHook]):
@@ -25,7 +25,7 @@ from airflow.providers.amazon.aws.operators.base_aws import AwsBaseOperator
25
25
  from airflow.providers.amazon.aws.utils.mixins import aws_template_fields
26
26
 
27
27
  if TYPE_CHECKING:
28
- from airflow.utils.context import Context
28
+ from airflow.sdk import Context
29
29
 
30
30
 
31
31
  class GlacierCreateJobOperator(AwsBaseOperator[GlacierHook]):
@@ -25,7 +25,6 @@ from typing import TYPE_CHECKING, Any
25
25
  from botocore.exceptions import ClientError
26
26
 
27
27
  from airflow.configuration import conf
28
- from airflow.exceptions import AirflowException
29
28
  from airflow.providers.amazon.aws.hooks.glue import GlueDataQualityHook, GlueJobHook
30
29
  from airflow.providers.amazon.aws.hooks.s3 import S3Hook
31
30
  from airflow.providers.amazon.aws.links.glue import GlueJobRunDetailsLink
@@ -37,9 +36,10 @@ from airflow.providers.amazon.aws.triggers.glue import (
37
36
  )
38
37
  from airflow.providers.amazon.aws.utils import validate_execute_complete_event
39
38
  from airflow.providers.amazon.aws.utils.mixins import aws_template_fields
39
+ from airflow.providers.common.compat.sdk import AirflowException
40
40
 
41
41
  if TYPE_CHECKING:
42
- from airflow.utils.context import Context
42
+ from airflow.sdk import Context
43
43
 
44
44
 
45
45
  class GlueJobOperator(AwsBaseOperator[GlueJobHook]):
@@ -21,16 +21,15 @@ from collections.abc import Sequence
21
21
  from typing import TYPE_CHECKING, Any
22
22
 
23
23
  from airflow.configuration import conf
24
- from airflow.exceptions import AirflowException
24
+ from airflow.providers.amazon.aws.hooks.glue_crawler import GlueCrawlerHook
25
25
  from airflow.providers.amazon.aws.operators.base_aws import AwsBaseOperator
26
26
  from airflow.providers.amazon.aws.triggers.glue_crawler import GlueCrawlerCompleteTrigger
27
27
  from airflow.providers.amazon.aws.utils import validate_execute_complete_event
28
28
  from airflow.providers.amazon.aws.utils.mixins import aws_template_fields
29
+ from airflow.providers.common.compat.sdk import AirflowException
29
30
 
30
31
  if TYPE_CHECKING:
31
- from airflow.utils.context import Context
32
-
33
- from airflow.providers.amazon.aws.hooks.glue_crawler import GlueCrawlerHook
32
+ from airflow.sdk import Context
34
33
 
35
34
 
36
35
  class GlueCrawlerOperator(AwsBaseOperator[GlueCrawlerHook]):
@@ -21,15 +21,15 @@ from collections.abc import Sequence
21
21
  from typing import TYPE_CHECKING, Any
22
22
 
23
23
  from airflow.configuration import conf
24
- from airflow.exceptions import AirflowException
25
24
  from airflow.providers.amazon.aws.hooks.glue_databrew import GlueDataBrewHook
26
25
  from airflow.providers.amazon.aws.operators.base_aws import AwsBaseOperator
27
26
  from airflow.providers.amazon.aws.triggers.glue_databrew import GlueDataBrewJobCompleteTrigger
28
27
  from airflow.providers.amazon.aws.utils import validate_execute_complete_event
29
28
  from airflow.providers.amazon.aws.utils.mixins import aws_template_fields
29
+ from airflow.providers.common.compat.sdk import AirflowException
30
30
 
31
31
  if TYPE_CHECKING:
32
- from airflow.utils.context import Context
32
+ from airflow.sdk import Context
33
33
 
34
34
 
35
35
  class GlueDataBrewStartJobOperator(AwsBaseOperator[GlueDataBrewHook]):
@@ -22,7 +22,6 @@ from typing import TYPE_CHECKING, Any, ClassVar
22
22
  from botocore.exceptions import ClientError
23
23
 
24
24
  from airflow.configuration import conf
25
- from airflow.exceptions import AirflowException
26
25
  from airflow.providers.amazon.aws.hooks.kinesis_analytics import KinesisAnalyticsV2Hook
27
26
  from airflow.providers.amazon.aws.operators.base_aws import AwsBaseOperator
28
27
  from airflow.providers.amazon.aws.triggers.kinesis_analytics import (
@@ -30,9 +29,10 @@ from airflow.providers.amazon.aws.triggers.kinesis_analytics import (
30
29
  )
31
30
  from airflow.providers.amazon.aws.utils import validate_execute_complete_event
32
31
  from airflow.providers.amazon.aws.utils.mixins import aws_template_fields
32
+ from airflow.providers.common.compat.sdk import AirflowException
33
33
 
34
34
  if TYPE_CHECKING:
35
- from airflow.utils.context import Context
35
+ from airflow.sdk import Context
36
36
 
37
37
 
38
38
  class KinesisAnalyticsV2CreateApplicationOperator(AwsBaseOperator[KinesisAnalyticsV2Hook]):
@@ -23,15 +23,15 @@ from datetime import timedelta
23
23
  from typing import TYPE_CHECKING, Any
24
24
 
25
25
  from airflow.configuration import conf
26
- from airflow.exceptions import AirflowException
27
26
  from airflow.providers.amazon.aws.hooks.lambda_function import LambdaHook
28
27
  from airflow.providers.amazon.aws.operators.base_aws import AwsBaseOperator
29
28
  from airflow.providers.amazon.aws.triggers.lambda_function import LambdaCreateFunctionCompleteTrigger
30
29
  from airflow.providers.amazon.aws.utils import validate_execute_complete_event
31
30
  from airflow.providers.amazon.aws.utils.mixins import aws_template_fields
31
+ from airflow.providers.common.compat.sdk import AirflowException
32
32
 
33
33
  if TYPE_CHECKING:
34
- from airflow.utils.context import Context
34
+ from airflow.sdk import Context
35
35
 
36
36
 
37
37
  class LambdaCreateFunctionOperator(AwsBaseOperator[LambdaHook]):
@@ -22,15 +22,15 @@ from collections.abc import Sequence
22
22
  from typing import TYPE_CHECKING, Any, Literal
23
23
 
24
24
  from airflow.configuration import conf
25
- from airflow.exceptions import AirflowException
26
25
  from airflow.providers.amazon.aws.hooks.mwaa import MwaaHook
27
26
  from airflow.providers.amazon.aws.operators.base_aws import AwsBaseOperator
28
27
  from airflow.providers.amazon.aws.triggers.mwaa import MwaaDagRunCompletedTrigger
29
28
  from airflow.providers.amazon.aws.utils import validate_execute_complete_event
30
29
  from airflow.providers.amazon.aws.utils.mixins import aws_template_fields
30
+ from airflow.providers.common.compat.sdk import AirflowException
31
31
 
32
32
  if TYPE_CHECKING:
33
- from airflow.utils.context import Context
33
+ from airflow.sdk import Context
34
34
 
35
35
 
36
36
  class MwaaTriggerDagRunOperator(AwsBaseOperator[MwaaHook]):
@@ -23,7 +23,6 @@ from typing import TYPE_CHECKING, Any
23
23
  from botocore.exceptions import ClientError
24
24
 
25
25
  from airflow.configuration import conf
26
- from airflow.exceptions import AirflowException
27
26
  from airflow.providers.amazon.aws.hooks.neptune import NeptuneHook
28
27
  from airflow.providers.amazon.aws.operators.base_aws import AwsBaseOperator
29
28
  from airflow.providers.amazon.aws.triggers.neptune import (
@@ -32,9 +31,10 @@ from airflow.providers.amazon.aws.triggers.neptune import (
32
31
  NeptuneClusterStoppedTrigger,
33
32
  )
34
33
  from airflow.providers.amazon.aws.utils.mixins import aws_template_fields
34
+ from airflow.providers.common.compat.sdk import AirflowException
35
35
 
36
36
  if TYPE_CHECKING:
37
- from airflow.utils.context import Context
37
+ from airflow.sdk import Context
38
38
 
39
39
 
40
40
  def handle_waitable_exception(
@@ -24,7 +24,7 @@ from airflow.providers.amazon.aws.operators.base_aws import AwsBaseOperator
24
24
  from airflow.providers.amazon.aws.utils.mixins import aws_template_fields
25
25
 
26
26
  if TYPE_CHECKING:
27
- from airflow.utils.context import Context
27
+ from airflow.sdk import Context
28
28
 
29
29
 
30
30
  class QuickSightCreateIngestionOperator(AwsBaseOperator[QuickSightHook]):
@@ -23,7 +23,6 @@ from datetime import timedelta
23
23
  from typing import TYPE_CHECKING, Any
24
24
 
25
25
  from airflow.configuration import conf
26
- from airflow.exceptions import AirflowException
27
26
  from airflow.providers.amazon.aws.hooks.rds import RdsHook
28
27
  from airflow.providers.amazon.aws.operators.base_aws import AwsBaseOperator
29
28
  from airflow.providers.amazon.aws.triggers.rds import (
@@ -36,12 +35,13 @@ from airflow.providers.amazon.aws.utils.mixins import aws_template_fields
36
35
  from airflow.providers.amazon.aws.utils.rds import RdsDbType
37
36
  from airflow.providers.amazon.aws.utils.tags import format_tags
38
37
  from airflow.providers.amazon.aws.utils.waiter_with_logging import wait
38
+ from airflow.providers.common.compat.sdk import AirflowException
39
39
  from airflow.utils.helpers import prune_dict
40
40
 
41
41
  if TYPE_CHECKING:
42
42
  from mypy_boto3_rds.type_defs import TagTypeDef
43
43
 
44
- from airflow.utils.context import Context
44
+ from airflow.sdk import Context
45
45
 
46
46
 
47
47
  class RdsBaseOperator(AwsBaseOperator[RdsHook]):
@@ -22,7 +22,6 @@ from datetime import timedelta
22
22
  from typing import TYPE_CHECKING, Any
23
23
 
24
24
  from airflow.configuration import conf
25
- from airflow.exceptions import AirflowException
26
25
  from airflow.providers.amazon.aws.hooks.redshift_cluster import RedshiftHook
27
26
  from airflow.providers.amazon.aws.operators.base_aws import AwsBaseOperator
28
27
  from airflow.providers.amazon.aws.triggers.redshift_cluster import (
@@ -34,10 +33,11 @@ from airflow.providers.amazon.aws.triggers.redshift_cluster import (
34
33
  )
35
34
  from airflow.providers.amazon.aws.utils import validate_execute_complete_event
36
35
  from airflow.providers.amazon.aws.utils.mixins import aws_template_fields
36
+ from airflow.providers.common.compat.sdk import AirflowException
37
37
  from airflow.utils.helpers import prune_dict
38
38
 
39
39
  if TYPE_CHECKING:
40
- from airflow.utils.context import Context
40
+ from airflow.sdk import Context
41
41
 
42
42
 
43
43
  class RedshiftCreateClusterOperator(AwsBaseOperator[RedshiftHook]):
@@ -20,12 +20,12 @@ from __future__ import annotations
20
20
  from typing import TYPE_CHECKING, Any
21
21
 
22
22
  from airflow.configuration import conf
23
- from airflow.exceptions import AirflowException
24
23
  from airflow.providers.amazon.aws.hooks.redshift_data import RedshiftDataHook
25
24
  from airflow.providers.amazon.aws.operators.base_aws import AwsBaseOperator
26
25
  from airflow.providers.amazon.aws.triggers.redshift_data import RedshiftDataTrigger
27
26
  from airflow.providers.amazon.aws.utils import validate_execute_complete_event
28
27
  from airflow.providers.amazon.aws.utils.mixins import aws_template_fields
28
+ from airflow.providers.common.compat.sdk import AirflowException
29
29
 
30
30
  if TYPE_CHECKING:
31
31
  from mypy_boto3_redshift_data.type_defs import (
@@ -33,7 +33,7 @@ if TYPE_CHECKING:
33
33
  GetStatementResultResponseTypeDef,
34
34
  )
35
35
 
36
- from airflow.utils.context import Context
36
+ from airflow.sdk import Context
37
37
 
38
38
 
39
39
  class RedshiftDataOperator(AwsBaseOperator[RedshiftDataHook]):
@@ -28,16 +28,16 @@ from typing import TYPE_CHECKING
28
28
  import pytz
29
29
  from dateutil import parser
30
30
 
31
- from airflow.exceptions import AirflowException
32
31
  from airflow.providers.amazon.aws.hooks.s3 import S3Hook
33
32
  from airflow.providers.amazon.aws.operators.base_aws import AwsBaseOperator
34
33
  from airflow.providers.amazon.aws.utils.mixins import aws_template_fields
34
+ from airflow.providers.common.compat.sdk import AirflowException
35
35
  from airflow.utils.helpers import exactly_one
36
36
 
37
37
  if TYPE_CHECKING:
38
38
  from datetime import datetime
39
39
 
40
- from airflow.utils.context import Context
40
+ from airflow.sdk import Context
41
41
 
42
42
  BUCKET_DOES_NOT_EXIST_MSG = "Bucket with name: %s doesn't exist"
43
43
 
@@ -26,7 +26,6 @@ from typing import TYPE_CHECKING, Any, ClassVar
26
26
  from botocore.exceptions import ClientError
27
27
 
28
28
  from airflow.configuration import conf
29
- from airflow.exceptions import AirflowException
30
29
  from airflow.providers.amazon.aws.hooks.base_aws import AwsBaseHook
31
30
  from airflow.providers.amazon.aws.hooks.sagemaker import (
32
31
  LogState,
@@ -43,12 +42,13 @@ from airflow.providers.amazon.aws.utils import trim_none_values, validate_execut
43
42
  from airflow.providers.amazon.aws.utils.mixins import aws_template_fields
44
43
  from airflow.providers.amazon.aws.utils.sagemaker import ApprovalStatus
45
44
  from airflow.providers.amazon.aws.utils.tags import format_tags
45
+ from airflow.providers.common.compat.sdk import AirflowException
46
46
  from airflow.utils.helpers import prune_dict
47
47
 
48
48
  if TYPE_CHECKING:
49
49
  from airflow.providers.common.compat.openlineage.facet import Dataset
50
50
  from airflow.providers.openlineage.extractors.base import OperatorLineage
51
- from airflow.utils.context import Context
51
+ from airflow.sdk import Context
52
52
 
53
53
  # DEFAULT_CONN_ID: str = "aws_default"
54
54
  CHECK_INTERVAL_SECOND: int = 30
@@ -23,7 +23,6 @@ from functools import cached_property
23
23
  from typing import TYPE_CHECKING
24
24
 
25
25
  from airflow.configuration import conf
26
- from airflow.exceptions import AirflowException
27
26
  from airflow.providers.amazon.aws.hooks.sagemaker_unified_studio import (
28
27
  SageMakerNotebookHook,
29
28
  )
@@ -33,10 +32,10 @@ from airflow.providers.amazon.aws.links.sagemaker_unified_studio import (
33
32
  from airflow.providers.amazon.aws.triggers.sagemaker_unified_studio import (
34
33
  SageMakerNotebookJobTrigger,
35
34
  )
36
- from airflow.providers.common.compat.sdk import BaseOperator
35
+ from airflow.providers.common.compat.sdk import AirflowException, BaseOperator
37
36
 
38
37
  if TYPE_CHECKING:
39
- from airflow.utils.context import Context
38
+ from airflow.sdk import Context
40
39
 
41
40
 
42
41
  class SageMakerNotebookOperator(BaseOperator):
@@ -27,7 +27,7 @@ from airflow.providers.amazon.aws.operators.base_aws import AwsBaseOperator
27
27
  from airflow.providers.amazon.aws.utils.mixins import aws_template_fields
28
28
 
29
29
  if TYPE_CHECKING:
30
- from airflow.utils.context import Context
30
+ from airflow.sdk import Context
31
31
 
32
32
 
33
33
  class SnsPublishOperator(AwsBaseOperator[SnsHook]):
@@ -26,7 +26,7 @@ from airflow.providers.amazon.aws.operators.base_aws import AwsBaseOperator
26
26
  from airflow.providers.amazon.aws.utils.mixins import aws_template_fields
27
27
 
28
28
  if TYPE_CHECKING:
29
- from airflow.utils.context import Context
29
+ from airflow.sdk import Context
30
30
 
31
31
 
32
32
  class SqsPublishOperator(AwsBaseOperator[SqsHook]):
@@ -27,7 +27,7 @@ from airflow.providers.amazon.aws.utils import validate_execute_complete_event
27
27
  from airflow.providers.amazon.aws.utils.mixins import aws_template_fields
28
28
 
29
29
  if TYPE_CHECKING:
30
- from airflow.utils.context import Context
30
+ from airflow.sdk import Context
31
31
 
32
32
 
33
33
  class SsmRunCommandOperator(AwsBaseOperator[SsmHook]):
@@ -22,7 +22,6 @@ from datetime import timedelta
22
22
  from typing import TYPE_CHECKING, Any
23
23
 
24
24
  from airflow.configuration import conf
25
- from airflow.exceptions import AirflowException
26
25
  from airflow.providers.amazon.aws.hooks.step_function import StepFunctionHook
27
26
  from airflow.providers.amazon.aws.links.step_function import (
28
27
  StateMachineDetailsLink,
@@ -32,9 +31,10 @@ from airflow.providers.amazon.aws.operators.base_aws import AwsBaseOperator
32
31
  from airflow.providers.amazon.aws.triggers.step_function import StepFunctionsExecutionCompleteTrigger
33
32
  from airflow.providers.amazon.aws.utils import validate_execute_complete_event
34
33
  from airflow.providers.amazon.aws.utils.mixins import aws_template_fields
34
+ from airflow.providers.common.compat.sdk import AirflowException
35
35
 
36
36
  if TYPE_CHECKING:
37
- from airflow.utils.context import Context
37
+ from airflow.sdk import Context
38
38
 
39
39
 
40
40
  class StepFunctionStartExecutionOperator(AwsBaseOperator[StepFunctionHook]):
@@ -225,11 +225,12 @@ class SecretsManagerBackend(BaseSecretsBackend, LoggingMixin):
225
225
  return standardized_secret
226
226
  return secret
227
227
 
228
- def get_variable(self, key: str) -> str | None:
228
+ def get_variable(self, key: str, team_name: str | None = None) -> str | None:
229
229
  """
230
230
  Get Airflow Variable.
231
231
 
232
232
  :param key: Variable Key
233
+ :param team_name: Team name associated to the task trying to access the variable (if any)
233
234
  :return: Variable Value
234
235
  """
235
236
  if self.variables_prefix is None:
@@ -143,11 +143,12 @@ class SystemsManagerParameterStoreBackend(BaseSecretsBackend, LoggingMixin):
143
143
 
144
144
  return self._get_secret(self.connections_prefix, conn_id, self.connections_lookup_pattern)
145
145
 
146
- def get_variable(self, key: str) -> str | None:
146
+ def get_variable(self, key: str, team_name: str | None = None) -> str | None:
147
147
  """
148
148
  Get Airflow Variable.
149
149
 
150
150
  :param key: Variable Key
151
+ :param team_name: Team name associated to the task trying to access the variable (if any)
151
152
  :return: Variable Value
152
153
  """
153
154
  if self.variables_prefix is None:
@@ -20,14 +20,13 @@ from __future__ import annotations
20
20
  from collections.abc import Sequence
21
21
  from typing import TYPE_CHECKING, Any
22
22
 
23
+ from airflow.providers.amazon.aws.hooks.athena import AthenaHook
23
24
  from airflow.providers.amazon.aws.sensors.base_aws import AwsBaseSensor
24
25
  from airflow.providers.amazon.aws.utils.mixins import aws_template_fields
26
+ from airflow.providers.common.compat.sdk import AirflowException
25
27
 
26
28
  if TYPE_CHECKING:
27
- from airflow.utils.context import Context
28
-
29
- from airflow.exceptions import AirflowException
30
- from airflow.providers.amazon.aws.hooks.athena import AthenaHook
29
+ from airflow.sdk import Context
31
30
 
32
31
 
33
32
  class AthenaSensor(AwsBaseSensor[AthenaHook]):
@@ -21,14 +21,14 @@ from datetime import timedelta
21
21
  from typing import TYPE_CHECKING, Any
22
22
 
23
23
  from airflow.configuration import conf
24
- from airflow.exceptions import AirflowException
25
24
  from airflow.providers.amazon.aws.hooks.batch_client import BatchClientHook
26
25
  from airflow.providers.amazon.aws.sensors.base_aws import AwsBaseSensor
27
26
  from airflow.providers.amazon.aws.triggers.batch import BatchJobTrigger
28
27
  from airflow.providers.amazon.aws.utils.mixins import aws_template_fields
28
+ from airflow.providers.common.compat.sdk import AirflowException
29
29
 
30
30
  if TYPE_CHECKING:
31
- from airflow.utils.context import Context
31
+ from airflow.sdk import Context
32
32
 
33
33
 
34
34
  class BatchSensor(AwsBaseSensor[BatchClientHook]):