apache-airflow-providers-amazon 8.24.0rc1__tar.gz → 8.25.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (250) hide show
  1. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/PKG-INFO +22 -21
  2. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/README.rst +8 -8
  3. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/LICENSE +4 -4
  4. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/__init__.py +1 -1
  5. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/hooks/base_aws.py +8 -3
  6. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/hooks/comprehend.py +33 -0
  7. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/hooks/glue.py +123 -0
  8. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/hooks/redshift_sql.py +8 -1
  9. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/operators/bedrock.py +6 -20
  10. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/operators/comprehend.py +148 -1
  11. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/operators/emr.py +38 -30
  12. apache_airflow_providers_amazon-8.25.0/airflow/providers/amazon/aws/operators/glue.py +647 -0
  13. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/operators/sagemaker.py +85 -12
  14. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/sensors/comprehend.py +112 -1
  15. apache_airflow_providers_amazon-8.25.0/airflow/providers/amazon/aws/sensors/glue.py +351 -0
  16. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/sensors/s3.py +35 -5
  17. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/transfers/dynamodb_to_s3.py +0 -1
  18. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/transfers/redshift_to_s3.py +1 -1
  19. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/triggers/comprehend.py +36 -0
  20. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/triggers/glue.py +76 -2
  21. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/utils/__init__.py +2 -3
  22. apache_airflow_providers_amazon-8.25.0/airflow/providers/amazon/aws/waiters/comprehend.json +104 -0
  23. apache_airflow_providers_amazon-8.25.0/airflow/providers/amazon/aws/waiters/glue.json +128 -0
  24. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/get_provider_info.py +20 -13
  25. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/pyproject.toml +14 -13
  26. apache_airflow_providers_amazon-8.24.0rc1/airflow/providers/amazon/aws/operators/glue.py +0 -241
  27. apache_airflow_providers_amazon-8.24.0rc1/airflow/providers/amazon/aws/sensors/glue.py +0 -93
  28. apache_airflow_providers_amazon-8.24.0rc1/airflow/providers/amazon/aws/waiters/comprehend.json +0 -49
  29. apache_airflow_providers_amazon-8.24.0rc1/airflow/providers/amazon/aws/waiters/glue.json +0 -30
  30. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/__init__.py +0 -0
  31. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/auth_manager/__init__.py +0 -0
  32. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/auth_manager/avp/__init__.py +0 -0
  33. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/auth_manager/avp/entities.py +0 -0
  34. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/auth_manager/avp/facade.py +0 -0
  35. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/auth_manager/avp/schema.json +0 -0
  36. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/auth_manager/aws_auth_manager.py +0 -0
  37. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/auth_manager/cli/__init__.py +0 -0
  38. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/auth_manager/cli/avp_commands.py +0 -0
  39. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/auth_manager/cli/definition.py +0 -0
  40. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/auth_manager/cli/idc_commands.py +0 -0
  41. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/auth_manager/constants.py +0 -0
  42. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/auth_manager/security_manager/__init__.py +0 -0
  43. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/auth_manager/security_manager/aws_security_manager_override.py +0 -0
  44. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/auth_manager/user.py +0 -0
  45. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/auth_manager/views/__init__.py +0 -0
  46. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/auth_manager/views/auth.py +0 -0
  47. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/exceptions.py +0 -0
  48. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/executors/Dockerfile +0 -0
  49. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/executors/__init__.py +0 -0
  50. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/executors/batch/__init__.py +0 -0
  51. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/executors/batch/batch_executor.py +0 -0
  52. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/executors/batch/batch_executor_config.py +0 -0
  53. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/executors/batch/boto_schema.py +0 -0
  54. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/executors/batch/utils.py +0 -0
  55. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/executors/ecs/__init__.py +0 -0
  56. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/executors/ecs/boto_schema.py +0 -0
  57. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/executors/ecs/ecs_executor.py +0 -0
  58. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/executors/ecs/ecs_executor_config.py +0 -0
  59. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/executors/ecs/utils.py +0 -0
  60. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/executors/utils/__init__.py +0 -0
  61. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/executors/utils/base_config_keys.py +0 -0
  62. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/executors/utils/exponential_backoff_retry.py +0 -0
  63. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/fs/__init__.py +0 -0
  64. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/fs/s3.py +0 -0
  65. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/hooks/__init__.py +0 -0
  66. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/hooks/appflow.py +0 -0
  67. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/hooks/athena.py +0 -0
  68. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/hooks/athena_sql.py +0 -0
  69. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/hooks/batch_client.py +0 -0
  70. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/hooks/batch_waiters.json +0 -0
  71. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/hooks/batch_waiters.py +0 -0
  72. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/hooks/bedrock.py +0 -0
  73. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/hooks/chime.py +0 -0
  74. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/hooks/cloud_formation.py +0 -0
  75. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/hooks/datasync.py +0 -0
  76. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/hooks/dms.py +0 -0
  77. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/hooks/dynamodb.py +0 -0
  78. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/hooks/ec2.py +0 -0
  79. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/hooks/ecr.py +0 -0
  80. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/hooks/ecs.py +0 -0
  81. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/hooks/eks.py +0 -0
  82. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/hooks/elasticache_replication_group.py +0 -0
  83. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/hooks/emr.py +0 -0
  84. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/hooks/eventbridge.py +0 -0
  85. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/hooks/glacier.py +0 -0
  86. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/hooks/glue_catalog.py +0 -0
  87. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/hooks/glue_crawler.py +0 -0
  88. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/hooks/glue_databrew.py +0 -0
  89. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/hooks/kinesis.py +0 -0
  90. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/hooks/lambda_function.py +0 -0
  91. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/hooks/logs.py +0 -0
  92. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/hooks/neptune.py +0 -0
  93. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/hooks/opensearch_serverless.py +0 -0
  94. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/hooks/quicksight.py +0 -0
  95. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/hooks/rds.py +0 -0
  96. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/hooks/redshift_cluster.py +0 -0
  97. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/hooks/redshift_data.py +0 -0
  98. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/hooks/s3.py +0 -0
  99. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/hooks/sagemaker.py +0 -0
  100. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/hooks/secrets_manager.py +0 -0
  101. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/hooks/ses.py +0 -0
  102. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/hooks/sns.py +0 -0
  103. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/hooks/sqs.py +0 -0
  104. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/hooks/ssm.py +0 -0
  105. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/hooks/step_function.py +0 -0
  106. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/hooks/sts.py +0 -0
  107. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/hooks/verified_permissions.py +0 -0
  108. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/links/__init__.py +0 -0
  109. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/links/athena.py +0 -0
  110. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/links/base_aws.py +0 -0
  111. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/links/batch.py +0 -0
  112. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/links/emr.py +0 -0
  113. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/links/glue.py +0 -0
  114. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/links/logs.py +0 -0
  115. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/links/step_function.py +0 -0
  116. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/log/__init__.py +0 -0
  117. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/log/cloudwatch_task_handler.py +0 -0
  118. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/log/s3_task_handler.py +0 -0
  119. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/notifications/__init__.py +0 -0
  120. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/notifications/chime.py +0 -0
  121. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/notifications/sns.py +0 -0
  122. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/notifications/sqs.py +0 -0
  123. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/operators/__init__.py +0 -0
  124. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/operators/appflow.py +0 -0
  125. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/operators/athena.py +0 -0
  126. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/operators/base_aws.py +0 -0
  127. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/operators/batch.py +0 -0
  128. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/operators/cloud_formation.py +0 -0
  129. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/operators/datasync.py +0 -0
  130. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/operators/dms.py +0 -0
  131. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/operators/ec2.py +0 -0
  132. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/operators/ecs.py +0 -0
  133. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/operators/eks.py +0 -0
  134. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/operators/eventbridge.py +0 -0
  135. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/operators/glacier.py +0 -0
  136. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/operators/glue_crawler.py +0 -0
  137. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/operators/glue_databrew.py +0 -0
  138. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/operators/lambda_function.py +0 -0
  139. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/operators/neptune.py +0 -0
  140. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/operators/quicksight.py +0 -0
  141. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/operators/rds.py +0 -0
  142. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/operators/redshift_cluster.py +0 -0
  143. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/operators/redshift_data.py +0 -0
  144. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/operators/s3.py +0 -0
  145. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/operators/sns.py +0 -0
  146. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/operators/sqs.py +0 -0
  147. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/operators/step_function.py +0 -0
  148. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/secrets/__init__.py +0 -0
  149. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/secrets/secrets_manager.py +0 -0
  150. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/secrets/systems_manager.py +0 -0
  151. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/sensors/__init__.py +0 -0
  152. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/sensors/athena.py +0 -0
  153. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/sensors/base_aws.py +0 -0
  154. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/sensors/batch.py +0 -0
  155. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/sensors/bedrock.py +0 -0
  156. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/sensors/cloud_formation.py +0 -0
  157. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/sensors/dms.py +0 -0
  158. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/sensors/dynamodb.py +0 -0
  159. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/sensors/ec2.py +0 -0
  160. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/sensors/ecs.py +0 -0
  161. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/sensors/eks.py +0 -0
  162. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/sensors/emr.py +0 -0
  163. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/sensors/glacier.py +0 -0
  164. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/sensors/glue_catalog_partition.py +0 -0
  165. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/sensors/glue_crawler.py +0 -0
  166. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/sensors/lambda_function.py +0 -0
  167. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/sensors/opensearch_serverless.py +0 -0
  168. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/sensors/quicksight.py +0 -0
  169. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/sensors/rds.py +0 -0
  170. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/sensors/redshift_cluster.py +0 -0
  171. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/sensors/sagemaker.py +0 -0
  172. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/sensors/sqs.py +0 -0
  173. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/sensors/step_function.py +0 -0
  174. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/transfers/__init__.py +0 -0
  175. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/transfers/azure_blob_to_s3.py +0 -0
  176. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/transfers/base.py +0 -0
  177. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/transfers/exasol_to_s3.py +0 -0
  178. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/transfers/ftp_to_s3.py +0 -0
  179. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/transfers/gcs_to_s3.py +0 -0
  180. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/transfers/glacier_to_gcs.py +0 -0
  181. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/transfers/google_api_to_s3.py +0 -0
  182. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/transfers/hive_to_dynamodb.py +0 -0
  183. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/transfers/http_to_s3.py +0 -0
  184. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/transfers/imap_attachment_to_s3.py +0 -0
  185. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/transfers/local_to_s3.py +0 -0
  186. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/transfers/mongo_to_s3.py +0 -0
  187. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/transfers/s3_to_dynamodb.py +0 -0
  188. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/transfers/s3_to_ftp.py +0 -0
  189. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/transfers/s3_to_redshift.py +0 -0
  190. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/transfers/s3_to_sftp.py +0 -0
  191. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/transfers/s3_to_sql.py +0 -0
  192. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/transfers/salesforce_to_s3.py +0 -0
  193. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/transfers/sftp_to_s3.py +0 -0
  194. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/transfers/sql_to_s3.py +0 -0
  195. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/triggers/README.md +0 -0
  196. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/triggers/__init__.py +0 -0
  197. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/triggers/athena.py +0 -0
  198. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/triggers/base.py +0 -0
  199. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/triggers/batch.py +0 -0
  200. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/triggers/bedrock.py +0 -0
  201. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/triggers/ec2.py +0 -0
  202. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/triggers/ecs.py +0 -0
  203. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/triggers/eks.py +0 -0
  204. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/triggers/emr.py +0 -0
  205. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/triggers/glue_crawler.py +0 -0
  206. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/triggers/glue_databrew.py +0 -0
  207. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/triggers/lambda_function.py +0 -0
  208. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/triggers/neptune.py +0 -0
  209. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/triggers/opensearch_serverless.py +0 -0
  210. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/triggers/rds.py +0 -0
  211. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/triggers/redshift_cluster.py +0 -0
  212. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/triggers/redshift_data.py +0 -0
  213. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/triggers/s3.py +0 -0
  214. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/triggers/sagemaker.py +0 -0
  215. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/triggers/sqs.py +0 -0
  216. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/triggers/step_function.py +0 -0
  217. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/utils/connection_wrapper.py +0 -0
  218. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/utils/eks_get_token.py +0 -0
  219. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/utils/emailer.py +0 -0
  220. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/utils/identifiers.py +0 -0
  221. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/utils/mixins.py +0 -0
  222. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/utils/rds.py +0 -0
  223. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/utils/redshift.py +0 -0
  224. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/utils/sagemaker.py +0 -0
  225. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/utils/sqs.py +0 -0
  226. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/utils/suppress.py +0 -0
  227. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/utils/tags.py +0 -0
  228. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/utils/task_log_fetcher.py +0 -0
  229. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/utils/waiter.py +0 -0
  230. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/utils/waiter_with_logging.py +0 -0
  231. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/waiters/README.md +0 -0
  232. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/waiters/__init__.py +0 -0
  233. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/waiters/appflow.json +0 -0
  234. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/waiters/athena.json +0 -0
  235. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/waiters/base_waiter.py +0 -0
  236. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/waiters/batch.json +0 -0
  237. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/waiters/bedrock-agent.json +0 -0
  238. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/waiters/bedrock.json +0 -0
  239. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/waiters/databrew.json +0 -0
  240. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/waiters/dynamodb.json +0 -0
  241. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/waiters/ecs.json +0 -0
  242. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/waiters/eks.json +0 -0
  243. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/waiters/emr-containers.json +0 -0
  244. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/waiters/emr-serverless.json +0 -0
  245. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/waiters/emr.json +0 -0
  246. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/waiters/neptune.json +0 -0
  247. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/waiters/opensearchserverless.json +0 -0
  248. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/waiters/redshift.json +0 -0
  249. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/airflow/providers/amazon/aws/waiters/sagemaker.json +0 -0
  250. {apache_airflow_providers_amazon-8.24.0rc1 → apache_airflow_providers_amazon-8.25.0}/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.24.0rc1
