apache-airflow-providers-amazon 8.23.0rc1__tar.gz → 8.24.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 (247) hide show
  1. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/PKG-INFO +6 -6
  2. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/README.rst +3 -3
  3. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/__init__.py +1 -1
  4. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/hooks/batch_client.py +3 -0
  5. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/hooks/dynamodb.py +34 -1
  6. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/operators/batch.py +8 -0
  7. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/operators/ecs.py +5 -5
  8. apache_airflow_providers_amazon-8.24.0rc1/airflow/providers/amazon/aws/transfers/s3_to_dynamodb.py +257 -0
  9. apache_airflow_providers_amazon-8.24.0rc1/airflow/providers/amazon/aws/waiters/dynamodb.json +67 -0
  10. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/get_provider_info.py +8 -1
  11. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/pyproject.toml +3 -3
  12. apache_airflow_providers_amazon-8.23.0rc1/airflow/providers/amazon/aws/waiters/dynamodb.json +0 -30
  13. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/LICENSE +0 -0
  14. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/__init__.py +0 -0
  15. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/auth_manager/__init__.py +0 -0
  16. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/auth_manager/avp/__init__.py +0 -0
  17. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/auth_manager/avp/entities.py +0 -0
  18. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/auth_manager/avp/facade.py +0 -0
  19. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/auth_manager/avp/schema.json +0 -0
  20. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/auth_manager/aws_auth_manager.py +0 -0
  21. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/auth_manager/cli/__init__.py +0 -0
  22. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/auth_manager/cli/avp_commands.py +0 -0
  23. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/auth_manager/cli/definition.py +0 -0
  24. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/auth_manager/cli/idc_commands.py +0 -0
  25. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/auth_manager/constants.py +0 -0
  26. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/auth_manager/security_manager/__init__.py +0 -0
  27. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/auth_manager/security_manager/aws_security_manager_override.py +0 -0
  28. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/auth_manager/user.py +0 -0
  29. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/auth_manager/views/__init__.py +0 -0
  30. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/auth_manager/views/auth.py +0 -0
  31. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/exceptions.py +0 -0
  32. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/executors/Dockerfile +0 -0
  33. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/executors/__init__.py +0 -0
  34. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/executors/batch/__init__.py +0 -0
  35. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/executors/batch/batch_executor.py +0 -0
  36. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/executors/batch/batch_executor_config.py +0 -0
  37. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/executors/batch/boto_schema.py +0 -0
  38. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/executors/batch/utils.py +0 -0
  39. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/executors/ecs/__init__.py +0 -0
  40. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/executors/ecs/boto_schema.py +0 -0
  41. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/executors/ecs/ecs_executor.py +0 -0
  42. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/executors/ecs/ecs_executor_config.py +0 -0
  43. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/executors/ecs/utils.py +0 -0
  44. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/executors/utils/__init__.py +0 -0
  45. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/executors/utils/base_config_keys.py +0 -0
  46. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/executors/utils/exponential_backoff_retry.py +0 -0
  47. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/fs/__init__.py +0 -0
  48. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/fs/s3.py +0 -0
  49. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/hooks/__init__.py +0 -0
  50. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/hooks/appflow.py +0 -0
  51. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/hooks/athena.py +0 -0
  52. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/hooks/athena_sql.py +0 -0
  53. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/hooks/base_aws.py +0 -0
  54. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/hooks/batch_waiters.json +0 -0
  55. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/hooks/batch_waiters.py +0 -0
  56. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/hooks/bedrock.py +0 -0
  57. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/hooks/chime.py +0 -0
  58. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/hooks/cloud_formation.py +0 -0
  59. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/hooks/comprehend.py +0 -0
  60. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/hooks/datasync.py +0 -0
  61. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/hooks/dms.py +0 -0
  62. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/hooks/ec2.py +0 -0
  63. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/hooks/ecr.py +0 -0
  64. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/hooks/ecs.py +0 -0
  65. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/hooks/eks.py +0 -0
  66. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/hooks/elasticache_replication_group.py +0 -0
  67. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/hooks/emr.py +0 -0
  68. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/hooks/eventbridge.py +0 -0
  69. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/hooks/glacier.py +0 -0
  70. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/hooks/glue.py +0 -0
  71. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/hooks/glue_catalog.py +0 -0
  72. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/hooks/glue_crawler.py +0 -0
  73. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/hooks/glue_databrew.py +0 -0
  74. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/hooks/kinesis.py +0 -0
  75. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/hooks/lambda_function.py +0 -0
  76. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/hooks/logs.py +0 -0
  77. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/hooks/neptune.py +0 -0
  78. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/hooks/opensearch_serverless.py +0 -0
  79. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/hooks/quicksight.py +0 -0
  80. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/hooks/rds.py +0 -0
  81. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/hooks/redshift_cluster.py +0 -0
  82. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/hooks/redshift_data.py +0 -0
  83. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/hooks/redshift_sql.py +0 -0
  84. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/hooks/s3.py +0 -0
  85. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/hooks/sagemaker.py +0 -0
  86. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/hooks/secrets_manager.py +0 -0
  87. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/hooks/ses.py +0 -0
  88. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/hooks/sns.py +0 -0
  89. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/hooks/sqs.py +0 -0
  90. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/hooks/ssm.py +0 -0
  91. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/hooks/step_function.py +0 -0
  92. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/hooks/sts.py +0 -0
  93. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/hooks/verified_permissions.py +0 -0
  94. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/links/__init__.py +0 -0
  95. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/links/athena.py +0 -0
  96. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/links/base_aws.py +0 -0
  97. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/links/batch.py +0 -0
  98. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/links/emr.py +0 -0
  99. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/links/glue.py +0 -0
  100. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/links/logs.py +0 -0
  101. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/links/step_function.py +0 -0
  102. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/log/__init__.py +0 -0
  103. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/log/cloudwatch_task_handler.py +0 -0
  104. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/log/s3_task_handler.py +0 -0
  105. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/notifications/__init__.py +0 -0
  106. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/notifications/chime.py +0 -0
  107. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/notifications/sns.py +0 -0
  108. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/notifications/sqs.py +0 -0
  109. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/operators/__init__.py +0 -0
  110. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/operators/appflow.py +0 -0
  111. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/operators/athena.py +0 -0
  112. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/operators/base_aws.py +0 -0
  113. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/operators/bedrock.py +0 -0
  114. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/operators/cloud_formation.py +0 -0
  115. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/operators/comprehend.py +0 -0
  116. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/operators/datasync.py +0 -0
  117. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/operators/dms.py +0 -0
  118. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/operators/ec2.py +0 -0
  119. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/operators/eks.py +0 -0
  120. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/operators/emr.py +0 -0
  121. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/operators/eventbridge.py +0 -0
  122. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/operators/glacier.py +0 -0
  123. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/operators/glue.py +0 -0
  124. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/operators/glue_crawler.py +0 -0
  125. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/operators/glue_databrew.py +0 -0
  126. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/operators/lambda_function.py +0 -0
  127. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/operators/neptune.py +0 -0
  128. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/operators/quicksight.py +0 -0
  129. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/operators/rds.py +0 -0
  130. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/operators/redshift_cluster.py +0 -0
  131. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/operators/redshift_data.py +0 -0
  132. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/operators/s3.py +0 -0
  133. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/operators/sagemaker.py +0 -0
  134. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/operators/sns.py +0 -0
  135. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/operators/sqs.py +0 -0
  136. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/operators/step_function.py +0 -0
  137. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/secrets/__init__.py +0 -0
  138. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/secrets/secrets_manager.py +0 -0
  139. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/secrets/systems_manager.py +0 -0
  140. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/sensors/__init__.py +0 -0
  141. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/sensors/athena.py +0 -0
  142. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/sensors/base_aws.py +0 -0
  143. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/sensors/batch.py +0 -0
  144. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/sensors/bedrock.py +0 -0
  145. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/sensors/cloud_formation.py +0 -0
  146. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/sensors/comprehend.py +0 -0
  147. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/sensors/dms.py +0 -0
  148. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/sensors/dynamodb.py +0 -0
  149. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/sensors/ec2.py +0 -0
  150. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/sensors/ecs.py +0 -0
  151. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/sensors/eks.py +0 -0
  152. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/sensors/emr.py +0 -0
  153. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/sensors/glacier.py +0 -0
  154. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/sensors/glue.py +0 -0
  155. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/sensors/glue_catalog_partition.py +0 -0
  156. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/sensors/glue_crawler.py +0 -0
  157. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/sensors/lambda_function.py +0 -0
  158. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/sensors/opensearch_serverless.py +0 -0
  159. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/sensors/quicksight.py +0 -0
  160. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/sensors/rds.py +0 -0
  161. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/sensors/redshift_cluster.py +0 -0
  162. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/sensors/s3.py +0 -0
  163. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/sensors/sagemaker.py +0 -0
  164. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/sensors/sqs.py +0 -0
  165. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/sensors/step_function.py +0 -0
  166. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/transfers/__init__.py +0 -0
  167. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/transfers/azure_blob_to_s3.py +0 -0
  168. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/transfers/base.py +0 -0
  169. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/transfers/dynamodb_to_s3.py +0 -0
  170. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/transfers/exasol_to_s3.py +0 -0
  171. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/transfers/ftp_to_s3.py +0 -0
  172. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/transfers/gcs_to_s3.py +0 -0
  173. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/transfers/glacier_to_gcs.py +0 -0
  174. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/transfers/google_api_to_s3.py +0 -0
  175. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/transfers/hive_to_dynamodb.py +0 -0
  176. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/transfers/http_to_s3.py +0 -0
  177. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/transfers/imap_attachment_to_s3.py +0 -0
  178. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/transfers/local_to_s3.py +0 -0
  179. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/transfers/mongo_to_s3.py +0 -0
  180. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/transfers/redshift_to_s3.py +0 -0
  181. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/transfers/s3_to_ftp.py +0 -0
  182. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/transfers/s3_to_redshift.py +0 -0
  183. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/transfers/s3_to_sftp.py +0 -0
  184. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/transfers/s3_to_sql.py +0 -0
  185. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/transfers/salesforce_to_s3.py +0 -0
  186. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/transfers/sftp_to_s3.py +0 -0
  187. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/transfers/sql_to_s3.py +0 -0
  188. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/triggers/README.md +0 -0
  189. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/triggers/__init__.py +0 -0
  190. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/triggers/athena.py +0 -0
  191. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/triggers/base.py +0 -0
  192. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/triggers/batch.py +0 -0
  193. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/triggers/bedrock.py +0 -0
  194. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/triggers/comprehend.py +0 -0
  195. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/triggers/ec2.py +0 -0
  196. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/triggers/ecs.py +0 -0
  197. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/triggers/eks.py +0 -0
  198. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/triggers/emr.py +0 -0
  199. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/triggers/glue.py +0 -0
  200. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/triggers/glue_crawler.py +0 -0
  201. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/triggers/glue_databrew.py +0 -0
  202. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/triggers/lambda_function.py +0 -0
  203. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/triggers/neptune.py +0 -0
  204. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/triggers/opensearch_serverless.py +0 -0
  205. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/triggers/rds.py +0 -0
  206. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/triggers/redshift_cluster.py +0 -0
  207. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/triggers/redshift_data.py +0 -0
  208. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/triggers/s3.py +0 -0
  209. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/triggers/sagemaker.py +0 -0
  210. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/triggers/sqs.py +0 -0
  211. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/triggers/step_function.py +0 -0
  212. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/utils/__init__.py +0 -0
  213. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/utils/connection_wrapper.py +0 -0
  214. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/utils/eks_get_token.py +0 -0
  215. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/utils/emailer.py +0 -0
  216. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/utils/identifiers.py +0 -0
  217. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/utils/mixins.py +0 -0
  218. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/utils/rds.py +0 -0
  219. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/utils/redshift.py +0 -0
  220. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/utils/sagemaker.py +0 -0
  221. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/utils/sqs.py +0 -0
  222. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/utils/suppress.py +0 -0
  223. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/utils/tags.py +0 -0
  224. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/utils/task_log_fetcher.py +0 -0
  225. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/utils/waiter.py +0 -0
  226. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/utils/waiter_with_logging.py +0 -0
  227. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/waiters/README.md +0 -0
  228. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/waiters/__init__.py +0 -0
  229. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/waiters/appflow.json +0 -0
  230. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/waiters/athena.json +0 -0
  231. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/waiters/base_waiter.py +0 -0
  232. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/waiters/batch.json +0 -0
  233. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/waiters/bedrock-agent.json +0 -0
  234. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/waiters/bedrock.json +0 -0
  235. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/waiters/comprehend.json +0 -0
  236. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/waiters/databrew.json +0 -0
  237. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/waiters/ecs.json +0 -0
  238. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/waiters/eks.json +0 -0
  239. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/waiters/emr-containers.json +0 -0
  240. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/waiters/emr-serverless.json +0 -0
  241. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/waiters/emr.json +0 -0
  242. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/waiters/glue.json +0 -0
  243. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/waiters/neptune.json +0 -0
  244. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/waiters/opensearchserverless.json +0 -0
  245. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/waiters/redshift.json +0 -0
  246. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.0rc1}/airflow/providers/amazon/aws/waiters/sagemaker.json +0 -0
  247. {apache_airflow_providers_amazon-8.23.0rc1 → apache_airflow_providers_amazon-8.24.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: 8.23.0rc1
3
+ Version: 8.24.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>
@@ -52,8 +52,8 @@ Requires-Dist: s3fs>=2023.10.0 ; extra == "s3fs"
52
52
  Requires-Dist: apache-airflow-providers-salesforce ; extra == "salesforce"
53
53
  Requires-Dist: apache-airflow-providers-ssh ; extra == "ssh"
54
54
  Project-URL: Bug Tracker, https://github.com/apache/airflow/issues
55
- Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-amazon/8.23.0/changelog.html
56
- Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-amazon/8.23.0
55
+ Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-amazon/8.24.0/changelog.html
56
+ Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-amazon/8.24.0
57
57
  Project-URL: Slack Chat, https://s.apache.org/airflow-slack
58
58
  Project-URL: Source Code, https://github.com/apache/airflow
59
59
  Project-URL: Twitter, https://twitter.com/ApacheAirflow
@@ -120,7 +120,7 @@ Provides-Extra: ssh
120
120
 
121
121
  Package ``apache-airflow-providers-amazon``
122
122
 
123
- Release: ``8.23.0.rc1``
123
+ Release: ``8.24.0.rc1``
124
124
 
125
125
 
126
126
  Amazon integration (including `Amazon Web Services (AWS) <https://aws.amazon.com/>`__).
@@ -133,7 +133,7 @@ This is a provider package for ``amazon`` provider. All classes for this provide
133
133
  are in ``airflow.providers.amazon`` python package.
134
134
 
135
135
  You can find package information and changelog for the provider
136
- in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-amazon/8.23.0/>`_.
136
+ in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-amazon/8.24.0/>`_.
137
137
 
138
138
  Installation
139
139
  ------------
@@ -197,4 +197,4 @@ Dependent package
197
197
  ====================================================================================================================== ===================
198
198
 
199
199
  The changelog for the provider package can be found in the
200
- `changelog <https://airflow.apache.org/docs/apache-airflow-providers-amazon/8.23.0/changelog.html>`_.
200
+ `changelog <https://airflow.apache.org/docs/apache-airflow-providers-amazon/8.24.0/changelog.html>`_.
@@ -42,7 +42,7 @@
42
42
 
43
43
  Package ``apache-airflow-providers-amazon``
44
44
 
45
- Release: ``8.23.0.rc1``
45
+ Release: ``8.24.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/8.23.0/>`_.
58
+ in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-amazon/8.24.0/>`_.
59
59
 
60
60
  Installation
61
61
  ------------
@@ -119,4 +119,4 @@ Dependent package
119
119
  ====================================================================================================================== ===================
120
120
 
121
121
  The changelog for the provider package can be found in the
122
- `changelog <https://airflow.apache.org/docs/apache-airflow-providers-amazon/8.23.0/changelog.html>`_.
122
+ `changelog <https://airflow.apache.org/docs/apache-airflow-providers-amazon/8.24.0/changelog.html>`_.
@@ -29,7 +29,7 @@ from airflow import __version__ as airflow_version
29
29
 
30
30
  __all__ = ["__version__"]
31
31
 
32
- __version__ = "8.23.0"
32
+ __version__ = "8.24.0"
33
33
 
34
34
  if packaging.version.parse(packaging.version.parse(airflow_version).base_version) < packaging.version.parse(
35
35
  "2.7.0"
@@ -102,6 +102,7 @@ class BatchProtocol(Protocol):
102
102
  arrayProperties: dict,
103
103
  parameters: dict,
104
104
  containerOverrides: dict,
105
+ ecsPropertiesOverride: dict,
105
106
  tags: dict,
106
107
  ) -> dict:
107
108
  """
@@ -119,6 +120,8 @@ class BatchProtocol(Protocol):
119
120
 
120
121
  :param containerOverrides: the same parameter that boto3 will receive
121
122
 
123
+ :param ecsPropertiesOverride: the same parameter that boto3 will receive
124
+
122
125
  :param tags: the same parameter that boto3 will receive
123
126
 
124
127
  :return: an API response
@@ -19,11 +19,17 @@
19
19
 
20
20
  from __future__ import annotations
21
21
 
22
- from typing import Iterable
22
+ from functools import cached_property
23
+ from typing import TYPE_CHECKING, Iterable
24
+
25
+ from botocore.exceptions import ClientError
23
26
 
24
27
  from airflow.exceptions import AirflowException
25
28
  from airflow.providers.amazon.aws.hooks.base_aws import AwsBaseHook
26
29
 
30
+ if TYPE_CHECKING:
31
+ from botocore.client import BaseClient
32
+
27
33
 
28
34
  class DynamoDBHook(AwsBaseHook):
29
35
  """
@@ -50,6 +56,11 @@ class DynamoDBHook(AwsBaseHook):
50
56
  kwargs["resource_type"] = "dynamodb"
51
57
  super().__init__(*args, **kwargs)
52
58
 
59
+ @cached_property
60
+ def client(self) -> BaseClient:
61
+ """Return boto3 client."""
62
+ return self.get_conn().meta.client
63
+
53
64
  def write_batch_data(self, items: Iterable) -> bool:
54
65
  """
55
66
  Write batch items to DynamoDB table with provisioned throughout capacity.
@@ -70,3 +81,25 @@ class DynamoDBHook(AwsBaseHook):
70
81
  return True
71
82
  except Exception as general_error:
72
83
  raise AirflowException(f"Failed to insert items in dynamodb, error: {general_error}")
84
+
85
+ def get_import_status(self, import_arn: str) -> tuple[str, str | None, str | None]:
86
+ """
87
+ Get import status from Dynamodb.
88
+
89
+ :param import_arn: The Amazon Resource Name (ARN) for the import.
90
+ :return: Import status, Error code and Error message
91
+ """
92
+ self.log.info("Poking for Dynamodb import %s", import_arn)
93
+
94
+ try:
95
+ describe_import = self.client.describe_import(ImportArn=import_arn)
96
+ status = describe_import["ImportTableDescription"]["ImportStatus"]
97
+ error_code = describe_import["ImportTableDescription"].get("FailureCode")
98
+ error_msg = describe_import["ImportTableDescription"].get("FailureMessage")
99
+ return status, error_code, error_msg
100
+ except ClientError as e:
101
+ error_code = e.response.get("Error", {}).get("Code")
102
+ if error_code == "ImportNotFoundException":
103
+ raise AirflowException("S3 import into Dynamodb job not found.")
104
+ else:
105
+ raise e
@@ -65,6 +65,7 @@ class BatchOperator(BaseOperator):
65
65
  :param job_queue: the queue name on AWS Batch
66
66
  :param overrides: DEPRECATED, use container_overrides instead with the same value.
67
67
  :param container_overrides: the `containerOverrides` parameter for boto3 (templated)
68
+ :param ecs_properties_override: the `ecsPropertiesOverride` parameter for boto3 (templated)
68
69
  :param node_overrides: the `nodeOverrides` parameter for boto3 (templated)
69
70
  :param share_identifier: The share identifier for the job. Don't specify this parameter if the job queue
70
71
  doesn't have a scheduling policy.
@@ -112,6 +113,7 @@ class BatchOperator(BaseOperator):
112
113
  "job_queue",
113
114
  "container_overrides",
114
115
  "array_properties",
116
+ "ecs_properties_override",
115
117
  "node_overrides",
116
118
  "parameters",
117
119
  "retry_strategy",
@@ -124,6 +126,7 @@ class BatchOperator(BaseOperator):
124
126
  template_fields_renderers = {
125
127
  "container_overrides": "json",
126
128
  "parameters": "json",
129
+ "ecs_properties_override": "json",
127
130
  "node_overrides": "json",
128
131
  "retry_strategy": "json",
129
132
  }
@@ -160,6 +163,7 @@ class BatchOperator(BaseOperator):
160
163
  overrides: dict | None = None, # deprecated
161
164
  container_overrides: dict | None = None,
162
165
  array_properties: dict | None = None,
166
+ ecs_properties_override: dict | None = None,
163
167
  node_overrides: dict | None = None,
164
168
  share_identifier: str | None = None,
165
169
  scheduling_priority_override: int | None = None,
@@ -201,6 +205,7 @@ class BatchOperator(BaseOperator):
201
205
  stacklevel=2,
202
206
  )
203
207
 
208
+ self.ecs_properties_override = ecs_properties_override
204
209
  self.node_overrides = node_overrides
205
210
  self.share_identifier = share_identifier
206
211
  self.scheduling_priority_override = scheduling_priority_override
@@ -296,6 +301,8 @@ class BatchOperator(BaseOperator):
296
301
  self.log.info("AWS Batch job - container overrides: %s", self.container_overrides)
297
302
  if self.array_properties:
298
303
  self.log.info("AWS Batch job - array properties: %s", self.array_properties)
304
+ if self.ecs_properties_override:
305
+ self.log.info("AWS Batch job - ECS properties: %s", self.ecs_properties_override)
299
306
  if self.node_overrides:
300
307
  self.log.info("AWS Batch job - node properties: %s", self.node_overrides)
301
308
 
@@ -307,6 +314,7 @@ class BatchOperator(BaseOperator):
307
314
  "parameters": self.parameters,
308
315
  "tags": self.tags,
309
316
  "containerOverrides": self.container_overrides,
317
+ "ecsPropertiesOverride": self.ecs_properties_override,
310
318
  "nodeOverrides": self.node_overrides,
311
319
  "retryStrategy": self.retry_strategy,
312
320
  "shareIdentifier": self.share_identifier,
@@ -141,7 +141,7 @@ class EcsCreateClusterOperator(EcsBaseOperator):
141
141
  waiter_delay=self.waiter_delay,
142
142
  waiter_max_attempts=self.waiter_max_attempts,
143
143
  aws_conn_id=self.aws_conn_id,
144
- region_name=self.region,
144
+ region_name=self.region_name,
145
145
  ),
146
146
  method_name="_complete_exec_with_cluster_desc",
147
147
  # timeout is set to ensure that if a trigger dies, the timeout does not restart
@@ -218,7 +218,7 @@ class EcsDeleteClusterOperator(EcsBaseOperator):
218
218
  waiter_delay=self.waiter_delay,
219
219
  waiter_max_attempts=self.waiter_max_attempts,
220
220
  aws_conn_id=self.aws_conn_id,
221
- region_name=self.region,
221
+ region_name=self.region_name,
222
222
  ),
223
223
  method_name="_complete_exec_with_cluster_desc",
224
224
  # timeout is set to ensure that if a trigger dies, the timeout does not restart
@@ -495,7 +495,7 @@ class EcsRunTaskOperator(EcsBaseOperator):
495
495
  self.number_logs_exception = number_logs_exception
496
496
 
497
497
  if self.awslogs_region is None:
498
- self.awslogs_region = self.region
498
+ self.awslogs_region = self.region_name
499
499
 
500
500
  self.arn: str | None = None
501
501
  self._started_by: str | None = None
@@ -546,7 +546,7 @@ class EcsRunTaskOperator(EcsBaseOperator):
546
546
  waiter_delay=self.waiter_delay,
547
547
  waiter_max_attempts=self.waiter_max_attempts,
548
548
  aws_conn_id=self.aws_conn_id,
549
- region=self.region,
549
+ region=self.region_name,
550
550
  log_group=self.awslogs_group,
551
551
  log_stream=self._get_logs_stream_name(),
552
552
  ),
@@ -589,7 +589,7 @@ class EcsRunTaskOperator(EcsBaseOperator):
589
589
  self._after_execution()
590
590
  if self._aws_logs_enabled():
591
591
  # same behavior as non-deferrable mode, return last line of logs of the task.
592
- logs_client = AwsLogsHook(aws_conn_id=self.aws_conn_id, region_name=self.region).conn
592
+ logs_client = AwsLogsHook(aws_conn_id=self.aws_conn_id, region_name=self.region_name).conn
593
593
  one_log = logs_client.get_log_events(
594
594
  logGroupName=self.awslogs_group,
595
595
  logStreamName=self._get_logs_stream_name(),
@@ -0,0 +1,257 @@
1
+ #
2
+ # Licensed to the Apache Software Foundation (ASF) under one
3
+ # or more contributor license agreements. See the NOTICE file
4
+ # distributed with this work for additional information
5
+ # regarding copyright ownership. The ASF licenses this file
6
+ # to you under the Apache License, Version 2.0 (the
7
+ # "License"); you may not use this file except in compliance
8
+ # with the License. You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing,
13
+ # software distributed under the License is distributed on an
14
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15
+ # KIND, either express or implied. See the License for the
16
+ # specific language governing permissions and limitations
17
+ # under the License.
18
+ from __future__ import annotations
19
+
20
+ from typing import TYPE_CHECKING, Any, Literal, Sequence, TypedDict
21
+
22
+ from botocore.exceptions import ClientError, WaiterError
23
+
24
+ from airflow.exceptions import AirflowException
25
+ from airflow.models import BaseOperator
26
+ from airflow.providers.amazon.aws.hooks.dynamodb import DynamoDBHook
27
+
28
+ if TYPE_CHECKING:
29
+ from airflow.utils.context import Context
30
+
31
+
32
+ class AttributeDefinition(TypedDict):
33
+ """Attribute Definition Type."""
34
+
35
+ AttributeName: str
36
+ AttributeType: Literal["S", "N", "B"]
37
+
38
+
39
+ class KeySchema(TypedDict):
40
+ """Key Schema Type."""
41
+
42
+ AttributeName: str
43
+ KeyType: Literal["HASH", "RANGE"]
44
+
45
+
46
+ class S3ToDynamoDBOperator(BaseOperator):
47
+ """Load Data from S3 into a DynamoDB.
48
+
49
+ Data stored in S3 can be uploaded to a new or existing DynamoDB. Supported file formats CSV, DynamoDB JSON and
50
+ Amazon ION.
51
+
52
+
53
+ :param s3_bucket: The S3 bucket that is imported
54
+ :param s3_key: Key prefix that imports single or multiple objects from S3
55
+ :param dynamodb_table_name: Name of the table that shall be created
56
+ :param dynamodb_key_schema: Primary key and sort key. Each element represents one primary key
57
+ attribute. AttributeName is the name of the attribute. KeyType is the role for the attribute. Valid values
58
+ HASH or RANGE
59
+ :param dynamodb_attributes: Name of the attributes of a table. AttributeName is the name for the attribute
60
+ AttributeType is the data type for the attribute. Valid values for AttributeType are
61
+ S - attribute is of type String
62
+ N - attribute is of type Number
63
+ B - attribute is of type Binary
64
+ :param dynamodb_tmp_table_prefix: Prefix for the temporary DynamoDB table
65
+ :param delete_on_error: If set, the new DynamoDB table will be deleted in case of import errors
66
+ :param use_existing_table: Whether to import to an existing non new DynamoDB table. If set to
67
+ true data is loaded first into a temporary DynamoDB table (using the AWS ImportTable Service),
68
+ then retrieved as chunks into memory and loaded into the target table. If set to false, a new
69
+ DynamoDB table will be created and S3 data is bulk loaded by the AWS ImportTable Service.
70
+ :param input_format: The format for the imported data. Valid values for InputFormat are CSV, DYNAMODB_JSON
71
+ or ION
72
+ :param billing_mode: Billing mode for the table. Valid values are PROVISIONED or PAY_PER_REQUEST
73
+ :param on_demand_throughput: Extra options for maximum number of read and write units
74
+ :param import_table_kwargs: Any additional optional import table parameters to pass, such as ClientToken,
75
+ InputCompressionType, or InputFormatOptions. See:
76
+ https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/dynamodb/client/import_table.html
77
+ :param import_table_creation_kwargs: Any additional optional import table creation parameters to pass, such as
78
+ ProvisionedThroughput, SSESpecification, or GlobalSecondaryIndexes. See:
79
+ https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/dynamodb/client/import_table.html
80
+ :param wait_for_completion: Whether to wait for cluster to stop
81
+ :param check_interval: Time in seconds to wait between status checks
82
+ :param max_attempts: Maximum number of attempts to check for job completion
83
+ :param aws_conn_id: The reference to the AWS connection details
84
+ """
85
+
86
+ template_fields: Sequence[str] = (
87
+ "s3_bucket",
88
+ "s3_key",
89
+ "dynamodb_table_name",
90
+ "dynamodb_key_schema",
91
+ "dynamodb_attributes",
92
+ "dynamodb_tmp_table_prefix",
93
+ "delete_on_error",
94
+ "use_existing_table",
95
+ "input_format",
96
+ "billing_mode",
97
+ "import_table_kwargs",
98
+ "import_table_creation_kwargs",
99
+ )
100
+ ui_color = "#e2e8f0"
101
+
102
+ def __init__(
103
+ self,
104
+ *,
105
+ s3_bucket: str,
106
+ s3_key: str,
107
+ dynamodb_table_name: str,
108
+ dynamodb_key_schema: list[KeySchema],
109
+ dynamodb_attributes: list[AttributeDefinition] | None = None,
110
+ dynamodb_tmp_table_prefix: str = "tmp",
111
+ delete_on_error: bool = False,
112
+ use_existing_table: bool = False,
113
+ input_format: Literal["CSV", "DYNAMODB_JSON", "ION"] = "DYNAMODB_JSON",
114
+ billing_mode: Literal["PROVISIONED", "PAY_PER_REQUEST"] = "PAY_PER_REQUEST",
115
+ import_table_kwargs: dict[str, Any] | None = None,
116
+ import_table_creation_kwargs: dict[str, Any] | None = None,
117
+ wait_for_completion: bool = True,
118
+ check_interval: int = 30,
119
+ max_attempts: int = 240,
120
+ aws_conn_id: str | None = "aws_default",
121
+ **kwargs,
122
+ ) -> None:
123
+ super().__init__(**kwargs)
124
+ self.s3_bucket = s3_bucket
125
+ self.s3_key = s3_key
126
+ self.dynamodb_table_name = dynamodb_table_name
127
+ self.dynamodb_attributes = dynamodb_attributes
128
+ self.dynamodb_tmp_table_prefix = dynamodb_tmp_table_prefix
129
+ self.delete_on_error = delete_on_error
130
+ self.use_existing_table = use_existing_table
131
+ self.dynamodb_key_schema = dynamodb_key_schema
132
+ self.input_format = input_format
133
+ self.billing_mode = billing_mode
134
+ self.import_table_kwargs = import_table_kwargs
135
+ self.import_table_creation_kwargs = import_table_creation_kwargs
136
+ self.wait_for_completion = wait_for_completion
137
+ self.check_interval = check_interval
138
+ self.max_attempts = max_attempts
139
+ self.aws_conn_id = aws_conn_id
140
+
141
+ @property
142
+ def tmp_table_name(self):
143
+ """Temporary table name."""
144
+ return f"{self.dynamodb_tmp_table_prefix}_{self.dynamodb_table_name}"
145
+
146
+ def _load_into_new_table(self, table_name: str, delete_on_error: bool) -> str:
147
+ """
148
+ Import S3 key or keys into a new DynamoDB table.
149
+
150
+ :param table_name: Name of the table that shall be created
151
+ :param delete_on_error: If set, the new DynamoDB table will be deleted in case of import errors
152
+ :return: The Amazon resource number (ARN)
153
+ """
154
+ dynamodb_hook = DynamoDBHook(aws_conn_id=self.aws_conn_id)
155
+ client = dynamodb_hook.client
156
+
157
+ import_table_config = self.import_table_kwargs or {}
158
+ import_table_creation_config = self.import_table_creation_kwargs or {}
159
+
160
+ try:
161
+ response = client.import_table(
162
+ S3BucketSource={
163
+ "S3Bucket": self.s3_bucket,
164
+ "S3KeyPrefix": self.s3_key,
165
+ },
166
+ InputFormat=self.input_format,
167
+ TableCreationParameters={
168
+ "TableName": table_name,
169
+ "AttributeDefinitions": self.dynamodb_attributes,
170
+ "KeySchema": self.dynamodb_key_schema,
171
+ "BillingMode": self.billing_mode,
172
+ **import_table_creation_config,
173
+ },
174
+ **import_table_config,
175
+ )
176
+ except ClientError as e:
177
+ self.log.error("Error: failed to load from S3 into DynamoDB table. Error: %s", str(e))
178
+ raise AirflowException(f"S3 load into DynamoDB table failed with error: {e}")
179
+
180
+ if response["ImportTableDescription"]["ImportStatus"] == "FAILED":
181
+ raise AirflowException(
182
+ "S3 into Dynamodb job creation failed. Code: "
183
+ f"{response['ImportTableDescription']['FailureCode']}. "
184
+ f"Failure: {response['ImportTableDescription']['FailureMessage']}"
185
+ )
186
+
187
+ if self.wait_for_completion:
188
+ self.log.info("Waiting for S3 into Dynamodb job to complete")
189
+ waiter = dynamodb_hook.get_waiter("import_table")
190
+ try:
191
+ waiter.wait(
192
+ ImportArn=response["ImportTableDescription"]["ImportArn"],
193
+ WaiterConfig={"Delay": self.check_interval, "MaxAttempts": self.max_attempts},
194
+ )
195
+ except WaiterError:
196
+ status, error_code, error_msg = dynamodb_hook.get_import_status(
197
+ response["ImportTableDescription"]["ImportArn"]
198
+ )
199
+ if delete_on_error:
200
+ client.delete_table(TableName=table_name)
201
+ raise AirflowException(
202
+ f"S3 import into Dynamodb job failed: Status: {status}. Error: {error_code}. Error message: {error_msg}"
203
+ )
204
+ return response["ImportTableDescription"]["ImportArn"]
205
+
206
+ def _load_into_existing_table(self) -> str:
207
+ """
208
+ Import S3 key or keys in an existing DynamoDB table.
209
+
210
+ :return:The Amazon resource number (ARN)
211
+ """
212
+ if not self.wait_for_completion:
213
+ raise ValueError("wait_for_completion must be set to True when loading into an existing table")
214
+ table_keys = [key["AttributeName"] for key in self.dynamodb_key_schema]
215
+
216
+ dynamodb_hook = DynamoDBHook(
217
+ aws_conn_id=self.aws_conn_id, table_name=self.dynamodb_table_name, table_keys=table_keys
218
+ )
219
+ client = dynamodb_hook.client
220
+
221
+ self.log.info("Loading from S3 into a tmp DynamoDB table %s", self.tmp_table_name)
222
+ self._load_into_new_table(table_name=self.tmp_table_name, delete_on_error=self.delete_on_error)
223
+ total_items = 0
224
+ try:
225
+ paginator = client.get_paginator("scan")
226
+ paginate = paginator.paginate(
227
+ TableName=self.tmp_table_name,
228
+ Select="ALL_ATTRIBUTES",
229
+ ReturnConsumedCapacity="NONE",
230
+ ConsistentRead=True,
231
+ )
232
+ self.log.info(
233
+ "Loading data from %s to %s DynamoDB table", self.tmp_table_name, self.dynamodb_table_name
234
+ )
235
+ for page in paginate:
236
+ total_items += page.get("Count", 0)
237
+ dynamodb_hook.write_batch_data(items=page["Items"])
238
+ self.log.info("Number of items loaded: %s", total_items)
239
+ finally:
240
+ self.log.info("Delete tmp DynamoDB table %s", self.tmp_table_name)
241
+ client.delete_table(TableName=self.tmp_table_name)
242
+ return dynamodb_hook.get_conn().Table(self.dynamodb_table_name).table_arn
243
+
244
+ def execute(self, context: Context) -> str:
245
+ """
246
+ Execute S3 to DynamoDB Job from Airflow.
247
+
248
+ :param context: The current context of the task instance
249
+ :return: The Amazon resource number (ARN)
250
+ """
251
+ if self.use_existing_table:
252
+ self.log.info("Loading from S3 into new DynamoDB table %s", self.dynamodb_table_name)
253
+ return self._load_into_existing_table()
254
+ self.log.info("Loading from S3 into existing DynamoDB table %s", self.dynamodb_table_name)
255
+ return self._load_into_new_table(
256
+ table_name=self.dynamodb_table_name, delete_on_error=self.delete_on_error
257
+ )
@@ -0,0 +1,67 @@
1
+ {
2
+ "version": 2,
3
+ "waiters": {
4
+ "export_table": {
5
+ "operation": "DescribeExport",
6
+ "delay": 30,
7
+ "maxAttempts": 60,
8
+ "acceptors": [
9
+ {
10
+ "matcher": "path",
11
+ "expected": "COMPLETED",
12
+ "argument": "ExportDescription.ExportStatus",
13
+ "state": "success"
14
+ },
15
+ {
16
+ "matcher": "path",
17
+ "expected": "FAILED",
18
+ "argument": "ExportDescription.ExportStatus",
19
+ "state": "failure"
20
+ },
21
+ {
22
+ "matcher": "path",
23
+ "expected": "IN_PROGRESS",
24
+ "argument": "ExportDescription.ExportStatus",
25
+ "state": "retry"
26
+ }
27
+ ]
28
+ },
29
+ "import_table": {
30
+ "operation": "DescribeImport",
31
+ "delay": 30,
32
+ "maxAttempts": 240,
33
+ "acceptors": [
34
+ {
35
+ "matcher": "path",
36
+ "expected": "COMPLETED",
37
+ "argument": "ImportTableDescription.ImportStatus",
38
+ "state": "success"
39
+ },
40
+ {
41
+ "matcher": "path",
42
+ "expected": "CANCELLING",
43
+ "argument": "ImportTableDescription.ImportStatus",
44
+ "state": "failure"
45
+ },
46
+ {
47
+ "matcher": "path",
48
+ "expected": "CANCELLED",
49
+ "argument": "ImportTableDescription.ImportStatus",
50
+ "state": "failure"
51
+ },
52
+ {
53
+ "matcher": "path",
54
+ "expected": "FAILED",
55
+ "argument": "ImportTableDescription.ImportStatus",
56
+ "state": "failure"
57
+ },
58
+ {
59
+ "matcher": "path",
60
+ "expected": "IN_PROGRESS",
61
+ "argument": "ImportTableDescription.ImportStatus",
62
+ "state": "retry"
63
+ }
64
+ ]
65
+ }
66
+ }
67
+ }
@@ -28,8 +28,9 @@ def get_provider_info():
28
28
  "name": "Amazon",
29
29
  "description": "Amazon integration (including `Amazon Web Services (AWS) <https://aws.amazon.com/>`__).\n",
30
30
  "state": "ready",
31
- "source-date-epoch": 1716286347,
31
+ "source-date-epoch": 1717051501,
32
32
  "versions": [
33
+ "8.24.0",
33
34
  "8.23.0",
34
35
  "8.22.0",
35
36
  "8.21.0",
@@ -1022,6 +1023,12 @@ def get_provider_info():
1022
1023
  "how-to-guide": "/docs/apache-airflow-providers-amazon/transfer/azure_blob_to_s3.rst",
1023
1024
  "python-module": "airflow.providers.amazon.aws.transfers.azure_blob_to_s3",
1024
1025
  },
1026
+ {
1027
+ "source-integration-name": "Amazon Simple Storage Service (S3)",
1028
+ "target-integration-name": "Amazon DynamoDB",
1029
+ "how-to-guide": "/docs/apache-airflow-providers-amazon/transfer/s3_to_dynamodb.rst",
1030
+ "python-module": "airflow.providers.amazon.aws.transfers.s3_to_dynamodb",
1031
+ },
1025
1032
  ],
1026
1033
  "extra-links": [
1027
1034
  "airflow.providers.amazon.aws.links.athena.AthenaQueryResultsLink",
@@ -28,7 +28,7 @@ build-backend = "flit_core.buildapi"
28
28
 
29
29
  [project]
30
30
  name = "apache-airflow-providers-amazon"
31
- version = "8.23.0.rc1"
31
+ version = "8.24.0.rc1"
32
32
  description = "Provider package apache-airflow-providers-amazon for Apache Airflow"
33
33
  readme = "README.rst"
34
34
  authors = [
@@ -72,8 +72,8 @@ dependencies = [
72
72
  ]
73
73
 
74
74
  [project.urls]
75
- "Documentation" = "https://airflow.apache.org/docs/apache-airflow-providers-amazon/8.23.0"
76
- "Changelog" = "https://airflow.apache.org/docs/apache-airflow-providers-amazon/8.23.0/changelog.html"
75
+ "Documentation" = "https://airflow.apache.org/docs/apache-airflow-providers-amazon/8.24.0"
76
+ "Changelog" = "https://airflow.apache.org/docs/apache-airflow-providers-amazon/8.24.0/changelog.html"
77
77
  "Bug Tracker" = "https://github.com/apache/airflow/issues"
78
78
  "Source Code" = "https://github.com/apache/airflow"
79
79
  "Slack Chat" = "https://s.apache.org/airflow-slack"
@@ -1,30 +0,0 @@
1
- {
2
- "version": 2,
3
- "waiters": {
4
- "export_table": {
5
- "operation": "DescribeExport",
6
- "delay": 30,
7
- "maxAttempts": 60,
8
- "acceptors": [
9
- {
10
- "matcher": "path",
11
- "expected": "COMPLETED",
12
- "argument": "ExportDescription.ExportStatus",
13
- "state": "success"
14
- },
15
- {
16
- "matcher": "path",
17
- "expected": "FAILED",
18
- "argument": "ExportDescription.ExportStatus",
19
- "state": "failure"
20
- },
21
- {
22
- "matcher": "path",
23
- "expected": "IN_PROGRESS",
24
- "argument": "ExportDescription.ExportStatus",
25
- "state": "retry"
26
- }
27
- ]
28
- }
29
- }
30
- }