apache-airflow-providers-amazon 9.0.0rc1__tar.gz → 9.1.0rc1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (255) hide show
  1. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/PKG-INFO +8 -10
  2. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/README.rst +4 -5
  3. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/__init__.py +1 -1
  4. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/assets/s3.py +7 -7
  5. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/appflow.py +4 -4
  6. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/redshift_sql.py +1 -1
  7. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/s3.py +77 -29
  8. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/sagemaker.py +2 -0
  9. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/operators/redshift_data.py +43 -20
  10. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/sensors/sagemaker.py +32 -0
  11. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/transfers/redshift_to_s3.py +106 -7
  12. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/transfers/s3_to_redshift.py +1 -1
  13. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/triggers/ecs.py +6 -6
  14. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/get_provider_info.py +3 -3
  15. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/pyproject.toml +4 -5
  16. apache_airflow_providers_amazon-9.0.0rc1/airflow/providers/amazon/aws/utils/asset_compat_lineage_collector.py +0 -106
  17. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/LICENSE +0 -0
  18. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/__init__.py +0 -0
  19. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/assets/__init__.py +0 -0
  20. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/auth_manager/__init__.py +0 -0
  21. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/auth_manager/avp/__init__.py +0 -0
  22. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/auth_manager/avp/entities.py +0 -0
  23. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/auth_manager/avp/facade.py +0 -0
  24. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/auth_manager/avp/schema.json +0 -0
  25. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/auth_manager/aws_auth_manager.py +0 -0
  26. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/auth_manager/cli/__init__.py +0 -0
  27. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/auth_manager/cli/avp_commands.py +0 -0
  28. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/auth_manager/cli/definition.py +0 -0
  29. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/auth_manager/constants.py +0 -0
  30. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/auth_manager/security_manager/__init__.py +0 -0
  31. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/auth_manager/security_manager/aws_security_manager_override.py +0 -0
  32. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/auth_manager/user.py +0 -0
  33. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/auth_manager/views/__init__.py +0 -0
  34. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/auth_manager/views/auth.py +0 -0
  35. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/exceptions.py +0 -0
  36. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/executors/Dockerfile +0 -0
  37. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/executors/__init__.py +0 -0
  38. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/executors/batch/__init__.py +0 -0
  39. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/executors/batch/batch_executor.py +0 -0
  40. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/executors/batch/batch_executor_config.py +0 -0
  41. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/executors/batch/boto_schema.py +0 -0
  42. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/executors/batch/utils.py +0 -0
  43. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/executors/ecs/__init__.py +0 -0
  44. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/executors/ecs/boto_schema.py +0 -0
  45. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/executors/ecs/ecs_executor.py +0 -0
  46. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/executors/ecs/ecs_executor_config.py +0 -0
  47. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/executors/ecs/utils.py +0 -0
  48. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/executors/utils/__init__.py +0 -0
  49. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/executors/utils/base_config_keys.py +0 -0
  50. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/executors/utils/exponential_backoff_retry.py +0 -0
  51. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/fs/__init__.py +0 -0
  52. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/fs/s3.py +0 -0
  53. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/__init__.py +0 -0
  54. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/athena.py +0 -0
  55. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/athena_sql.py +0 -0
  56. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/base_aws.py +0 -0
  57. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/batch_client.py +0 -0
  58. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/batch_waiters.json +0 -0
  59. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/batch_waiters.py +0 -0
  60. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/bedrock.py +0 -0
  61. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/chime.py +0 -0
  62. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/cloud_formation.py +0 -0
  63. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/comprehend.py +0 -0
  64. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/datasync.py +0 -0
  65. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/dms.py +0 -0
  66. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/dynamodb.py +0 -0
  67. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/ec2.py +0 -0
  68. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/ecr.py +0 -0
  69. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/ecs.py +0 -0
  70. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/eks.py +0 -0
  71. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/elasticache_replication_group.py +0 -0
  72. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/emr.py +0 -0
  73. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/eventbridge.py +0 -0
  74. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/glacier.py +0 -0
  75. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/glue.py +0 -0
  76. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/glue_catalog.py +0 -0
  77. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/glue_crawler.py +0 -0
  78. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/glue_databrew.py +0 -0
  79. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/kinesis.py +0 -0
  80. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/kinesis_analytics.py +0 -0
  81. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/lambda_function.py +0 -0
  82. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/logs.py +0 -0
  83. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/neptune.py +0 -0
  84. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/opensearch_serverless.py +0 -0
  85. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/quicksight.py +0 -0
  86. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/rds.py +0 -0
  87. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/redshift_cluster.py +0 -0
  88. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/redshift_data.py +0 -0
  89. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/secrets_manager.py +0 -0
  90. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/ses.py +0 -0
  91. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/sns.py +0 -0
  92. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/sqs.py +0 -0
  93. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/ssm.py +0 -0
  94. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/step_function.py +0 -0
  95. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/sts.py +0 -0
  96. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/verified_permissions.py +0 -0
  97. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/links/__init__.py +0 -0
  98. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/links/athena.py +0 -0
  99. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/links/base_aws.py +0 -0
  100. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/links/batch.py +0 -0
  101. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/links/emr.py +0 -0
  102. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/links/glue.py +0 -0
  103. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/links/logs.py +0 -0
  104. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/links/step_function.py +0 -0
  105. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/log/__init__.py +0 -0
  106. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/log/cloudwatch_task_handler.py +0 -0
  107. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/log/s3_task_handler.py +0 -0
  108. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/notifications/__init__.py +0 -0
  109. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/notifications/chime.py +0 -0
  110. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/notifications/sns.py +0 -0
  111. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/notifications/sqs.py +0 -0
  112. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/operators/__init__.py +0 -0
  113. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/operators/appflow.py +0 -0
  114. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/operators/athena.py +0 -0
  115. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/operators/base_aws.py +0 -0
  116. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/operators/batch.py +0 -0
  117. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/operators/bedrock.py +0 -0
  118. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/operators/cloud_formation.py +0 -0
  119. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/operators/comprehend.py +0 -0
  120. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/operators/datasync.py +0 -0
  121. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/operators/dms.py +0 -0
  122. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/operators/ec2.py +0 -0
  123. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/operators/ecs.py +0 -0
  124. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/operators/eks.py +0 -0
  125. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/operators/emr.py +0 -0
  126. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/operators/eventbridge.py +0 -0
  127. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/operators/glacier.py +0 -0
  128. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/operators/glue.py +0 -0
  129. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/operators/glue_crawler.py +0 -0
  130. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/operators/glue_databrew.py +0 -0
  131. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/operators/kinesis_analytics.py +0 -0
  132. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/operators/lambda_function.py +0 -0
  133. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/operators/neptune.py +0 -0
  134. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/operators/quicksight.py +0 -0
  135. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/operators/rds.py +0 -0
  136. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/operators/redshift_cluster.py +0 -0
  137. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/operators/s3.py +0 -0
  138. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/operators/sagemaker.py +0 -0
  139. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/operators/sns.py +0 -0
  140. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/operators/sqs.py +0 -0
  141. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/operators/step_function.py +0 -0
  142. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/secrets/__init__.py +0 -0
  143. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/secrets/secrets_manager.py +0 -0
  144. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/secrets/systems_manager.py +0 -0
  145. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/sensors/__init__.py +0 -0
  146. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/sensors/athena.py +0 -0
  147. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/sensors/base_aws.py +0 -0
  148. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/sensors/batch.py +0 -0
  149. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/sensors/bedrock.py +0 -0
  150. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/sensors/cloud_formation.py +0 -0
  151. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/sensors/comprehend.py +0 -0
  152. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/sensors/dms.py +0 -0
  153. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/sensors/dynamodb.py +0 -0
  154. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/sensors/ec2.py +0 -0
  155. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/sensors/ecs.py +0 -0
  156. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/sensors/eks.py +0 -0
  157. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/sensors/emr.py +0 -0
  158. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/sensors/glacier.py +0 -0
  159. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/sensors/glue.py +0 -0
  160. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/sensors/glue_catalog_partition.py +0 -0
  161. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/sensors/glue_crawler.py +0 -0
  162. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/sensors/kinesis_analytics.py +0 -0
  163. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/sensors/lambda_function.py +0 -0
  164. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/sensors/opensearch_serverless.py +0 -0
  165. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/sensors/quicksight.py +0 -0
  166. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/sensors/rds.py +0 -0
  167. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/sensors/redshift_cluster.py +0 -0
  168. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/sensors/s3.py +0 -0
  169. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/sensors/sqs.py +0 -0
  170. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/sensors/step_function.py +0 -0
  171. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/transfers/__init__.py +0 -0
  172. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/transfers/azure_blob_to_s3.py +0 -0
  173. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/transfers/base.py +0 -0
  174. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/transfers/dynamodb_to_s3.py +0 -0
  175. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/transfers/exasol_to_s3.py +0 -0
  176. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/transfers/ftp_to_s3.py +0 -0
  177. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/transfers/gcs_to_s3.py +0 -0
  178. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/transfers/glacier_to_gcs.py +0 -0
  179. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/transfers/google_api_to_s3.py +0 -0
  180. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/transfers/hive_to_dynamodb.py +0 -0
  181. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/transfers/http_to_s3.py +0 -0
  182. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/transfers/imap_attachment_to_s3.py +0 -0
  183. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/transfers/local_to_s3.py +0 -0
  184. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/transfers/mongo_to_s3.py +0 -0
  185. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/transfers/s3_to_dynamodb.py +0 -0
  186. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/transfers/s3_to_ftp.py +0 -0
  187. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/transfers/s3_to_sftp.py +0 -0
  188. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/transfers/s3_to_sql.py +0 -0
  189. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/transfers/salesforce_to_s3.py +0 -0
  190. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/transfers/sftp_to_s3.py +0 -0
  191. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/transfers/sql_to_s3.py +0 -0
  192. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/triggers/README.md +0 -0
  193. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/triggers/__init__.py +0 -0
  194. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/triggers/athena.py +0 -0
  195. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/triggers/base.py +0 -0
  196. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/triggers/batch.py +0 -0
  197. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/triggers/bedrock.py +0 -0
  198. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/triggers/comprehend.py +0 -0
  199. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/triggers/ec2.py +0 -0
  200. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/triggers/eks.py +0 -0
  201. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/triggers/emr.py +0 -0
  202. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/triggers/glue.py +0 -0
  203. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/triggers/glue_crawler.py +0 -0
  204. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/triggers/glue_databrew.py +0 -0
  205. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/triggers/kinesis_analytics.py +0 -0
  206. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/triggers/lambda_function.py +0 -0
  207. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/triggers/neptune.py +0 -0
  208. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/triggers/opensearch_serverless.py +0 -0
  209. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/triggers/rds.py +0 -0
  210. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/triggers/redshift_cluster.py +0 -0
  211. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/triggers/redshift_data.py +0 -0
  212. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/triggers/s3.py +0 -0
  213. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/triggers/sagemaker.py +0 -0
  214. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/triggers/sqs.py +0 -0
  215. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/triggers/step_function.py +0 -0
  216. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/utils/__init__.py +0 -0
  217. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/utils/connection_wrapper.py +0 -0
  218. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/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.0rc1}/airflow/providers/amazon/aws/utils/emailer.py +0 -0
  220. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/utils/identifiers.py +0 -0
  221. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/utils/mixins.py +0 -0
  222. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/utils/openlineage.py +0 -0
  223. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/utils/rds.py +0 -0
  224. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/utils/redshift.py +0 -0
  225. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/utils/sagemaker.py +0 -0
  226. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/utils/sqs.py +0 -0
  227. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/utils/suppress.py +0 -0
  228. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/utils/tags.py +0 -0
  229. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/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.0rc1}/airflow/providers/amazon/aws/utils/waiter.py +0 -0
  231. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/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.0rc1}/airflow/providers/amazon/aws/waiters/README.md +0 -0
  233. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/waiters/__init__.py +0 -0
  234. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/waiters/appflow.json +0 -0
  235. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/waiters/athena.json +0 -0
  236. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/waiters/base_waiter.py +0 -0
  237. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/waiters/batch.json +0 -0
  238. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/waiters/bedrock-agent.json +0 -0
  239. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/waiters/bedrock.json +0 -0
  240. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/waiters/comprehend.json +0 -0
  241. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/waiters/databrew.json +0 -0
  242. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/waiters/dynamodb.json +0 -0
  243. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/waiters/ecs.json +0 -0
  244. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/waiters/eks.json +0 -0
  245. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/waiters/emr-containers.json +0 -0
  246. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/waiters/emr-serverless.json +0 -0
  247. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/waiters/emr.json +0 -0
  248. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/waiters/glue.json +0 -0
  249. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/waiters/kinesisanalyticsv2.json +0 -0
  250. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/waiters/neptune.json +0 -0
  251. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/waiters/opensearchserverless.json +0 -0
  252. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/waiters/rds.json +0 -0
  253. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/waiters/redshift.json +0 -0
  254. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/waiters/sagemaker.json +0 -0
  255. {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/waiters/stepfunctions.json +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: apache-airflow-providers-amazon
3
- Version: 9.0.0rc1
3
+ Version: 9.1.0rc1
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,7 +21,7 @@ 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
24
+ Requires-Dist: apache-airflow-providers-common-compat>=1.2.1rc0
25
25
  Requires-Dist: apache-airflow-providers-common-sql>=1.3.1rc0
26
26
  Requires-Dist: apache-airflow-providers-http
27
27
  Requires-Dist: apache-airflow>=2.8.0rc0
@@ -33,7 +33,6 @@ 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
38
  Requires-Dist: apache-airflow-providers-apache-hive ; extra == "apache.hive"
@@ -55,8 +54,8 @@ 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
@@ -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.rc1``
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,7 +154,7 @@ 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``
157
+ ``apache-airflow-providers-common-compat`` ``>=1.2.1``
159
158
  ``apache-airflow-providers-common-sql`` ``>=1.3.1``
160
159
  ``apache-airflow-providers-http``
161
160
  ``boto3`` ``>=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.rc1``
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,7 +73,7 @@ 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``
76
+ ``apache-airflow-providers-common-compat`` ``>=1.2.1``
77
77
  ``apache-airflow-providers-common-sql`` ``>=1.3.1``
78
78
  ``apache-airflow-providers-http``
79
79
  ``boto3`` ``>=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 "/")