3
+ Version: 8.25.0
4
4
  Summary: Provider package apache-airflow-providers-amazon for Apache Airflow
5
5
  Keywords: airflow-provider,amazon,airflow,integration
6
6
  Author-email: Apache Software Foundation <dev@airflow.apache.org>
@@ -22,21 +22,21 @@ Classifier: Programming Language :: Python :: 3.11
22
22
  Classifier: Programming Language :: Python :: 3.12
23
23
  Classifier: Topic :: System :: Monitoring
24
24
  Requires-Dist: PyAthena>=3.0.10
25
- Requires-Dist: apache-airflow-providers-common-sql>=1.3.1rc0
25
+ Requires-Dist: apache-airflow-providers-common-sql>=1.3.1
26
26
  Requires-Dist: apache-airflow-providers-http
27
- Requires-Dist: apache-airflow>=2.7.0rc0
28
- Requires-Dist: asgiref
29
- Requires-Dist: boto3>=1.33.0
30
- Requires-Dist: botocore>=1.33.0
27
+ Requires-Dist: apache-airflow>=2.7.0
28
+ Requires-Dist: asgiref>=2.3.0
29
+ Requires-Dist: boto3>=1.34.90
30
+ Requires-Dist: botocore>=1.34.90
31
31
  Requires-Dist: inflection>=0.5.1
