apache-airflow-providers-amazon 9.0.0rc1__tar.gz → 9.1.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 (255) hide show
  1. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/PKG-INFO +22 -24
  2. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/README.rst +5 -6
  3. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/__init__.py +1 -1
  4. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/assets/s3.py +7 -7
  5. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/auth_manager/aws_auth_manager.py +12 -1
  6. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/hooks/athena.py +25 -15
  7. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/hooks/eks.py +2 -2
  8. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/hooks/glue.py +5 -1
  9. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/hooks/redshift_sql.py +1 -1
  10. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/hooks/s3.py +79 -31
  11. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/hooks/sagemaker.py +2 -0
  12. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/operators/appflow.py +1 -1
  13. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/operators/athena.py +3 -1
  14. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/operators/comprehend.py +3 -3
  15. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/operators/dms.py +3 -3
  16. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/operators/ecs.py +11 -3
  17. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/operators/eks.py +4 -2
  18. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/operators/glue.py +10 -1
  19. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/operators/kinesis_analytics.py +3 -3
  20. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/operators/redshift_data.py +43 -20
  21. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/operators/sagemaker.py +2 -2
  22. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/sensors/sagemaker.py +32 -0
  23. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/transfers/redshift_to_s3.py +106 -7
  24. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/transfers/s3_to_dynamodb.py +1 -1
  25. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/transfers/s3_to_redshift.py +1 -1
  26. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/triggers/athena.py +1 -2
  27. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/triggers/ecs.py +6 -6
  28. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/triggers/glue.py +1 -1
  29. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/get_provider_info.py +5 -5
  30. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/pyproject.toml +8 -10
  31. apache_airflow_providers_amazon-9.0.0rc1/airflow/providers/amazon/aws/utils/asset_compat_lineage_collector.py +0 -106
  32. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/LICENSE +0 -0
  33. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/__init__.py +0 -0
  34. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/assets/__init__.py +0 -0
  35. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/auth_manager/__init__.py +0 -0
  36. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/auth_manager/avp/__init__.py +0 -0
  37. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/auth_manager/avp/entities.py +0 -0
  38. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/auth_manager/avp/facade.py +0 -0
  39. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/auth_manager/avp/schema.json +0 -0
  40. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/auth_manager/cli/__init__.py +0 -0
  41. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/auth_manager/cli/avp_commands.py +0 -0
  42. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/auth_manager/cli/definition.py +0 -0
  43. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/auth_manager/constants.py +0 -0
  44. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/auth_manager/security_manager/__init__.py +0 -0
  45. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/auth_manager/security_manager/aws_security_manager_override.py +0 -0
  46. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/auth_manager/user.py +0 -0
  47. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/auth_manager/views/__init__.py +0 -0
  48. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/auth_manager/views/auth.py +0 -0
  49. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/exceptions.py +0 -0
  50. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/executors/Dockerfile +0 -0
  51. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/executors/__init__.py +0 -0
  52. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/executors/batch/__init__.py +0 -0
  53. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/executors/batch/batch_executor.py +0 -0
  54. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/executors/batch/batch_executor_config.py +0 -0
  55. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/executors/batch/boto_schema.py +0 -0
  56. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/executors/batch/utils.py +0 -0
  57. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/executors/ecs/__init__.py +0 -0
  58. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/executors/ecs/boto_schema.py +0 -0
  59. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/executors/ecs/ecs_executor.py +0 -0
  60. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/executors/ecs/ecs_executor_config.py +0 -0
  61. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/executors/ecs/utils.py +0 -0
  62. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/executors/utils/__init__.py +0 -0
  63. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/executors/utils/base_config_keys.py +0 -0
  64. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/executors/utils/exponential_backoff_retry.py +0 -0
  65. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/fs/__init__.py +0 -0
  66. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/fs/s3.py +0 -0
  67. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/hooks/__init__.py +0 -0
  68. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/hooks/appflow.py +0 -0
  69. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/hooks/athena_sql.py +0 -0
  70. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/hooks/base_aws.py +0 -0
  71. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/hooks/batch_client.py +0 -0
  72. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/hooks/batch_waiters.json +0 -0
  73. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/hooks/batch_waiters.py +0 -0
  74. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/hooks/bedrock.py +0 -0
  75. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/hooks/chime.py +0 -0
  76. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/hooks/cloud_formation.py +0 -0
  77. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/hooks/comprehend.py +0 -0
  78. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/hooks/datasync.py +0 -0
  79. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/hooks/dms.py +0 -0
  80. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/hooks/dynamodb.py +0 -0
  81. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/hooks/ec2.py +0 -0
  82. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/hooks/ecr.py +0 -0
  83. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/hooks/ecs.py +0 -0
  84. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/hooks/elasticache_replication_group.py +0 -0
  85. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/hooks/emr.py +0 -0
  86. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/hooks/eventbridge.py +0 -0
  87. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/hooks/glacier.py +0 -0
  88. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/hooks/glue_catalog.py +0 -0
  89. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/hooks/glue_crawler.py +0 -0
  90. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/hooks/glue_databrew.py +0 -0
  91. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/hooks/kinesis.py +0 -0
  92. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/hooks/kinesis_analytics.py +0 -0
  93. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/hooks/lambda_function.py +0 -0
  94. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/hooks/logs.py +0 -0
  95. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/hooks/neptune.py +0 -0
  96. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/hooks/opensearch_serverless.py +0 -0
  97. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/hooks/quicksight.py +0 -0
  98. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/hooks/rds.py +0 -0
  99. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/hooks/redshift_cluster.py +0 -0
  100. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/hooks/redshift_data.py +0 -0
  101. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/hooks/secrets_manager.py +0 -0
  102. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/hooks/ses.py +0 -0
  103. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/hooks/sns.py +0 -0
  104. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/hooks/sqs.py +0 -0
  105. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/hooks/ssm.py +0 -0
  106. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/hooks/step_function.py +0 -0
  107. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/hooks/sts.py +0 -0
  108. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/hooks/verified_permissions.py +0 -0
  109. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/links/__init__.py +0 -0
  110. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/links/athena.py +0 -0
  111. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/links/base_aws.py +0 -0
  112. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/links/batch.py +0 -0
  113. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/links/emr.py +0 -0
  114. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/links/glue.py +0 -0
  115. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/links/logs.py +0 -0
  116. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/links/step_function.py +0 -0
  117. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/log/__init__.py +0 -0
  118. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/log/cloudwatch_task_handler.py +0 -0
  119. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/log/s3_task_handler.py +0 -0
  120. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/notifications/__init__.py +0 -0
  121. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/notifications/chime.py +0 -0
  122. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/notifications/sns.py +0 -0
  123. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/notifications/sqs.py +0 -0
  124. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/operators/__init__.py +0 -0
  125. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/operators/base_aws.py +0 -0
  126. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/operators/batch.py +0 -0
  127. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/operators/bedrock.py +0 -0
  128. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/operators/cloud_formation.py +0 -0
  129. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/operators/datasync.py +0 -0
  130. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/operators/ec2.py +0 -0
  131. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/operators/emr.py +0 -0
  132. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/operators/eventbridge.py +0 -0
  133. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/operators/glacier.py +0 -0
  134. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/operators/glue_crawler.py +0 -0
  135. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/operators/glue_databrew.py +0 -0
  136. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/operators/lambda_function.py +0 -0
  137. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/operators/neptune.py +0 -0
  138. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/operators/quicksight.py +0 -0
  139. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/operators/rds.py +0 -0
  140. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/operators/redshift_cluster.py +0 -0
  141. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/operators/s3.py +0 -0
  142. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/operators/sns.py +0 -0
  143. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/operators/sqs.py +0 -0
  144. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/operators/step_function.py +0 -0
  145. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/secrets/__init__.py +0 -0
  146. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/secrets/secrets_manager.py +0 -0
  147. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/secrets/systems_manager.py +0 -0
  148. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/sensors/__init__.py +0 -0
  149. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/sensors/athena.py +0 -0
  150. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/sensors/base_aws.py +0 -0
  151. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/sensors/batch.py +0 -0
  152. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/sensors/bedrock.py +0 -0
  153. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/sensors/cloud_formation.py +0 -0
  154. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/sensors/comprehend.py +0 -0
  155. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/sensors/dms.py +0 -0
  156. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/sensors/dynamodb.py +0 -0
  157. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/sensors/ec2.py +0 -0
  158. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/sensors/ecs.py +0 -0
  159. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/sensors/eks.py +0 -0
  160. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/sensors/emr.py +0 -0
  161. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/sensors/glacier.py +0 -0
  162. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/sensors/glue.py +0 -0
  163. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/sensors/glue_catalog_partition.py +0 -0
  164. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/sensors/glue_crawler.py +0 -0
  165. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/sensors/kinesis_analytics.py +0 -0
  166. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/sensors/lambda_function.py +0 -0
  167. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/sensors/opensearch_serverless.py +0 -0
  168. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/sensors/quicksight.py +0 -0
  169. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/sensors/rds.py +0 -0
  170. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/sensors/redshift_cluster.py +0 -0
  171. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/sensors/s3.py +0 -0
  172. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/sensors/sqs.py +0 -0
  173. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/sensors/step_function.py +0 -0
  174. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/transfers/__init__.py +0 -0
  175. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/transfers/azure_blob_to_s3.py +0 -0
  176. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/transfers/base.py +0 -0
  177. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/transfers/dynamodb_to_s3.py +0 -0
  178. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/transfers/exasol_to_s3.py +0 -0
  179. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/transfers/ftp_to_s3.py +0 -0
  180. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/transfers/gcs_to_s3.py +0 -0
  181. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/transfers/glacier_to_gcs.py +0 -0
  182. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/transfers/google_api_to_s3.py +0 -0
  183. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/transfers/hive_to_dynamodb.py +0 -0
  184. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/transfers/http_to_s3.py +0 -0
  185. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/transfers/imap_attachment_to_s3.py +0 -0
  186. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/transfers/local_to_s3.py +0 -0
  187. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/transfers/mongo_to_s3.py +0 -0
  188. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/transfers/s3_to_ftp.py +0 -0
  189. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/transfers/s3_to_sftp.py +0 -0
  190. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/transfers/s3_to_sql.py +0 -0
  191. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/transfers/salesforce_to_s3.py +0 -0
  192. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/transfers/sftp_to_s3.py +0 -0
  193. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/transfers/sql_to_s3.py +0 -0
  194. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/triggers/README.md +0 -0
  195. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/triggers/__init__.py +0 -0
  196. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/triggers/base.py +0 -0
  197. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/triggers/batch.py +0 -0
  198. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/triggers/bedrock.py +0 -0
  199. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/triggers/comprehend.py +0 -0
  200. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/triggers/ec2.py +0 -0
  201. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/triggers/eks.py +0 -0
  202. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/triggers/emr.py +0 -0
  203. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/triggers/glue_crawler.py +0 -0
  204. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/triggers/glue_databrew.py +0 -0
  205. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/triggers/kinesis_analytics.py +0 -0
  206. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/triggers/lambda_function.py +0 -0
  207. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/triggers/neptune.py +0 -0
  208. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/triggers/opensearch_serverless.py +0 -0
  209. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/triggers/rds.py +0 -0
  210. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/triggers/redshift_cluster.py +0 -0
  211. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/triggers/redshift_data.py +0 -0
  212. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/triggers/s3.py +0 -0
  213. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/triggers/sagemaker.py +0 -0
  214. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/triggers/sqs.py +0 -0
  215. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/triggers/step_function.py +0 -0
  216. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/utils/__init__.py +0 -0
  217. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/utils/connection_wrapper.py +0 -0
  218. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/utils/eks_get_token.py +0 -0
  219. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/utils/emailer.py +0 -0
  220. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/utils/identifiers.py +0 -0
  221. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/utils/mixins.py +0 -0
  222. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/utils/openlineage.py +0 -0
  223. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/utils/rds.py +0 -0
  224. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/utils/redshift.py +0 -0
  225. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/utils/sagemaker.py +0 -0
  226. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/utils/sqs.py +0 -0
  227. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/utils/suppress.py +0 -0
  228. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/utils/tags.py +0 -0
  229. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/utils/task_log_fetcher.py +0 -0
  230. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/utils/waiter.py +0 -0
  231. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/utils/waiter_with_logging.py +0 -0
  232. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/waiters/README.md +0 -0
  233. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/waiters/__init__.py +0 -0
  234. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/waiters/appflow.json +0 -0
  235. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/waiters/athena.json +0 -0
  236. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/waiters/base_waiter.py +0 -0
  237. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/waiters/batch.json +0 -0
  238. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/waiters/bedrock-agent.json +0 -0
  239. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/waiters/bedrock.json +0 -0
  240. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/waiters/comprehend.json +0 -0
  241. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/waiters/databrew.json +0 -0
  242. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/waiters/dynamodb.json +0 -0
  243. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/waiters/ecs.json +0 -0
  244. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/waiters/eks.json +0 -0
  245. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/waiters/emr-containers.json +0 -0
  246. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/waiters/emr-serverless.json +0 -0
  247. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/waiters/emr.json +0 -0
  248. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/waiters/glue.json +0 -0
  249. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/waiters/kinesisanalyticsv2.json +0 -0
  250. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/waiters/neptune.json +0 -0
  251. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/waiters/opensearchserverless.json +0 -0
  252. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/waiters/rds.json +0 -0
  253. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/waiters/redshift.json +0 -0
  254. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/waiters/sagemaker.json +0 -0
  255. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0}/airflow/providers/amazon/aws/waiters/stepfunctions.json +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.3