@@ -117,9 +117,9 @@ class AppflowHook(AwsGenericHook["AppflowClient"]):
117
117
 
118
118
  self.conn.update_flow(
119
119
  flowName=response["flowName"],
120
- destinationFlowConfigList=response["destinationFlowConfigList"],
121
- sourceFlowConfig=response["sourceFlowConfig"],
122
- triggerConfig=response["triggerConfig"],
120
+ destinationFlowConfigList=response["destinationFlowConfigList"], # type: ignore[arg-type]
121
+ sourceFlowConfig=response["sourceFlowConfig"], # type: ignore[arg-type]
122
+ triggerConfig=response["triggerConfig"], # type: ignore[arg-type]
123
123
  description=response.get("description", "Flow description."),
124
- tasks=tasks,
124
+ tasks=tasks, # type: ignore[arg-type]
125
125
  )
@@ -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
 
@@ -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):
@@ -28,7 +28,10 @@ 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
29
 
30
30
  if TYPE_CHECKING:
31
- from mypy_boto3_redshift_data.type_defs import GetStatementResultResponseTypeDef
31
+ from mypy_boto3_redshift_data.type_defs import (
32
+ DescribeStatementResponseTypeDef,
33
+ GetStatementResultResponseTypeDef,
34
+ )
32
35
 