32
- Requires-Dist: jmespath
32
+ Requires-Dist: jmespath>=0.7.0
33
33
  Requires-Dist: jsonpath_ng>=1.5.3
34
34
  Requires-Dist: redshift_connector>=2.0.918
35
35
  Requires-Dist: sqlalchemy_redshift>=0.8.6
36
- Requires-Dist: watchtower>=2.0.1,<4
37
- Requires-Dist: aiobotocore[boto3]>=2.5.3 ; extra == "aiobotocore"
36
+ Requires-Dist: watchtower>=3.0.0,<4
37
+ Requires-Dist: aiobotocore[boto3]>=2.13.0 ; extra == "aiobotocore"
38
38
  Requires-Dist: apache-airflow-providers-apache-hive ; extra == "apache.hive"
39
- Requires-Dist: apache-airflow-providers-cncf-kubernetes>=7.2.0rc0 ; extra == "cncf.kubernetes"
39
+ Requires-Dist: apache-airflow-providers-cncf-kubernetes>=7.2.0 ; extra == "cncf.kubernetes"
40
40
  Requires-Dist: apache-airflow-providers-common-sql ; extra == "common.sql"
41
41
  Requires-Dist: apache-airflow-providers-exasol ; extra == "exasol"
42
42
  Requires-Dist: apache-airflow-providers-ftp ; extra == "ftp"
@@ -46,14 +46,15 @@ Requires-Dist: apache-airflow-providers-imap ; extra == "imap"
46
46
  Requires-Dist: apache-airflow-providers-microsoft-azure ; extra == "microsoft.azure"
47
47
  Requires-Dist: apache-airflow-providers-mongo ; extra == "mongo"
48
48
  Requires-Dist: apache-airflow-providers-openlineage ; extra == "openlineage"
49
- Requires-Dist: pandas>=1.2.5,<2.2 ; extra == "pandas"
49
+ Requires-Dist: pandas>=2.1.2,<2.2 ; extra == "pandas" and (python_version>="3.9")
50
+ Requires-Dist: pandas>=1.5.3,<2.2 ; extra == "pandas" and (python_version<"3.9")
50
51
  Requires-Dist: python3-saml>=1.16.0 ; extra == "python3-saml"