2
2
  Name: apache-airflow-providers-amazon
3
- Version: 9.0.0rc1
3
+ Version: 9.1.0
4
4
  Summary: Provider package apache-airflow-providers-amazon for Apache Airflow
5
5
  Keywords: airflow-provider,amazon,airflow,integration
6
6
  Author-email: Apache Software Foundation <dev@airflow.apache.org>
@@ -21,10 +21,10 @@ Classifier: Programming Language :: Python :: 3.11
21
21
  Classifier: Programming Language :: Python :: 3.12
22
22
  Classifier: Topic :: System :: Monitoring
23
23
  Requires-Dist: PyAthena>=3.0.10
24
- Requires-Dist: apache-airflow-providers-common-compat>=1.1.0rc0
25
- Requires-Dist: apache-airflow-providers-common-sql>=1.3.1rc0
24
+ Requires-Dist: apache-airflow-providers-common-compat>=1.2.1
25
+ Requires-Dist: apache-airflow-providers-common-sql>=1.20.0
26
26
  Requires-Dist: apache-airflow-providers-http
27
- Requires-Dist: apache-airflow>=2.8.0rc0
27
+ Requires-Dist: apache-airflow>=2.8.0
28
28
  Requires-Dist: asgiref>=2.3.0
29
29
  Requires-Dist: boto3>=1.34.90