33
36
  from airflow.utils.context import Context
34
37
 
@@ -37,7 +40,7 @@ class RedshiftDataOperator(AwsBaseOperator[RedshiftDataHook]):
37
40
  """
38
41
  Executes SQL Statements against an Amazon Redshift cluster using Redshift Data.
39
42
 
40
- .. seealso::
43
+ ... see also::
41
44
  For more information on how to use this operator, take a look at the guide:
42
45
  :ref:`howto/operator:RedshiftDataOperator`
43
46
 
@@ -84,7 +87,6 @@ class RedshiftDataOperator(AwsBaseOperator[RedshiftDataHook]):
84
87
  )
85
88
  template_ext = (".sql",)
86
89
  template_fields_renderers = {"sql": "sql"}
87
- statement_id: str | None
88
90
 
89
91
  def __init__(
90
92
  self,
@@ -124,12 +126,11 @@ class RedshiftDataOperator(AwsBaseOperator[RedshiftDataHook]):
124
126
  poll_interval,
125
127
  )
126
128
  self.return_sql_result = return_sql_result
127
- self.statement_id: str | None = None
128
129
  self.deferrable = deferrable
129
130
  self.session_id = session_id
130
131
  self.session_keep_alive_seconds = session_keep_alive_seconds
131
132
 
132
- def execute(self, context: Context) -> GetStatementResultResponseTypeDef | str:
133
+ def execute(self, context: Context) -> list[GetStatementResultResponseTypeDef] | list[str]:
133
134
  """Execute a statement against Amazon Redshift."""
134
135
  self.log.info("Executing statement: %s", self.sql)
135
136
 
@@ -154,13 +155,14 @@ class RedshiftDataOperator(AwsBaseOperator[RedshiftDataHook]):
154
155
  session_keep_alive_seconds=self.session_keep_alive_seconds,
155
156
  )
156
157
 
157
- self.statement_id = query_execution_output.statement_id
158
+ # Pull the statement ID, session ID
159
+ self.statement_id: str = query_execution_output.statement_id
158
160
 
159
161
  if query_execution_output.session_id:
160
162
  self.xcom_push(context, key="session_id", value=query_execution_output.session_id)
161
163
 
162
164
  if self.deferrable and self.wait_for_completion:
163
- is_finished = self.hook.check_query_is_finished(self.statement_id)
165
+ is_finished: bool = self.hook.check_query_is_finished(self.statement_id)
164
166
  if not is_finished:
165
167
  self.defer(
166
168
  timeout=self.execution_timeout,
@@ -176,16 +178,13 @@ class RedshiftDataOperator(AwsBaseOperator[RedshiftDataHook]):
176
178
  method_name="execute_complete",
177
179
  )
178
180
 
179
- if self.return_sql_result:
180
- result = self.hook.conn.get_statement_result(Id=self.statement_id)
181
- self.log.debug("Statement result: %s", result)
182
- return result
183
- else:
184
- return self.statement_id
181
+ # Use the get_sql_results method to return the results of the SQL query, or the statement_ids,
182
+ # depending on the value of self.return_sql_result
183
+ return self.get_sql_results(statement_id=self.statement_id, return_sql_result=self.return_sql_result)
185
184
 
186
185
  def execute_complete(
187
186
  self, context: Context, event: dict[str, Any] | None = None
188
- ) -> GetStatementResultResponseTypeDef | str:
187
+ ) -> list[GetStatementResultResponseTypeDef] | list[str]:
189
188
  event = validate_execute_complete_event(event)
190
189
 
191
190
  if event["status"] == "error":
@@ -197,16 +196,40 @@ class RedshiftDataOperator(AwsBaseOperator[RedshiftDataHook]):
197
196
  raise AirflowException("statement_id should not be empty.")
198
197
 
199
198
  self.log.info("%s completed successfully.", self.task_id)
200
- if self.return_sql_result:
201
- result = self.hook.conn.get_statement_result(Id=statement_id)
202
- self.log.debug("Statement result: %s", result)
203
- return result
204
199
 
205
- return statement_id
200
+ # Use the get_sql_results method to return the results of the SQL query, or the statement_ids,
201
+ # depending on the value of self.return_sql_result
202
+ return self.get_sql_results(statement_id=statement_id, return_sql_result=self.return_sql_result)
203
+
204
+ def get_sql_results(
205
+ self, statement_id: str, return_sql_result: bool
206
+ ) -> list[GetStatementResultResponseTypeDef] | list[str]:
207
+ """
208
+ Retrieve either the result of the SQL query, or the statement ID(s).
209
+
210
+ :param statement_id: Statement ID of the running queries
211
+ :param return_sql_result: Boolean, true if results should be returned
212
+ """
213
+ # ISSUE-40427: Pull the statement, and check to see if there are sub-statements. If that is the
214
+ # case, pull each of the sub-statement ID's, and grab the results. Otherwise, just use statement_id
215
+ statement: DescribeStatementResponseTypeDef = self.hook.conn.describe_statement(Id=statement_id)
216
+ statement_ids: list[str] = (
217
+ [sub_statement["Id"] for sub_statement in statement["SubStatements"]]
218
+ if len(statement.get("SubStatements", [])) > 0
219
+ else [statement_id]
220
+ )
221
+
222
+ # If returning the SQL result, use get_statement_result to return the records for each query
223
+ if return_sql_result:
224
+ results: list = [self.hook.conn.get_statement_result(Id=sid) for sid in statement_ids]
225
+ self.log.debug("Statement result(s): %s", results)
226
+ return results
227
+ else:
228
+ return statement_ids
206
229
 
207
230
  def on_kill(self) -> None:
208
231
  """Cancel the submitted redshift query."""
209
- if self.statement_id:
232
+ if hasattr(self, "statement_id"):
210
233
  self.log.info("Received a kill signal.")
211
234
  self.log.info("Stopping Query with statementId - %s", self.statement_id)
212
235
 
@@ -330,3 +330,35 @@ class SageMakerAutoMLSensor(SageMakerBaseSensor):
330
330
 
331
331
  def state_from_response(self, response: dict) -> str:
332
332
  return response["AutoMLJobStatus"]
333
+
334
+
335
+ class SageMakerProcessingSensor(SageMakerBaseSensor):
336
+ """
337
+ Poll the processing job until it reaches a terminal state; raise AirflowException with the failure reason.
338
+
339
+ .. seealso::
340
+ For more information on how to use this sensor, take a look at the guide:
341
+ :ref:`howto/sensor:SageMakerProcessingSensor`
342
+
343
+ :param job_name: Name of the processing job to watch.
344
+ """
345
+
346
+ template_fields: Sequence[str] = ("job_name",)
347
+ template_ext: Sequence[str] = ()
348
+
349
+ def __init__(self, *, job_name: str, **kwargs):
350
+ super().__init__(**kwargs)
351
+ self.job_name = job_name
352
+
353
+ def non_terminal_states(self) -> set[str]:
354
+ return SageMakerHook.processing_job_non_terminal_states
355
+
356
+ def failed_states(self) -> set[str]:
357
+ return SageMakerHook.processing_job_failed_states
358
+
359
+ def get_sagemaker_response(self) -> dict:
360
+ self.log.info("Poking Sagemaker ProcessingJob %s", self.job_name)
361
+ return self.hook.describe_processing_job(self.job_name)
362
+
363
+ def state_from_response(self, response: dict) -> str:
364
+ return response["ProcessingJobStatus"]