51
52
  Requires-Dist: s3fs>=2023.10.0 ; extra == "s3fs"
52
53
  Requires-Dist: apache-airflow-providers-salesforce ; extra == "salesforce"
53
54
  Requires-Dist: apache-airflow-providers-ssh ; extra == "ssh"
54
55
  Project-URL: Bug Tracker, https://github.com/apache/airflow/issues
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
56
+ Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-amazon/8.25.0/changelog.html
57
+ Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-amazon/8.25.0
57
58
  Project-URL: Slack Chat, https://s.apache.org/airflow-slack
58
59
  Project-URL: Source Code, https://github.com/apache/airflow
59
60
  Project-URL: Twitter, https://twitter.com/ApacheAirflow
@@ -120,7 +121,7 @@ Provides-Extra: ssh
120
121
 
121
122
  Package ``apache-airflow-providers-amazon``
122
123
 
123
- Release: ``8.24.0.rc1``
124
+ Release: ``8.25.0``
124
125
 
125
126
 
126
127
  Amazon integration (including `Amazon Web Services (AWS) <https://aws.amazon.com/>`__).
@@ -133,7 +134,7 @@ This is a provider package for ``amazon`` provider. All classes for this provide
133
134
  are in ``airflow.providers.amazon`` python package.
134
135
 
135
136
  You can find package information and changelog for the provider
136
- in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-amazon/8.24.0/>`_.
137
+ in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-amazon/8.25.0/>`_.
137
138
 
138
139
  Installation
139
140
  ------------
@@ -153,16 +154,16 @@ PIP package Version required
153
154
  ``apache-airflow`` ``>=2.7.0``
154
155
  ``apache-airflow-providers-common-sql`` ``>=1.3.1``
155
156
  ``apache-airflow-providers-http``
156
- ``boto3`` ``>=1.33.0``
157
- ``botocore`` ``>=1.33.0``
157
+ ``boto3`` ``>=1.34.90``
158
+ ``botocore`` ``>=1.34.90``
158
159
  ``inflection`` ``>=0.5.1``
159
- ``watchtower`` ``>=2.0.1,<4``
160
+ ``watchtower`` ``>=3.0.0,<4``
160
161
  ``jsonpath_ng`` ``>=1.5.3``
161
162
  ``redshift_connector`` ``>=2.0.918``
162
163
  ``sqlalchemy_redshift`` ``>=0.8.6``
163
- ``asgiref``
164
+ ``asgiref`` ``>=2.3.0``
164
165
  ``PyAthena`` ``>=3.0.10``
165
- ``jmespath``
166
+ ``jmespath`` ``>=0.7.0``
166
167
  ======================================= ==================
167
168
 
168
169
  Cross provider package dependencies
@@ -197,4 +198,4 @@ Dependent package
197
198
  ====================================================================================================================== ===================
198
199
 
199
200
  The changelog for the provider package can be found in the
200
- `changelog <https://airflow.apache.org/docs/apache-airflow-providers-amazon/8.24.0/changelog.html>`_.
201
+ `changelog <https://airflow.apache.org/docs/apache-airflow-providers-amazon/8.25.0/changelog.html>`_.
@@ -42,7 +42,7 @@
42
42
 
43
43
  Package ``apache-airflow-providers-amazon``
44
44
 
45
- Release: ``8.24.0.rc1``
45
+ Release: ``8.25.0``
46
46
 
47
47
 
48
48
  Amazon integration (including `Amazon Web Services (AWS) <https://aws.amazon.com/>`__).
@@ -55,7 +55,7 @@ This is a provider package for ``amazon`` provider. All classes for this provide
55
55
  are in ``airflow.providers.amazon`` python package.
56
56
 
57
57
  You can find package information and changelog for the provider
58
- in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-amazon/8.24.0/>`_.
58
+ in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-amazon/8.25.0/>`_.
59
59
 
60
60
  Installation
61
61
  ------------
@@ -75,16 +75,16 @@ PIP package Version required
75
75
  ``apache-airflow`` ``>=2.7.0``
76
76
  ``apache-airflow-providers-common-sql`` ``>=1.3.1``
77
77
  ``apache-airflow-providers-http``
78
- ``boto3`` ``>=1.33.0``
79
- ``botocore`` ``>=1.33.0``
78
+ ``boto3`` ``>=1.34.90``
79
+ ``botocore`` ``>=1.34.90``
80
80
  ``inflection`` ``>=0.5.1``
81
- ``watchtower`` ``>=2.0.1,<4``
81
+ ``watchtower`` ``>=3.0.0,<4``
82
82
  ``jsonpath_ng`` ``>=1.5.3``
83
83
  ``redshift_connector`` ``>=2.0.918``
84
84
  ``sqlalchemy_redshift`` ``>=0.8.6``
85
- ``asgiref``
85
+ ``asgiref`` ``>=2.3.0``
86
86
  ``PyAthena`` ``>=3.0.10``
87
- ``jmespath``
87
+ ``jmespath`` ``>=0.7.0``
88
88
  ======================================= ==================
89
89
 
90
90
  Cross provider package dependencies
@@ -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.24.0/changelog.html>`_.
122
+ `changelog <https://airflow.apache.org/docs/apache-airflow-providers-amazon/8.25.0/changelog.html>`_.
@@ -215,7 +215,7 @@ Third party Apache 2.0 licenses
215
215
 
216
216
  The following components are provided under the Apache 2.0 License.
217
217
  See project link for details. The text of each license is also included
218
- at licenses/LICENSE-[project].txt.
218
+ at 3rd-party-licenses/LICENSE-[project].txt.
219
219
 