30
30
  Requires-Dist: botocore>=1.34.90
@@ -33,19 +33,18 @@ Requires-Dist: jmespath>=0.7.0
33
33
  Requires-Dist: jsonpath_ng>=1.5.3
34
34
  Requires-Dist: python3-saml>=1.16.0
35
35
  Requires-Dist: redshift_connector>=2.0.918
36
- Requires-Dist: sqlalchemy_redshift>=0.8.6
37
36
  Requires-Dist: watchtower>=3.0.0,!=3.3.0,<4
38
37
  Requires-Dist: aiobotocore[boto3]>=2.13.0 ; extra == "aiobotocore"
39
- Requires-Dist: apache-airflow-providers-apache-hive ; extra == "apache.hive"
40
- Requires-Dist: apache-airflow-providers-cncf-kubernetes>=7.2.0rc0 ; extra == "cncf.kubernetes"
41
- Requires-Dist: apache-airflow-providers-common-compat ; extra == "common.compat"
42
- Requires-Dist: apache-airflow-providers-common-sql ; extra == "common.sql"
38
+ Requires-Dist: apache-airflow-providers-apache-hive ; extra == "apache-hive"
39
+ Requires-Dist: apache-airflow-providers-cncf-kubernetes>=7.2.0 ; extra == "cncf-kubernetes"
40
+ Requires-Dist: apache-airflow-providers-common-compat ; extra == "common-compat"
41
+ Requires-Dist: apache-airflow-providers-common-sql ; extra == "common-sql"
43
42
  Requires-Dist: apache-airflow-providers-exasol ; extra == "exasol"
44
43
  Requires-Dist: apache-airflow-providers-ftp ; extra == "ftp"
45
44
  Requires-Dist: apache-airflow-providers-google ; extra == "google"
46
45
  Requires-Dist: apache-airflow-providers-http ; extra == "http"
47
46
  Requires-Dist: apache-airflow-providers-imap ; extra == "imap"
48
- Requires-Dist: apache-airflow-providers-microsoft-azure ; extra == "microsoft.azure"
47
+ Requires-Dist: apache-airflow-providers-microsoft-azure ; extra == "microsoft-azure"
49
48
  Requires-Dist: apache-airflow-providers-mongo ; extra == "mongo"
50
49
  Requires-Dist: apache-airflow-providers-openlineage ; extra == "openlineage"
51
50
  Requires-Dist: pandas>=2.1.2,<2.2 ; extra == "pandas" and (python_version>="3.9")
@@ -55,23 +54,23 @@ Requires-Dist: s3fs>=2023.10.0 ; extra == "s3fs"
55
54
  Requires-Dist: apache-airflow-providers-salesforce ; extra == "salesforce"
56
55
  Requires-Dist: apache-airflow-providers-ssh ; extra == "ssh"
57
56
  Project-URL: Bug Tracker, https://github.com/apache/airflow/issues
58
- Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-amazon/9.0.0/changelog.html
59
- Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-amazon/9.0.0
57
+ Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-amazon/9.1.0/changelog.html
58
+ Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-amazon/9.1.0
60
59
  Project-URL: Slack Chat, https://s.apache.org/airflow-slack
61
60
  Project-URL: Source Code, https://github.com/apache/airflow
62
61
  Project-URL: Twitter, https://twitter.com/ApacheAirflow
63
62
  Project-URL: YouTube, https://www.youtube.com/channel/UCSXwxpWZQ7XZ1WL3wqevChA/
64
63
  Provides-Extra: aiobotocore
65
- Provides-Extra: apache.hive
66
- Provides-Extra: cncf.kubernetes
67
- Provides-Extra: common.compat
68
- Provides-Extra: common.sql
64
+ Provides-Extra: apache-hive
65
+ Provides-Extra: cncf-kubernetes
66
+ Provides-Extra: common-compat
67
+ Provides-Extra: common-sql
69
68
  Provides-Extra: exasol
70
69
  Provides-Extra: ftp
71
70
  Provides-Extra: google
72
71
  Provides-Extra: http
73
72
  Provides-Extra: imap
74
- Provides-Extra: microsoft.azure
73
+ Provides-Extra: microsoft-azure
75
74
  Provides-Extra: mongo
76
75
  Provides-Extra: openlineage
77
76
  Provides-Extra: pandas
@@ -124,7 +123,7 @@ Provides-Extra: ssh
124
123
 
125
124
  Package ``apache-airflow-providers-amazon``
126
125
 
127
- Release: ``9.0.0.rc1``
126
+ Release: ``9.1.0``
128
127
 
129
128
 
130
129
  Amazon integration (including `Amazon Web Services (AWS) <https://aws.amazon.com/>`__).
@@ -137,7 +136,7 @@ This is a provider package for ``amazon`` provider. All classes for this provide
137
136
  are in ``airflow.providers.amazon`` python package.
138
137
 
139
138
  You can find package information and changelog for the provider
140
- in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-amazon/9.0.0/>`_.
139
+ in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-amazon/9.1.0/>`_.
141
140
 
142
141
  Installation
143
142
  ------------
@@ -155,8 +154,8 @@ Requirements
155
154
  PIP package Version required
156
155
  ========================================== ======================
157
156
  ``apache-airflow`` ``>=2.8.0``
158
- ``apache-airflow-providers-common-compat`` ``>=1.1.0``
159
- ``apache-airflow-providers-common-sql`` ``>=1.3.1``
157
+ ``apache-airflow-providers-common-compat`` ``>=1.2.1``
158
+ ``apache-airflow-providers-common-sql`` ``>=1.20.0``
160
159
  ``apache-airflow-providers-http``
161
160
  ``boto3`` ``>=1.34.90``
162
161
  ``botocore`` ``>=1.34.90``
@@ -164,7 +163,6 @@ PIP package Version required
164
163
  ``watchtower`` ``>=3.0.0,!=3.3.0,<4``
165
164
  ``jsonpath_ng`` ``>=1.5.3``
166
165
  ``redshift_connector`` ``>=2.0.918``
167
- ``sqlalchemy_redshift`` ``>=0.8.6``
168
166
  ``asgiref`` ``>=2.3.0``
169
167
  ``PyAthena`` ``>=3.0.10``
170
168
  ``jmespath`` ``>=0.7.0``
@@ -204,4 +202,4 @@ Dependent package
204
202
  ====================================================================================================================== ===================
205
203
 
206
204
  The changelog for the provider package can be found in the
207
- `changelog <https://airflow.apache.org/docs/apache-airflow-providers-amazon/9.0.0/changelog.html>`_.
205
+ `changelog <https://airflow.apache.org/docs/apache-airflow-providers-amazon/9.1.0/changelog.html>`_.
@@ -42,7 +42,7 @@
42
42
 
43
43
  Package ``apache-airflow-providers-amazon``
44
44
 
45
- Release: ``9.0.0.rc1``
45
+ Release: ``9.1.0``
46
46
 
47
47
 
48
48
  Amazon integration (including `Amazon Web Services (AWS) <https://aws.amazon.com/>`__).
@@ -55,7 +55,7 @@ This is a provider package for ``amazon`` provider. All classes for this provide
55
55
  are in ``airflow.providers.amazon`` python package.
56
56
 
57
57
  You can find package information and changelog for the provider
58
- in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-amazon/9.0.0/>`_.
58
+ in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-amazon/9.1.0/>`_.
59
59
 
60
60
  Installation
61
61
  ------------
@@ -73,8 +73,8 @@ Requirements
73
73
  PIP package Version required
74
74
  ========================================== ======================
75
75
  ``apache-airflow`` ``>=2.8.0``
76
- ``apache-airflow-providers-common-compat`` ``>=1.1.0``
77
- ``apache-airflow-providers-common-sql`` ``>=1.3.1``
76
+ ``apache-airflow-providers-common-compat`` ``>=1.2.1``
77
+ ``apache-airflow-providers-common-sql`` ``>=1.20.0``
78
78
  ``apache-airflow-providers-http``
79
79
  ``boto3`` ``>=1.34.90``
80
80
  ``botocore`` ``>=1.34.90``
@@ -82,7 +82,6 @@ PIP package Version required
82
82
  ``watchtower`` ``>=3.0.0,!=3.3.0,<4``
83
83
  ``jsonpath_ng`` ``>=1.5.3``
84
84
  ``redshift_connector`` ``>=2.0.918``
85
- ``sqlalchemy_redshift`` ``>=0.8.6``
86
85
  ``asgiref`` ``>=2.3.0``
87
86
  ``PyAthena`` ``>=3.0.10``
88
87
  ``jmespath`` ``>=0.7.0``
@@ -122,4 +121,4 @@ Dependent package
122
121
  ====================================================================================================================== ===================
123
122
 
124
123
  The changelog for the provider package can be found in the