220
220
  (ALv2 License) hue v4.3.0 (https://github.com/cloudera/hue/)
221
221
  (ALv2 License) jqclock v2.3.0 (https://github.com/JohnRDOrazio/jQuery-Clock-Plugin)
@@ -227,7 +227,7 @@ MIT licenses
227
227
  ========================================================================
228
228
 
229
229
  The following components are provided under the MIT License. See project link for details.
230
- The text of each license is also included at licenses/LICENSE-[project].txt.
230
+ The text of each license is also included at 3rd-party-licenses/LICENSE-[project].txt.
231
231
 
232
232
  (MIT License) jquery v3.5.1 (https://jquery.org/license/)
233
233
  (MIT License) dagre-d3 v0.6.4 (https://github.com/cpettitt/dagre-d3)
@@ -243,11 +243,11 @@ The text of each license is also included at licenses/LICENSE-[project].txt.
243
243
  BSD 3-Clause licenses
244
244
  ========================================================================
245
245
  The following components are provided under the BSD 3-Clause license. See project links for details.
246
- The text of each license is also included at licenses/LICENSE-[project].txt.
246
+ The text of each license is also included at 3rd-party-licenses/LICENSE-[project].txt.
247
247
 
248
248
  (BSD 3 License) d3 v5.16.0 (https://d3js.org)
249
249
  (BSD 3 License) d3-shape v2.1.0 (https://github.com/d3/d3-shape)
250
250
  (BSD 3 License) cgroupspy 0.2.1 (https://github.com/cloudsigma/cgroupspy)
251
251
 
252
252
  ========================================================================
253
- See licenses/LICENSES-ui.txt for packages used in `/airflow/www`
253
+ See 3rd-party-licenses/LICENSES-ui.txt for packages used in `/airflow/www`
@@ -29,7 +29,7 @@ from airflow import __version__ as airflow_version
29
29
 
30
30
  __all__ = ["__version__"]
31
31
 
32
- __version__ = "8.24.0"
32
+ __version__ = "8.25.0"
33
33
 
34
34
  if packaging.version.parse(packaging.version.parse(airflow_version).base_version) < packaging.version.parse(
35
35
  "2.7.0"
@@ -156,7 +156,9 @@ class BaseSessionFactory(LoggingMixin):
156
156
 
157
157
  return async_get_session()
158
158
 
159
- def create_session(self, deferrable: bool = False) -> boto3.session.Session:
159
+ def create_session(
160
+ self, deferrable: bool = False
161
+ ) -> boto3.session.Session | aiobotocore.session.AioSession:
160
162
  """Create boto3 or aiobotocore Session from connection config."""
161
163
  if not self.conn:
162
164
  self.log.info(
@@ -198,7 +200,7 @@ class BaseSessionFactory(LoggingMixin):
198
200
 
199
201
  def _create_session_with_assume_role(
200
202
  self, session_kwargs: dict[str, Any], deferrable: bool = False
201
- ) -> boto3.session.Session:
203
+ ) -> boto3.session.Session | aiobotocore.session.AioSession:
202
204
  if self.conn.assume_role_method == "assume_role_with_web_identity":
203
205
  # Deferred credentials have no initial credentials
204
206
  credential_fetcher = self._get_web_identity_credential_fetcher()
@@ -239,7 +241,10 @@ class BaseSessionFactory(LoggingMixin):
239
241
  session._credentials = credentials
240
242
  session.set_config_variable("region", self.basic_session.region_name)
241
243
 
242
- return boto3.session.Session(botocore_session=session, **session_kwargs)
244
+ if not deferrable:
245
+ return boto3.session.Session(botocore_session=session, **session_kwargs)
246
+
247
+ return session
243
248
 
244
249
  def _refresh_credentials(self) -> dict[str, Any]:
245
250
  self.log.debug("Refreshing credentials")
@@ -16,6 +16,7 @@
16
16
  # under the License.
17
17
  from __future__ import annotations
18
18
 
19
+ from airflow.exceptions import AirflowException
19
20
  from airflow.providers.amazon.aws.hooks.base_aws import AwsBaseHook
20
21
 
21
22
 
@@ -35,3 +36,35 @@ class ComprehendHook(AwsBaseHook):
35
36
  def __init__(self, *args, **kwargs) -> None:
36
37
  kwargs["client_type"] = "comprehend"
37
38
  super().__init__(*args, **kwargs)
39
+
40
+ def validate_document_classifier_training_status(
41
+ self, document_classifier_arn: str, fail_on_warnings: bool = False
42
+ ) -> None:
43
+ """
44
+ Log the Information about the document classifier.
45
+
46
+ NumberOfLabels
47
+ NumberOfTrainedDocuments
48
+ NumberOfTestDocuments
49
+ EvaluationMetrics
50
+
51
+ """
52
+ response = self.conn.describe_document_classifier(DocumentClassifierArn=document_classifier_arn)
53
+
54
+ status = response["DocumentClassifierProperties"]["Status"]
55
+
56
+ if status == "TRAINED_WITH_WARNING":
57
+ self.log.info(
58
+ "AWS Comprehend document classifier training completed with %s, Message: %s please review the skipped files folder in the output location %s",
59
+ status,
60
+ response["DocumentClassifierProperties"]["Message"],
61
+ response["DocumentClassifierProperties"]["OutputDataConfig"]["S3Uri"],
62
+ )
63
+
64
+ if fail_on_warnings:
65
+ raise AirflowException("Warnings in AWS Comprehend document classifier training.")
66
+
67
+ self.log.info(
68
+ "AWS Comprehend document classifier metadata: %s",
69
+ response["DocumentClassifierProperties"]["ClassifierMetadata"],
70
+ )
@@ -20,6 +20,7 @@ from __future__ import annotations
20
20
  import asyncio
21
21
  import time
22
22
  from functools import cached_property
23
+ from typing import Any
23
24
 
24
25
  from botocore.exceptions import ClientError
25
26
 
@@ -430,3 +431,125 @@ class GlueJobHook(AwsBaseHook):
430
431
  self.conn.create_job(**config)
431
432
 
432
433
  return self.job_name
434
+
435
+
436
+ class GlueDataQualityHook(AwsBaseHook):
437
+ """
438
+ Interact with AWS Glue Data Quality.
439
+
440
+ Provide thick wrapper around :external+boto3:py:class:`boto3.client("glue") <Glue.Client>`.
441
+
442
+ Additional arguments (such as ``aws_conn_id``) may be specified and
443
+ are passed down to the underlying AwsBaseHook.
444
+
445
+ .. seealso::
446
+ - :class:`airflow.providers.amazon.aws.hooks.base_aws.AwsBaseHook`
447
+ """
448
+
449
+ def __init__(
450
+ self,
451
+ *args,
452
+ **kwargs,
453
+ ):
454
+ kwargs["client_type"] = "glue"
455
+ super().__init__(*args, **kwargs)
456
+
457
+ def has_data_quality_ruleset(self, name: str) -> bool:
458
+ try:
459
+ self.conn.get_data_quality_ruleset(Name=name)
460
+ return True
461
+ except self.conn.exceptions.EntityNotFoundException:
462
+ return False
463
+
464
+ def _log_results(self, result: dict[str, Any]) -> None:
465
+ """
466
+ Print the outcome of evaluation run, An evaluation run can involve multiple rulesets evaluated against a data source (Glue table).
467
+
468
+ Name Description Result EvaluatedMetrics EvaluationMessage
469
+ Rule_1 RowCount between 150000 and 600000 PASS {'Dataset.*.RowCount': 300000.0} NaN
470
+ Rule_2 IsComplete "marketplace" PASS {'Column.marketplace.Completeness': 1.0} NaN
471
+ Rule_3 ColumnLength "marketplace" between 1 and 2 FAIL {'Column.marketplace.MaximumLength': 9.0, 'Column.marketplace.MinimumLength': 3.0} Value: 9.0 does not meet the constraint requirement!
472
+
473
+ """
474
+ import pandas as pd
475
+
476
+ pd.set_option("display.max_rows", None)
477
+ pd.set_option("display.max_columns", None)
478
+ pd.set_option("display.width", None)
479
+ pd.set_option("display.max_colwidth", None)
480
+
481
+ self.log.info(
482
+ "AWS Glue data quality ruleset evaluation result for RulesetName: %s RulesetEvaluationRunId: %s Score: %s",
483
+ result.get("RulesetName"),
484
+ result.get("RulesetEvaluationRunId"),
485
+ result.get("Score"),
486
+ )
487
+
488
+ rule_results = result["RuleResults"]
489
+ rule_results_df = pd.DataFrame(rule_results)
490
+ self.log.info(rule_results_df)
491
+
492
+ def get_evaluation_run_results(self, run_id: str) -> dict[str, Any]:
493
+ response = self.conn.get_data_quality_ruleset_evaluation_run(RunId=run_id)
494
+
495
+ return self.conn.batch_get_data_quality_result(ResultIds=response["ResultIds"])
496
+
497
+ def validate_evaluation_run_results(
498
+ self, evaluation_run_id: str, show_results: bool = True, verify_result_status: bool = True
499
+ ) -> None:
500
+ results = self.get_evaluation_run_results(evaluation_run_id)
501
+ total_failed_rules = 0
502
+
503
+ if results.get("ResultsNotFound"):
504
+ self.log.info(
505
+ "AWS Glue data quality ruleset evaluation run, results not found for %s",
506
+ results["ResultsNotFound"],
507
+ )
508
+
509
+ for result in results["Results"]:
510
+ rule_results = result["RuleResults"]
511
+
512
+ total_failed_rules += len(
513
+ list(
514
+ filter(
515
+ lambda result: result.get("Result") == "FAIL" or result.get("Result") == "ERROR",
516
+ rule_results,
517
+ )
518
+ )
519
+ )
520
+
521
+ if show_results:
522
+ self._log_results(result)
523
+
524
+ self.log.info(
525
+ "AWS Glue data quality ruleset evaluation run, total number of rules failed: %s",
526
+ total_failed_rules,
527
+ )
528
+
529
+ if verify_result_status and total_failed_rules > 0:
530
+ raise AirflowException(
531
+ "AWS Glue data quality ruleset evaluation run failed for one or more rules"
532
+ )
533
+
534
+ def log_recommendation_results(self, run_id: str) -> None:
535
+ """
536
+ Print the outcome of recommendation run, recommendation run generates multiple rules against a data source (Glue table) in Data Quality Definition Language (DQDL) format.
537
+
538
+ Rules = [
539
+ IsComplete "NAME",
540
+ ColumnLength "EMP_ID" between 1 and 12,
541
+ IsUnique "EMP_ID",
542
+ ColumnValues "INCOME" > 50000
543
+ ]
544
+ """
545
+ result = self.conn.get_data_quality_rule_recommendation_run(RunId=run_id)
546
+
547
+ if result.get("RecommendedRuleset"):
548
+ self.log.info(
549
+ "AWS Glue data quality recommended rules for DatabaseName: %s TableName: %s",
550
+ result["DataSource"]["GlueTable"]["DatabaseName"],
551
+ result["DataSource"]["GlueTable"]["TableName"],
552
+ )
553
+ self.log.info(result["RecommendedRuleset"])
554
+ else:
555
+ self.log.info("AWS Glue data quality, no recommended rules available for RunId: %s", run_id)
@@ -20,14 +20,19 @@ from functools import cached_property
20
20
  from typing import TYPE_CHECKING
21
21
 
22
22
  import redshift_connector
23
+ from packaging.version import Version
23
24
  from redshift_connector import Connection as RedshiftConnection
24
25
  from sqlalchemy import create_engine
25
26
  from sqlalchemy.engine.url import URL
26
27
 
28
+ from airflow import __version__ as AIRFLOW_VERSION
27
29
  from airflow.exceptions import AirflowException
28
30
  from airflow.providers.amazon.aws.hooks.base_aws import AwsBaseHook
29
31
  from airflow.providers.common.sql.hooks.sql import DbApiHook
30
32
 
33
+ _IS_AIRFLOW_2_10_OR_HIGHER = Version(Version(AIRFLOW_VERSION).base_version) >= Version("2.10.0")
34
+
35
+
31
36
  if TYPE_CHECKING:
32
37
  from airflow.models.connection import Connection
33
38
  from airflow.providers.openlineage.sqlparser import DatabaseInfo
@@ -257,4 +262,6 @@ class RedshiftSQLHook(DbApiHook):
257
262
 
258
263
  def get_openlineage_default_schema(self) -> str | None:
259
264
  """Return current schema. This is usually changed with ``SEARCH_PATH`` parameter."""
260
- return self.get_first("SELECT CURRENT_SCHEMA();")[0]
265
+ if _IS_AIRFLOW_2_10_OR_HIGHER:
266
+ return self.get_first("SELECT CURRENT_SCHEMA();")[0]
267
+ return super().get_openlineage_default_schema()
@@ -20,7 +20,6 @@ import json
20
20
  from time import sleep
21
21
  from typing import TYPE_CHECKING, Any, Sequence
22
22
 
23
- import botocore
24
23
  from botocore.exceptions import ClientError
25
24
 
26
25
  from airflow.configuration import conf
@@ -38,7 +37,7 @@ from airflow.providers.amazon.aws.triggers.bedrock import (
38
37
  BedrockKnowledgeBaseActiveTrigger,
39
38
  BedrockProvisionModelThroughputCompletedTrigger,
40
39
  )
41
- from airflow.providers.amazon.aws.utils import get_botocore_version, validate_execute_complete_event
40
+ from airflow.providers.amazon.aws.utils import validate_execute_complete_event
42
41
  from airflow.providers.amazon.aws.utils.mixins import aws_template_fields
43
42
  from airflow.utils.helpers import prune_dict
44
43
  from airflow.utils.timezone import utcnow
@@ -799,24 +798,11 @@ class BedrockRaGOperator(AwsBaseOperator[BedrockAgentRuntimeHook]):
799
798
  def execute(self, context: Context) -> Any:
800
799
  self.validate_inputs()
801
800
 
802
- try:
803
- result = self.hook.conn.retrieve_and_generate(
804
- input={"text": self.input},
805
- retrieveAndGenerateConfiguration=self.build_rag_config(),
806
- **self.rag_kwargs,
807
- )
808
- except botocore.exceptions.ParamValidationError as error:
809
- if (
810
- 'Unknown parameter in retrieveAndGenerateConfiguration: "externalSourcesConfiguration"'
811
- in str(error)
812
- ) and (self.source_type == "EXTERNAL_SOURCES"):
813
- self.log.error(
814
- "You are attempting to use External Sources and the BOTO API returned an "
815
- "error message which may indicate the need to update botocore to do this. \n"
816
- "Support for External Sources was added in botocore 1.34.90 and you are using botocore %s",
817
- ".".join(map(str, get_botocore_version())),
818
- )
819
- raise
801
+ result = self.hook.conn.retrieve_and_generate(
802
+ input={"text": self.input},
803
+ retrieveAndGenerateConfiguration=self.build_rag_config(),
804
+ **self.rag_kwargs,
805
+ )
820
806
 
821
807
  self.log.info(
822
808
  "\nPrompt: %s\nResponse: %s\nCitations: %s",
@@ -23,7 +23,10 @@ from airflow.configuration import conf
23
23
  from airflow.exceptions import AirflowException
24
24
  from airflow.providers.amazon.aws.hooks.comprehend import ComprehendHook
25
25
  from airflow.providers.amazon.aws.operators.base_aws import AwsBaseOperator
26
- from airflow.providers.amazon.aws.triggers.comprehend import ComprehendPiiEntitiesDetectionJobCompletedTrigger
26
+ from airflow.providers.amazon.aws.triggers.comprehend import (
27
+ ComprehendCreateDocumentClassifierCompletedTrigger,
28
+ ComprehendPiiEntitiesDetectionJobCompletedTrigger,
29
+ )
27
30
  from airflow.providers.amazon.aws.utils import validate_execute_complete_event
28
31
  from airflow.providers.amazon.aws.utils.mixins import aws_template_fields
29
32
  from airflow.utils.timezone import utcnow
@@ -190,3 +193,147 @@ class ComprehendStartPiiEntitiesDetectionJobOperator(ComprehendBaseOperator):
190
193
 
191
194
  self.log.info("Comprehend pii entities detection job `%s` complete.", event["job_id"])
192
195
  return event["job_id"]
196
+
197
+
198
+ class ComprehendCreateDocumentClassifierOperator(AwsBaseOperator[ComprehendHook]):
199
+ """
200
+ Create a comprehend document classifier that can categorize documents.
201
+
202
+ Provide a set of training documents that are labeled with the categories.
203
+
204
+ .. seealso::
205
+ For more information on how to use this operator, take a look at the guide:
206
+ :ref:`howto/operator:ComprehendCreateDocumentClassifierOperator`
207
+
208
+ :param document_classifier_name: The name of the document classifier. (templated)
209
+ :param input_data_config: Specifies the format and location of the input data for the job. (templated)
210
+ :param mode: Indicates the mode in which the classifier will be trained. (templated)
211
+ :param data_access_role_arn: The Amazon Resource Name (ARN) of the IAM role that grants Amazon Comprehend
212
+ read access to your input data. (templated)
213
+ :param language_code: The language of the input documents. You can specify any of the languages supported by
214
+ Amazon Comprehend. All documents must be in the same language. (templated)
215
+ :param fail_on_warnings: If set to True, the document classifier training job will throw an error when the
216
+ status is TRAINED_WITH_WARNING. (default False)
217
+ :param output_data_config: Specifies the location for the output files from a custom classifier job.
218
+ This parameter is required for a request that creates a native document model. (templated)
219
+ :param document_classifier_kwargs: Any optional parameters to pass to the document classifier. (templated)
220
+
221
+ :param wait_for_completion: Whether to wait for job to stop. (default: True)
222
+ :param waiter_delay: Time in seconds to wait between status checks. (default: 60)
223
+ :param waiter_max_attempts: Maximum number of attempts to check for job completion. (default: 20)
224
+ :param deferrable: If True, the operator will wait asynchronously for the job to stop.
225
+ This implies waiting for completion. This mode requires aiobotocore module to be installed.
226
+ (default: False)
227
+ :param aws_conn_id: The Airflow connection used for AWS credentials.
228
+ If this is ``None`` or empty then the default boto3 behaviour is used. If
229
+ running Airflow in a distributed manner and aws_conn_id is None or
230
+ empty, then default boto3 configuration would be used (and must be
231
+ maintained on each worker node).
232
+ :param region_name: AWS region_name. If not specified then the default boto3 behaviour is used.
233
+ :param verify: Whether to verify SSL certificates. See:
234
+ https://boto3.amazonaws.com/v1/documentation/api/latest/reference/core/session.html
235
+ :param botocore_config: Configuration dictionary (key-values) for botocore client. See:
236
+ https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html
237
+ """
238
+
239
+ aws_hook_class = ComprehendHook
240
+
241
+ template_fields: Sequence[str] = aws_template_fields(
242
+ "document_classifier_name",
243
+ "input_data_config",
244
+ "mode",
245
+ "data_access_role_arn",
246
+ "language_code",
247
+ "output_data_config",
248
+ "document_classifier_kwargs",
249
+ )
250
+
251
+ template_fields_renderers: dict = {
252
+ "input_data_config": "json",
253
+ "output_data_config": "json",
254
+ "document_classifier_kwargs": "json",
255
+ }
256
+
257
+ def __init__(
258
+ self,
259
+ document_classifier_name: str,
260
+ input_data_config: dict[str, Any],
261
+ mode: str,
262
+ data_access_role_arn: str,
263
+ language_code: str,
264
+ fail_on_warnings: bool = False,
265
+ output_data_config: dict[str, Any] | None = None,
266
+ document_classifier_kwargs: dict[str, Any] | None = None,
267
+ wait_for_completion: bool = True,
268
+ waiter_delay: int = 60,
269
+ waiter_max_attempts: int = 20,
270
+ deferrable: bool = conf.getboolean("operators", "default_deferrable", fallback=False),
271
+ aws_conn_id: str | None = "aws_default",
272
+ **kwargs,
273
+ ):
274
+ super().__init__(**kwargs)
275
+ self.document_classifier_name = document_classifier_name
276
+ self.input_data_config = input_data_config
277
+ self.mode = mode
278
+ self.data_access_role_arn = data_access_role_arn
279
+ self.language_code = language_code
280
+ self.fail_on_warnings = fail_on_warnings
281
+ self.output_data_config = output_data_config
282
+ self.document_classifier_kwargs = document_classifier_kwargs or {}
283
+ self.wait_for_completion = wait_for_completion
284
+ self.waiter_delay = waiter_delay
285
+ self.waiter_max_attempts = waiter_max_attempts
286
+ self.deferrable = deferrable
287
+ self.aws_conn_id = aws_conn_id
288
+
289
+ def execute(self, context: Context) -> str:
290
+ if self.output_data_config:
291
+ self.document_classifier_kwargs["OutputDataConfig"] = self.output_data_config
292
+
293
+ document_classifier_arn = self.hook.conn.create_document_classifier(
294
+ DocumentClassifierName=self.document_classifier_name,
295
+ InputDataConfig=self.input_data_config,
296
+ Mode=self.mode,
297
+ DataAccessRoleArn=self.data_access_role_arn,
298
+ LanguageCode=self.language_code,
299
+ **self.document_classifier_kwargs,
300
+ )["DocumentClassifierArn"]
301
+
302
+ message_description = f"document classifier {document_classifier_arn} to complete."
303
+ if self.deferrable:
304
+ self.log.info("Deferring %s", message_description)
305
+ self.defer(
306
+ trigger=ComprehendCreateDocumentClassifierCompletedTrigger(
307
+ document_classifier_arn=document_classifier_arn,
308
+ waiter_delay=self.waiter_delay,
309
+ waiter_max_attempts=self.waiter_max_attempts,
310
+ aws_conn_id=self.aws_conn_id,
311
+ ),
312
+ method_name="execute_complete",
313
+ )
314
+ elif self.wait_for_completion:
315
+ self.log.info("Waiting for %s", message_description)
316
+
317
+ self.hook.get_waiter("create_document_classifier_complete").wait(
318
+ DocumentClassifierArn=document_classifier_arn,
319
+ WaiterConfig={"Delay": self.waiter_delay, "MaxAttempts": self.waiter_max_attempts},
320
+ )
321
+
322
+ self.hook.validate_document_classifier_training_status(
323
+ document_classifier_arn=document_classifier_arn, fail_on_warnings=self.fail_on_warnings
324
+ )
325
+
326
+ return document_classifier_arn
327
+
328
+ def execute_complete(self, context: Context, event: dict[str, Any] | None = None) -> str:
329
+ event = validate_execute_complete_event(event)
330
+ if event["status"] != "success":
331
+ raise AirflowException("Error while running comprehend create document classifier: %s", event)
332
+
333
+ self.hook.validate_document_classifier_training_status(
334
+ document_classifier_arn=event["document_classifier_arn"], fail_on_warnings=self.fail_on_warnings
335
+ )
336
+
337
+ self.log.info("Comprehend document classifier `%s` complete.", event["document_classifier_arn"])
338
+
339
+ return event["document_classifier_arn"]