125
- `changelog <https://airflow.apache.org/docs/apache-airflow-providers-amazon/9.0.0/changelog.html>`_.
124
+ `changelog <https://airflow.apache.org/docs/apache-airflow-providers-amazon/9.1.0/changelog.html>`_.
@@ -29,7 +29,7 @@ from airflow import __version__ as airflow_version
29
29
 
30
30
  __all__ = ["__version__"]
31
31
 
32
- __version__ = "9.0.0"
32
+ __version__ = "9.1.0"
33
33
 
34
34
  if packaging.version.parse(packaging.version.parse(airflow_version).base_version) < packaging.version.parse(
35
35
  "2.8.0"
@@ -19,16 +19,14 @@ from __future__ import annotations
19
19
  from typing import TYPE_CHECKING
20
20
 
21
21
  from airflow.providers.amazon.aws.hooks.s3 import S3Hook
22
-
23
- try:
24
- from airflow.assets import Asset
25
- except ModuleNotFoundError:
26
- from airflow.datasets import Dataset as Asset # type: ignore[no-redef]
22
+ from airflow.providers.common.compat.assets import Asset
27
23
 
28
24
  if TYPE_CHECKING:
29
25
  from urllib.parse import SplitResult
30
26
 
31
- from airflow.providers.common.compat.openlineage.facet import Dataset as OpenLineageDataset
27
+ from airflow.providers.common.compat.openlineage.facet import (
28
+ Dataset as OpenLineageDataset,
29
+ )
32
30
 
33
31
 
34
32
  def create_asset(*, bucket: str, key: str, extra=None) -> Asset:
@@ -43,7 +41,9 @@ def sanitize_uri(uri: SplitResult) -> SplitResult:
43
41
 
44
42
  def convert_asset_to_openlineage(asset: Asset, lineage_context) -> OpenLineageDataset:
45
43
  """Translate Asset with valid AIP-60 uri to OpenLineage with assistance from the hook."""
46
- from airflow.providers.common.compat.openlineage.facet import Dataset as OpenLineageDataset
44
+ from airflow.providers.common.compat.openlineage.facet import (
45
+ Dataset as OpenLineageDataset,
46
+ )
47
47
 
48
48
  bucket, key = S3Hook.parse_s3_url(asset.uri)
49
49
  return OpenLineageDataset(namespace=f"s3://{bucket}", name=key if key else "/")
@@ -17,6 +17,7 @@
17
17
  from __future__ import annotations
18
18
 
19
19
  import argparse
20
+ import warnings
20
21
  from collections import defaultdict
21
22
  from functools import cached_property
22
23
  from typing import TYPE_CHECKING, Container, Sequence, cast
@@ -24,7 +25,7 @@ from typing import TYPE_CHECKING, Container, Sequence, cast
24
25
  from flask import session, url_for
25
26
 
26
27
  from airflow.cli.cli_config import CLICommand, DefaultHelpParser, GroupCommand
27
- from airflow.exceptions import AirflowOptionalProviderFeatureException
28
+ from airflow.exceptions import AirflowOptionalProviderFeatureException, AirflowProviderDeprecationWarning
28
29
  from airflow.providers.amazon.aws.auth_manager.avp.entities import AvpEntities
29
30
  from airflow.providers.amazon.aws.auth_manager.avp.facade import (
30
31
  AwsAuthManagerAmazonVerifiedPermissionsFacade,
@@ -166,6 +167,16 @@ class AwsAuthManager(BaseAuthManager):
166
167
  method=method, entity_type=AvpEntities.ASSET, user=user or self.get_user(), entity_id=asset_uri
167
168
  )
168
169
 
170
+ def is_authorized_dataset(
171
+ self, *, method: ResourceMethod, details: AssetDetails | None = None, user: BaseUser | None = None
172
+ ) -> bool:
173
+ warnings.warn(
174
+ "is_authorized_dataset will be renamed as is_authorized_asset in Airflow 3 and will be removed when the minimum Airflow version is set to 3.0 for the amazon provider",
175
+ AirflowProviderDeprecationWarning,
176
+ stacklevel=2,
177
+ )
178
+ return self.is_authorized_asset(method=method, user=user)
179
+
169
180
  def is_authorized_pool(
170
181
  self, *, method: ResourceMethod, details: PoolDetails | None = None, user: BaseUser | None = None
171
182
  ) -> bool:
@@ -155,14 +155,15 @@ class AthenaHook(AwsBaseHook):
155
155
  state = None
156
156
  try:
157
157
  state = response["QueryExecution"]["Status"]["State"]
158
- except Exception:
159
- self.log.exception(
160
- "Exception while getting query state. Query execution id: %s", query_execution_id
161
- )
162
- finally:
158
+ except Exception as e:
163
159
  # The error is being absorbed here and is being handled by the caller.
164
160
  # The error is being absorbed to implement retries.
165
- return state
161
+ self.log.exception(
162
+ "Exception while getting query state. Query execution id: %s, Exception: %s",
163
+ query_execution_id,
164
+ e,
165
+ )
166
+ return state
166
167
 
167
168
  def get_state_change_reason(self, query_execution_id: str, use_cache: bool = False) -> str | None:
168
169
  """
@@ -177,15 +178,15 @@ class AthenaHook(AwsBaseHook):
177
178
  reason = None
178
179
  try:
179
180
  reason = response["QueryExecution"]["Status"]["StateChangeReason"]
180
- except Exception:
181
+ except Exception as e:
182
+ # The error is being absorbed here and is being handled by the caller.
183
+ # The error is being absorbed to implement retries.
181
184
  self.log.exception(
182
- "Exception while getting query state change reason. Query execution id: %s",
185
+ "Exception while getting query state change reason. Query execution id: %s, Exception: %s",
183
186
  query_execution_id,
187
+ e,
184
188
  )
185
- finally:
186
- # The error is being absorbed here and is being handled by the caller.
187
- # The error is being absorbed to implement retries.
188
- return reason
189
+ return reason
189
190
 
190
191
  def get_query_results(
191
192
  self, query_execution_id: str, next_token_id: str | None = None, max_results: int = 1000
@@ -287,9 +288,18 @@ class AthenaHook(AwsBaseHook):
287
288
  )
288
289
  except AirflowException as error:
289
290
  # this function does not raise errors to keep previous behavior.
290
- self.log.warning(error)
291
- finally:
292
- return self.check_query_status(query_execution_id)
291
+ self.log.warning(
292
+ "AirflowException while polling query status. Query execution id: %s, Exception: %s",
293
+ query_execution_id,
294
+ error,
295
+ )
296
+ except Exception as e:
297
+ self.log.warning(
298
+ "Unexpected exception while polling query status. Query execution id: %s, Exception: %s",
299
+ query_execution_id,
300
+ e,
301
+ )
302
+ return self.check_query_status(query_execution_id)
293
303
 
294
304
  def get_output_location(self, query_execution_id: str) -> str:
295
305
  """
@@ -85,8 +85,8 @@ COMMAND = """
85
85
  exit 1
86
86
  fi
87
87
 
88
- expiration_timestamp=$(echo "$output" | grep -oP 'expirationTimestamp:\s*\K[^,]+')
89
- token=$(echo "$output" | grep -oP 'token:\s*\K[^,]+')
88
+ expiration_timestamp=$(echo "$output" | grep -oP 'expirationTimestamp: \\K[^,]+')
89
+ token=$(echo "$output" | grep -oP 'token: \\K[^,]+')
90
90
 
91
91
  json_string=$(printf '{{"kind": "ExecCredential","apiVersion": \
92
92
  "client.authentication.k8s.io/v1alpha1","spec": {{}},"status": \
@@ -282,13 +282,16 @@ class GlueJobHook(AwsBaseHook):
282
282
  log_group_error, continuation_tokens.error_stream_continuation
283
283
  )
284
284
 
285
- def job_completion(self, job_name: str, run_id: str, verbose: bool = False) -> dict[str, str]:
285
+ def job_completion(
286
+ self, job_name: str, run_id: str, verbose: bool = False, sleep_before_return: int = 0
287
+ ) -> dict[str, str]:
286
288
  """
287
289
  Wait until Glue job with job_name finishes; return final state if finished or raises AirflowException.
288
290
 
289
291
  :param job_name: unique job name per AWS account
290
292
  :param run_id: The job-run ID of the predecessor job run
291
293
  :param verbose: If True, more Glue Job Run logs show in the Airflow Task Logs. (default: False)
294
+ :param sleep_before_return: time in seconds to wait before returning final status.
292
295
  :return: Dict of JobRunState and JobRunId
293
296
  """
294
297
  next_log_tokens = self.LogContinuationTokens()
@@ -296,6 +299,7 @@ class GlueJobHook(AwsBaseHook):
296
299
  job_run_state = self.get_job_state(job_name, run_id)
297
300
  ret = self._handle_state(job_run_state, job_name, run_id, verbose, next_log_tokens)
298
301
  if ret:
302
+ time.sleep(sleep_before_return)
299
303
  return ret
300
304
  else:
301
305
  time.sleep(self.job_poll_interval)
@@ -163,7 +163,7 @@ class RedshiftSQLHook(DbApiHook):
163
163
  # Compatibility: The 'create' factory method was added in SQLAlchemy 1.4
164
164
  # to replace calling the default URL constructor directly.
165
165
  create_url = getattr(URL, "create", URL)
166
- return str(create_url(drivername="redshift+redshift_connector", **conn_params))
166
+ return str(create_url(drivername="postgresql", **conn_params))
167
167
 
168
168
  def get_sqlalchemy_engine(self, engine_kwargs=None):
169
169
  """Overridden to pass Redshift-specific arguments."""
@@ -41,14 +41,16 @@ from urllib.parse import urlsplit
41
41
  from uuid import uuid4
42
42
 
43
43
  if TYPE_CHECKING:
44
- from mypy_boto3_s3.service_resource import Bucket as S3Bucket, Object as S3ResourceObject
44
+ from mypy_boto3_s3.service_resource import (
45
+ Bucket as S3Bucket,
46
+ Object as S3ResourceObject,
47
+ )
45
48
 
46
49
  from airflow.utils.types import ArgNotSet
47
50
 
48
51
  with suppress(ImportError):
49
52
  from aiobotocore.client import AioBaseClient
50
53
 
51
- from importlib.util import find_spec
52
54
 
53
55
  from asgiref.sync import sync_to_async
54
56
  from boto3.s3.transfer import S3Transfer, TransferConfig
@@ -58,15 +60,9 @@ from airflow.exceptions import AirflowException, AirflowNotFoundException
58
60
  from airflow.providers.amazon.aws.exceptions import S3HookUriParseFailure
59
61
  from airflow.providers.amazon.aws.hooks.base_aws import AwsBaseHook
60
62
  from airflow.providers.amazon.aws.utils.tags import format_tags
63
+ from airflow.providers.common.compat.lineage.hook import get_hook_lineage_collector
61
64
  from airflow.utils.helpers import chunks
62
65
 
63
- if find_spec("airflow.assets"):
64
- from airflow.lineage.hook import get_hook_lineage_collector
65
- else:
66
- # TODO: import from common.compat directly after common.compat providers with
67
- # asset_compat_lineage_collector released
68
- from airflow.providers.amazon.aws.utils.asset_compat_lineage_collector import get_hook_lineage_collector
69
-
70
66
  logger = logging.getLogger(__name__)
71
67
 
72
68
 
@@ -90,7 +86,7 @@ def provide_bucket_name(func: Callable) -> Callable:
90
86
  async def maybe_add_bucket_name(*args, **kwargs):
91
87
  bound_args = function_signature.bind(*args, **kwargs)
92
88
 
93
- if "bucket_name" not in bound_args.arguments:
89
+ if not bound_args.arguments.get("bucket_name"):
94
90
  self = args[0]
95
91
  if self.aws_conn_id:
96
92
  connection = await sync_to_async(self.get_connection)(self.aws_conn_id)
@@ -120,7 +116,7 @@ def provide_bucket_name(func: Callable) -> Callable:
120
116
  def wrapper(*args, **kwargs) -> Callable:
121
117
  bound_args = function_signature.bind(*args, **kwargs)
122
118
 
123
- if "bucket_name" not in bound_args.arguments:
119
+ if not bound_args.arguments.get("bucket_name"):
124
120
  self = args[0]
125
121
 
126
122
  if "bucket_name" in self.service_config:
@@ -148,9 +144,10 @@ def unify_bucket_name_and_key(func: Callable) -> Callable:
148
144
 
149
145
  if "bucket_name" not in bound_args.arguments:
150
146
  with suppress(S3HookUriParseFailure):
151
- bound_args.arguments["bucket_name"], bound_args.arguments[key_name] = S3Hook.parse_s3_url(
152
- bound_args.arguments[key_name]
153
- )
147
+ (
148
+ bound_args.arguments["bucket_name"],
149
+ bound_args.arguments[key_name],
150
+ ) = S3Hook.parse_s3_url(bound_args.arguments[key_name])
154
151
 
155
152
  return func(*bound_args.args, **bound_args.kwargs)
156
153
 
@@ -318,7 +315,8 @@ class S3Hook(AwsBaseHook):
318
315
  self.log.info('Bucket "%s" does not exist', bucket_name)
319
316
  elif return_code == 403:
320
317
  self.log.error(
321
- 'Access to bucket "%s" is forbidden or there was an error with the request', bucket_name
318
+ 'Access to bucket "%s" is forbidden or there was an error with the request',
319
+ bucket_name,
322
320
  )
323
321
  self.log.error(e)
324
322
  return False
@@ -359,7 +357,8 @@ class S3Hook(AwsBaseHook):
359
357
  self.get_conn().create_bucket(Bucket=bucket_name)
360
358
  else:
361
359
  self.get_conn().create_bucket(
362
- Bucket=bucket_name, CreateBucketConfiguration={"LocationConstraint": region_name}
360
+ Bucket=bucket_name,
361
+ CreateBucketConfiguration={"LocationConstraint": region_name},
363
362
  )
364
363
 
365
364
  @provide_bucket_name
@@ -410,7 +409,10 @@ class S3Hook(AwsBaseHook):
410
409
 
411
410
  paginator = self.get_conn().get_paginator("list_objects_v2")
412
411
  response = paginator.paginate(
413
- Bucket=bucket_name, Prefix=prefix, Delimiter=delimiter, PaginationConfig=config
412
+ Bucket=bucket_name,
413
+ Prefix=prefix,
414
+ Delimiter=delimiter,
415
+ PaginationConfig=config,
414
416
  )
415
417
 
416
418
  prefixes: list[str] = []
@@ -471,7 +473,10 @@ class S3Hook(AwsBaseHook):
471
473
 
472
474
  paginator = client.get_paginator("list_objects_v2")
473
475
  response = paginator.paginate(
474
- Bucket=bucket_name, Prefix=prefix, Delimiter=delimiter, PaginationConfig=config
476
+ Bucket=bucket_name,
477
+ Prefix=prefix,
478
+ Delimiter=delimiter,
479
+ PaginationConfig=config,
475
480
  )
476
481
 
477
482
  prefixes = []
@@ -569,7 +574,11 @@ class S3Hook(AwsBaseHook):
569
574
  return await self._check_key_async(client, bucket, wildcard_match, bucket_keys, use_regex)
570
575
 
571
576
  async def check_for_prefix_async(
572
- self, client: AioBaseClient, prefix: str, delimiter: str, bucket_name: str | None = None
577
+ self,
578
+ client: AioBaseClient,
579
+ prefix: str,
580
+ delimiter: str,
581
+ bucket_name: str | None = None,
573
582
  ) -> bool:
574
583
  """
575
584
  Check that a prefix exists in a bucket.
@@ -587,7 +596,11 @@ class S3Hook(AwsBaseHook):
587
596
  return prefix in plist
588
597
 
589
598
  async def _check_for_prefix_async(
590
- self, client: AioBaseClient, prefix: str, delimiter: str, bucket_name: str | None = None
599
+ self,
600
+ client: AioBaseClient,
601
+ prefix: str,
602
+ delimiter: str,
603
+ bucket_name: str | None = None,
591
604
  ) -> bool:
592
605
  return await self.check_for_prefix_async(
593
606
  client, prefix=prefix, delimiter=delimiter, bucket_name=bucket_name
@@ -643,7 +656,10 @@ class S3Hook(AwsBaseHook):
643
656
 
644
657
  paginator = client.get_paginator("list_objects_v2")
645
658
  response = paginator.paginate(
646
- Bucket=bucket_name, Prefix=prefix, Delimiter=delimiter, PaginationConfig=config
659
+ Bucket=bucket_name,
660
+ Prefix=prefix,
661
+ Delimiter=delimiter,
662
+ PaginationConfig=config,
647
663
  )
648
664
 
649
665
  keys = []
@@ -655,7 +671,10 @@ class S3Hook(AwsBaseHook):
655
671
  return keys
656
672
 
657
673
  def _list_key_object_filter(
658
- self, keys: list, from_datetime: datetime | None = None, to_datetime: datetime | None = None
674
+ self,
675
+ keys: list,
676
+ from_datetime: datetime | None = None,
677
+ to_datetime: datetime | None = None,
659
678
  ) -> list:
660
679
  def _is_in_period(input_date: datetime) -> bool:
661
680
  if from_datetime is not None and input_date <= from_datetime:
@@ -766,7 +785,10 @@ class S3Hook(AwsBaseHook):
766
785
  "message": success_message,
767
786
  }
768
787
 
769
- self.log.error("FAILURE: Inactivity Period passed, not enough objects found in %s", path)
788
+ self.log.error(
789
+ "FAILURE: Inactivity Period passed, not enough objects found in %s",
790
+ path,
791
+ )
770
792
  return {
771
793
  "status": "error",
772
794
  "message": f"FAILURE: Inactivity Period passed, not enough objects found in {path}",
@@ -1109,7 +1131,13 @@ class S3Hook(AwsBaseHook):
1109
1131
  extra_args["ACL"] = acl_policy
1110
1132
 
1111
1133
  client = self.get_conn()
1112
- client.upload_file(filename, bucket_name, key, ExtraArgs=extra_args, Config=self.transfer_config)
1134
+ client.upload_file(
1135
+ filename,
1136
+ bucket_name,
1137
+ key,
1138
+ ExtraArgs=extra_args,
1139
+ Config=self.transfer_config,
1140
+ )
1113
1141
  get_hook_lineage_collector().add_input_asset(
1114
1142
  context=self, scheme="file", asset_kwargs={"path": filename}
1115
1143
  )
@@ -1308,18 +1336,32 @@ class S3Hook(AwsBaseHook):
1308
1336
  )
1309
1337
 
1310
1338
  source_bucket_name, source_bucket_key = self.get_s3_bucket_key(
1311
- source_bucket_name, source_bucket_key, "source_bucket_name", "source_bucket_key"
1339
+ source_bucket_name,
1340
+ source_bucket_key,
1341
+ "source_bucket_name",
1342
+ "source_bucket_key",
1312
1343
  )
1313
1344
 
1314
- copy_source = {"Bucket": source_bucket_name, "Key": source_bucket_key, "VersionId": source_version_id}
1345
+ copy_source = {
1346
+ "Bucket": source_bucket_name,
1347
+ "Key": source_bucket_key,
1348
+ "VersionId": source_version_id,
1349
+ }
1315
1350
  response = self.get_conn().copy_object(
1316
- Bucket=dest_bucket_name, Key=dest_bucket_key, CopySource=copy_source, **kwargs
1351
+ Bucket=dest_bucket_name,
1352
+ Key=dest_bucket_key,
1353
+ CopySource=copy_source,
1354
+ **kwargs,
1317
1355
  )
1318
1356
  get_hook_lineage_collector().add_input_asset(
1319
- context=self, scheme="s3", asset_kwargs={"bucket": source_bucket_name, "key": source_bucket_key}
1357
+ context=self,
1358
+ scheme="s3",
1359
+ asset_kwargs={"bucket": source_bucket_name, "key": source_bucket_key},
1320
1360
  )
1321
1361
  get_hook_lineage_collector().add_output_asset(
1322
- context=self, scheme="s3", asset_kwargs={"bucket": dest_bucket_name, "key": dest_bucket_key}
1362
+ context=self,
1363
+ scheme="s3",
1364
+ asset_kwargs={"bucket": dest_bucket_name, "key": dest_bucket_key},
1323
1365
  )
1324
1366
  return response
1325
1367
 
@@ -1435,7 +1477,10 @@ class S3Hook(AwsBaseHook):
1435
1477
  file_path = Path(local_dir, subdir, filename_in_s3)
1436
1478
 
1437
1479
  if file_path.is_file():
1438
- self.log.error("file '%s' already exists. Failing the task and not overwriting it", file_path)
1480
+ self.log.error(
1481
+ "file '%s' already exists. Failing the task and not overwriting it",
1482
+ file_path,
1483
+ )
1439
1484
  raise FileExistsError
1440
1485
 
1441
1486
  file_path.parent.mkdir(exist_ok=True, parents=True)
@@ -1484,7 +1529,10 @@ class S3Hook(AwsBaseHook):
1484
1529
  s3_client = self.get_conn()
1485
1530
  try:
1486
1531
  return s3_client.generate_presigned_url(
1487
- ClientMethod=client_method, Params=params, ExpiresIn=expires_in, HttpMethod=http_method
1532
+ ClientMethod=client_method,
1533
+ Params=params,
1534
+ ExpiresIn=expires_in,
1535
+ HttpMethod=http_method,
1488
1536
  )
1489
1537
 
1490
1538
  except ClientError as e:
@@ -153,7 +153,9 @@ class SageMakerHook(AwsBaseHook):
153
153
  non_terminal_states = {"InProgress", "Stopping"}
154
154
  endpoint_non_terminal_states = {"Creating", "Updating", "SystemUpdating", "RollingBack", "Deleting"}
155
155
  pipeline_non_terminal_states = {"Executing", "Stopping"}
156
+ processing_job_non_terminal_states = {"InProgress", "Stopping"}
156
157
  failed_states = {"Failed"}
158
+ processing_job_failed_states = {*failed_states, "Stopped"}
157
159
  training_failed_states = {*failed_states, "Stopped"}
158
160
 
159
161
  def __init__(self, *args, **kwargs):
@@ -21,11 +21,11 @@ from datetime import datetime, timedelta
21
21
  from typing import TYPE_CHECKING, cast
22
22
 
23
23
  from airflow.exceptions import AirflowException
24
- from airflow.operators.python import ShortCircuitOperator
25
24
  from airflow.providers.amazon.aws.hooks.appflow import AppflowHook
26
25
  from airflow.providers.amazon.aws.operators.base_aws import AwsBaseOperator
27
26
  from airflow.providers.amazon.aws.utils import datetime_to_epoch_ms
28
27
  from airflow.providers.amazon.aws.utils.mixins import AwsBaseHookMixin, AwsHookParams, aws_template_fields
28
+ from airflow.providers.common.compat.standard.operators import ShortCircuitOperator
29
29
 
30
30
  if TYPE_CHECKING:
31
31
  from mypy_boto3_appflow.type_defs import (
@@ -311,7 +311,9 @@ class AthenaOperator(AwsBaseOperator[AthenaHook]):
311
311
  }
312
312
  fields = [
313
313
  SchemaDatasetFacetFields(
314
- name=column["Name"], type=column["Type"], description=column["Comment"]
314
+ name=column["Name"],
315
+ type=column["Type"],
316
+ description=column.get("Comment"),
315
317
  )
316
318
  for column in table_metadata["TableMetadata"]["Columns"]
317
319
  ]