apache-airflow-providers-amazon 8.19.0rc1__tar.gz → 8.20.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 (235) hide show
  1. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/PKG-INFO +10 -9
  2. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/README.rst +4 -4
  3. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/__init__.py +1 -1
  4. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/auth_manager/avp/entities.py +4 -2
  5. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/auth_manager/avp/facade.py +22 -7
  6. {apache_airflow_providers_amazon-8.19.0rc1/airflow/providers/amazon/aws/auth_manager/cli → apache_airflow_providers_amazon-8.20.0/airflow/providers/amazon/aws/auth_manager/avp}/schema.json +34 -2
  7. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/auth_manager/aws_auth_manager.py +91 -170
  8. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/auth_manager/cli/avp_commands.py +7 -32
  9. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/auth_manager/cli/definition.py +1 -1
  10. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/auth_manager/cli/idc_commands.py +1 -0
  11. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/auth_manager/views/auth.py +1 -1
  12. apache_airflow_providers_amazon-8.20.0/airflow/providers/amazon/aws/executors/batch/batch_executor.py +420 -0
  13. apache_airflow_providers_amazon-8.20.0/airflow/providers/amazon/aws/executors/batch/batch_executor_config.py +87 -0
  14. apache_airflow_providers_amazon-8.20.0/airflow/providers/amazon/aws/executors/batch/boto_schema.py +67 -0
  15. apache_airflow_providers_amazon-8.20.0/airflow/providers/amazon/aws/executors/batch/utils.py +160 -0
  16. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/executors/ecs/ecs_executor.py +61 -18
  17. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/executors/ecs/utils.py +8 -13
  18. apache_airflow_providers_amazon-8.20.0/airflow/providers/amazon/aws/executors/utils/base_config_keys.py +25 -0
  19. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/hooks/athena.py +1 -0
  20. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/hooks/base_aws.py +1 -0
  21. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/hooks/batch_client.py +4 -3
  22. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/hooks/batch_waiters.py +1 -0
  23. apache_airflow_providers_amazon-8.20.0/airflow/providers/amazon/aws/hooks/bedrock.py +59 -0
  24. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/hooks/chime.py +1 -0
  25. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/hooks/cloud_formation.py +1 -0
  26. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/hooks/datasync.py +1 -0
  27. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/hooks/dynamodb.py +1 -0
  28. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/hooks/eks.py +1 -0
  29. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/hooks/glue.py +13 -5
  30. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/hooks/glue_catalog.py +1 -0
  31. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/hooks/kinesis.py +1 -0
  32. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/hooks/lambda_function.py +1 -0
  33. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/hooks/rds.py +1 -0
  34. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/hooks/s3.py +24 -30
  35. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/hooks/ses.py +1 -0
  36. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/hooks/sns.py +1 -0
  37. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/hooks/sqs.py +1 -0
  38. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/operators/athena.py +2 -2
  39. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/operators/base_aws.py +4 -1
  40. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/operators/batch.py +4 -2
  41. apache_airflow_providers_amazon-8.20.0/airflow/providers/amazon/aws/operators/bedrock.py +252 -0
  42. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/operators/cloud_formation.py +1 -0
  43. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/operators/datasync.py +1 -0
  44. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/operators/ecs.py +9 -10
  45. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/operators/eks.py +1 -0
  46. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/operators/emr.py +57 -7
  47. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/operators/s3.py +1 -0
  48. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/operators/sns.py +1 -0
  49. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/operators/sqs.py +1 -0
  50. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/secrets/secrets_manager.py +1 -0
  51. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/secrets/systems_manager.py +1 -0
  52. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/sensors/base_aws.py +4 -1
  53. apache_airflow_providers_amazon-8.20.0/airflow/providers/amazon/aws/sensors/bedrock.py +110 -0
  54. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/sensors/cloud_formation.py +1 -0
  55. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/sensors/eks.py +3 -4
  56. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/sensors/sqs.py +2 -1
  57. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/transfers/azure_blob_to_s3.py +4 -2
  58. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/transfers/base.py +1 -0
  59. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/transfers/exasol_to_s3.py +1 -0
  60. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/transfers/gcs_to_s3.py +1 -0
  61. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/transfers/google_api_to_s3.py +1 -0
  62. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/transfers/hive_to_dynamodb.py +1 -0
  63. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/transfers/http_to_s3.py +1 -0
  64. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/transfers/imap_attachment_to_s3.py +1 -0
  65. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/transfers/redshift_to_s3.py +21 -19
  66. apache_airflow_providers_amazon-8.20.0/airflow/providers/amazon/aws/triggers/bedrock.py +61 -0
  67. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/triggers/eks.py +1 -1
  68. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/triggers/redshift_cluster.py +1 -0
  69. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/triggers/s3.py +4 -2
  70. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/triggers/sagemaker.py +6 -4
  71. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/utils/emailer.py +1 -0
  72. apache_airflow_providers_amazon-8.20.0/airflow/providers/amazon/aws/waiters/__init__.py +16 -0
  73. apache_airflow_providers_amazon-8.20.0/airflow/providers/amazon/aws/waiters/bedrock.json +42 -0
  74. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/get_provider_info.py +86 -1
  75. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/pyproject.toml +6 -5
  76. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/LICENSE +0 -0
  77. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/__init__.py +0 -0
  78. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/auth_manager/__init__.py +0 -0
  79. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/auth_manager/avp/__init__.py +0 -0
  80. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/auth_manager/cli/__init__.py +0 -0
  81. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/auth_manager/constants.py +0 -0
  82. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/auth_manager/security_manager/__init__.py +0 -0
  83. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/auth_manager/security_manager/aws_security_manager_override.py +0 -0
  84. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/auth_manager/user.py +0 -0
  85. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/auth_manager/views/__init__.py +0 -0
  86. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/exceptions.py +0 -0
  87. {apache_airflow_providers_amazon-8.19.0rc1/airflow/providers/amazon/aws/executors/ecs → apache_airflow_providers_amazon-8.20.0/airflow/providers/amazon/aws/executors}/Dockerfile +0 -0
  88. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/executors/__init__.py +0 -0
  89. {apache_airflow_providers_amazon-8.19.0rc1/airflow/providers/amazon/aws/executors/ecs → apache_airflow_providers_amazon-8.20.0/airflow/providers/amazon/aws/executors/batch}/__init__.py +0 -0
  90. {apache_airflow_providers_amazon-8.19.0rc1/airflow/providers/amazon/aws/executors/utils → apache_airflow_providers_amazon-8.20.0/airflow/providers/amazon/aws/executors/ecs}/__init__.py +0 -0
  91. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/executors/ecs/boto_schema.py +0 -0
  92. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/executors/ecs/ecs_executor_config.py +0 -0
  93. {apache_airflow_providers_amazon-8.19.0rc1/airflow/providers/amazon/aws/fs → apache_airflow_providers_amazon-8.20.0/airflow/providers/amazon/aws/executors/utils}/__init__.py +0 -0
  94. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/executors/utils/exponential_backoff_retry.py +0 -0
  95. {apache_airflow_providers_amazon-8.19.0rc1/airflow/providers/amazon/aws/hooks → apache_airflow_providers_amazon-8.20.0/airflow/providers/amazon/aws/fs}/__init__.py +0 -0
  96. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/fs/s3.py +0 -0
  97. {apache_airflow_providers_amazon-8.19.0rc1/airflow/providers/amazon/aws/links → apache_airflow_providers_amazon-8.20.0/airflow/providers/amazon/aws/hooks}/__init__.py +0 -0
  98. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/hooks/appflow.py +0 -0
  99. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/hooks/athena_sql.py +0 -0
  100. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/hooks/batch_waiters.json +0 -0
  101. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/hooks/dms.py +0 -0
  102. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/hooks/ec2.py +0 -0
  103. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/hooks/ecr.py +0 -0
  104. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/hooks/ecs.py +0 -0
  105. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/hooks/elasticache_replication_group.py +0 -0
  106. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/hooks/emr.py +0 -0
  107. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/hooks/eventbridge.py +0 -0
  108. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/hooks/glacier.py +0 -0
  109. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/hooks/glue_crawler.py +0 -0
  110. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/hooks/glue_databrew.py +0 -0
  111. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/hooks/logs.py +0 -0
  112. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/hooks/neptune.py +0 -0
  113. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/hooks/quicksight.py +0 -0
  114. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/hooks/redshift_cluster.py +0 -0
  115. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/hooks/redshift_data.py +0 -0
  116. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/hooks/redshift_sql.py +0 -0
  117. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/hooks/sagemaker.py +0 -0
  118. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/hooks/secrets_manager.py +0 -0
  119. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/hooks/ssm.py +0 -0
  120. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/hooks/step_function.py +0 -0
  121. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/hooks/sts.py +0 -0
  122. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/hooks/verified_permissions.py +0 -0
  123. {apache_airflow_providers_amazon-8.19.0rc1/airflow/providers/amazon/aws/log → apache_airflow_providers_amazon-8.20.0/airflow/providers/amazon/aws/links}/__init__.py +0 -0
  124. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/links/athena.py +0 -0
  125. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/links/base_aws.py +0 -0
  126. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/links/batch.py +0 -0
  127. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/links/emr.py +0 -0
  128. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/links/glue.py +0 -0
  129. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/links/logs.py +0 -0
  130. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/links/step_function.py +0 -0
  131. {apache_airflow_providers_amazon-8.19.0rc1/airflow/providers/amazon/aws/notifications → apache_airflow_providers_amazon-8.20.0/airflow/providers/amazon/aws/log}/__init__.py +0 -0
  132. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/log/cloudwatch_task_handler.py +0 -0
  133. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/log/s3_task_handler.py +0 -0
  134. {apache_airflow_providers_amazon-8.19.0rc1/airflow/providers/amazon/aws/operators → apache_airflow_providers_amazon-8.20.0/airflow/providers/amazon/aws/notifications}/__init__.py +0 -0
  135. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/notifications/chime.py +0 -0
  136. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/notifications/sns.py +0 -0
  137. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/notifications/sqs.py +0 -0
  138. {apache_airflow_providers_amazon-8.19.0rc1/airflow/providers/amazon/aws/secrets → apache_airflow_providers_amazon-8.20.0/airflow/providers/amazon/aws/operators}/__init__.py +0 -0
  139. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/operators/appflow.py +0 -0
  140. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/operators/dms.py +0 -0
  141. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/operators/ec2.py +0 -0
  142. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/operators/eventbridge.py +0 -0
  143. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/operators/glacier.py +0 -0
  144. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/operators/glue.py +0 -0
  145. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/operators/glue_crawler.py +0 -0
  146. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/operators/glue_databrew.py +0 -0
  147. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/operators/lambda_function.py +0 -0
  148. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/operators/neptune.py +0 -0
  149. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/operators/quicksight.py +0 -0
  150. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/operators/rds.py +0 -0
  151. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/operators/redshift_cluster.py +0 -0
  152. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/operators/redshift_data.py +0 -0
  153. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/operators/sagemaker.py +0 -0
  154. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/operators/step_function.py +0 -0
  155. {apache_airflow_providers_amazon-8.19.0rc1/airflow/providers/amazon/aws/sensors → apache_airflow_providers_amazon-8.20.0/airflow/providers/amazon/aws/secrets}/__init__.py +0 -0
  156. {apache_airflow_providers_amazon-8.19.0rc1/airflow/providers/amazon/aws/transfers → apache_airflow_providers_amazon-8.20.0/airflow/providers/amazon/aws/sensors}/__init__.py +0 -0
  157. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/sensors/athena.py +0 -0
  158. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/sensors/batch.py +0 -0
  159. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/sensors/dms.py +0 -0
  160. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/sensors/dynamodb.py +0 -0
  161. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/sensors/ec2.py +0 -0
  162. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/sensors/ecs.py +0 -0
  163. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/sensors/emr.py +0 -0
  164. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/sensors/glacier.py +0 -0
  165. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/sensors/glue.py +0 -0
  166. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/sensors/glue_catalog_partition.py +0 -0
  167. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/sensors/glue_crawler.py +0 -0
  168. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/sensors/lambda_function.py +0 -0
  169. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/sensors/quicksight.py +0 -0
  170. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/sensors/rds.py +0 -0
  171. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/sensors/redshift_cluster.py +0 -0
  172. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/sensors/s3.py +0 -0
  173. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/sensors/sagemaker.py +0 -0
  174. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/sensors/step_function.py +0 -0
  175. {apache_airflow_providers_amazon-8.19.0rc1/airflow/providers/amazon/aws/waiters → apache_airflow_providers_amazon-8.20.0/airflow/providers/amazon/aws/transfers}/__init__.py +0 -0
  176. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/transfers/dynamodb_to_s3.py +0 -0
  177. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/transfers/ftp_to_s3.py +0 -0
  178. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/transfers/glacier_to_gcs.py +0 -0
  179. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/transfers/local_to_s3.py +0 -0
  180. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/transfers/mongo_to_s3.py +0 -0
  181. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/transfers/s3_to_ftp.py +0 -0
  182. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/transfers/s3_to_redshift.py +0 -0
  183. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/transfers/s3_to_sftp.py +0 -0
  184. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/transfers/s3_to_sql.py +0 -0
  185. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/transfers/salesforce_to_s3.py +0 -0
  186. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/transfers/sftp_to_s3.py +0 -0
  187. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/transfers/sql_to_s3.py +0 -0
  188. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/triggers/README.md +0 -0
  189. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/triggers/__init__.py +0 -0
  190. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/triggers/athena.py +0 -0
  191. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/triggers/base.py +0 -0
  192. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/triggers/batch.py +0 -0
  193. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/triggers/ec2.py +0 -0
  194. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/triggers/ecs.py +0 -0
  195. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/triggers/emr.py +0 -0
  196. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/triggers/glue.py +0 -0
  197. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/triggers/glue_crawler.py +0 -0
  198. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/triggers/glue_databrew.py +0 -0
  199. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/triggers/lambda_function.py +0 -0
  200. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/triggers/neptune.py +0 -0
  201. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/triggers/rds.py +0 -0
  202. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/triggers/redshift_data.py +0 -0
  203. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/triggers/sqs.py +0 -0
  204. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/triggers/step_function.py +0 -0
  205. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/utils/__init__.py +0 -0
  206. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/utils/connection_wrapper.py +0 -0
  207. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/utils/eks_get_token.py +0 -0
  208. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/utils/identifiers.py +0 -0
  209. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/utils/mixins.py +0 -0
  210. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/utils/rds.py +0 -0
  211. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/utils/redshift.py +0 -0
  212. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/utils/sagemaker.py +0 -0
  213. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/utils/sqs.py +0 -0
  214. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/utils/suppress.py +0 -0
  215. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/utils/tags.py +0 -0
  216. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/utils/task_log_fetcher.py +0 -0
  217. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/utils/waiter.py +0 -0
  218. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/utils/waiter_with_logging.py +0 -0
  219. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/waiters/README.md +0 -0
  220. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/waiters/appflow.json +0 -0
  221. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/waiters/athena.json +0 -0
  222. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/waiters/base_waiter.py +0 -0
  223. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/waiters/batch.json +0 -0
  224. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/waiters/databrew.json +0 -0
  225. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/waiters/dynamodb.json +0 -0
  226. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/waiters/ecs.json +0 -0
  227. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/waiters/eks.json +0 -0
  228. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/waiters/emr-containers.json +0 -0
  229. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/waiters/emr-serverless.json +0 -0
  230. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/waiters/emr.json +0 -0
  231. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/waiters/glue.json +0 -0
  232. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/waiters/neptune.json +0 -0
  233. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/waiters/redshift.json +0 -0
  234. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.0}/airflow/providers/amazon/aws/waiters/sagemaker.json +0 -0
  235. {apache_airflow_providers_amazon-8.19.0rc1 → apache_airflow_providers_amazon-8.20.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.19.0rc1
3
+ Version: 8.20.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>
@@ -19,11 +19,12 @@ Classifier: Programming Language :: Python :: 3.8
19
19
  Classifier: Programming Language :: Python :: 3.9
20
20
  Classifier: Programming Language :: Python :: 3.10
21
21
  Classifier: Programming Language :: Python :: 3.11
22
+ Classifier: Programming Language :: Python :: 3.12
22
23
  Classifier: Topic :: System :: Monitoring
23
24
  Requires-Dist: PyAthena>=3.0.10
24
- Requires-Dist: apache-airflow-providers-common-sql>=1.3.1.dev0
25
+ Requires-Dist: apache-airflow-providers-common-sql>=1.3.1
25
26
  Requires-Dist: apache-airflow-providers-http
26
- Requires-Dist: apache-airflow>=2.6.0.dev0
27
+ Requires-Dist: apache-airflow>=2.6.0
27
28
  Requires-Dist: asgiref
28
29
  Requires-Dist: boto3>=1.33.0
29
30
  Requires-Dist: botocore>=1.33.0
@@ -50,8 +51,8 @@ Requires-Dist: s3fs>=2023.10.0 ; extra == "s3fs"
50
51
  Requires-Dist: apache-airflow-providers-salesforce ; extra == "salesforce"
51
52
  Requires-Dist: apache-airflow-providers-ssh ; extra == "ssh"
52
53
  Project-URL: Bug Tracker, https://github.com/apache/airflow/issues
53
- Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-amazon/8.19.0/changelog.html
54
- Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-amazon/8.19.0
54
+ Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-amazon/8.20.0/changelog.html
55
+ Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-amazon/8.20.0
55
56
  Project-URL: Slack Chat, https://s.apache.org/airflow-slack
56
57
  Project-URL: Source Code, https://github.com/apache/airflow
57
58
  Project-URL: Twitter, https://twitter.com/ApacheAirflow
@@ -118,7 +119,7 @@ Provides-Extra: ssh
118
119
 
119
120
  Package ``apache-airflow-providers-amazon``
120
121
 
121
- Release: ``8.19.0.rc1``
122
+ Release: ``8.20.0``
122
123
 
123
124
 
124
125
  Amazon integration (including `Amazon Web Services (AWS) <https://aws.amazon.com/>`__).
@@ -131,7 +132,7 @@ This is a provider package for ``amazon`` provider. All classes for this provide
131
132
  are in ``airflow.providers.amazon`` python package.
132
133
 
133
134
  You can find package information and changelog for the provider
134
- in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-amazon/8.19.0/>`_.
135
+ in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-amazon/8.20.0/>`_.
135
136
 
136
137
  Installation
137
138
  ------------
@@ -140,7 +141,7 @@ You can install this package on top of an existing Airflow 2 installation (see `
140
141
  for the minimum Airflow version supported) via
141
142
  ``pip install apache-airflow-providers-amazon``
142
143
 
143
- The package supports the following python versions: 3.8,3.9,3.10,3.11
144
+ The package supports the following python versions: 3.8,3.9,3.10,3.11,3.12
144
145
 
145
146
  Requirements
146
147
  ------------
@@ -194,4 +195,4 @@ Dependent package
194
195
  ====================================================================================================================== ===================
195
196
 
196
197
  The changelog for the provider package can be found in the
197
- `changelog <https://airflow.apache.org/docs/apache-airflow-providers-amazon/8.19.0/changelog.html>`_.
198
+ `changelog <https://airflow.apache.org/docs/apache-airflow-providers-amazon/8.20.0/changelog.html>`_.
@@ -42,7 +42,7 @@
42
42
 
43
43
  Package ``apache-airflow-providers-amazon``
44
44
 
45
- Release: ``8.19.0.rc1``
45
+ Release: ``8.20.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.19.0/>`_.
58
+ in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-amazon/8.20.0/>`_.
59
59
 
60
60
  Installation
61
61
  ------------
@@ -64,7 +64,7 @@ You can install this package on top of an existing Airflow 2 installation (see `
64
64
  for the minimum Airflow version supported) via
65
65
  ``pip install apache-airflow-providers-amazon``
66
66
 
67
- The package supports the following python versions: 3.8,3.9,3.10,3.11
67
+ The package supports the following python versions: 3.8,3.9,3.10,3.11,3.12
68
68
 
69
69
  Requirements
70
70
  ------------
@@ -118,4 +118,4 @@ Dependent package
118
118
  ====================================================================================================================== ===================
119
119
 
120
120
  The changelog for the provider package can be found in the
121
- `changelog <https://airflow.apache.org/docs/apache-airflow-providers-amazon/8.19.0/changelog.html>`_.
121
+ `changelog <https://airflow.apache.org/docs/apache-airflow-providers-amazon/8.20.0/changelog.html>`_.
@@ -27,7 +27,7 @@ import packaging.version
27
27
 
28
28
  __all__ = ["__version__"]
29
29
 
30
- __version__ = "8.19.0"
30
+ __version__ = "8.20.0"
31
31
 
32
32
  try:
33
33
  from airflow import __version__ as airflow_version
@@ -29,14 +29,16 @@ class AvpEntities(Enum):
29
29
  """Enum of Amazon Verified Permissions entities."""
30
30
 
31
31
  ACTION = "Action"
32
- ROLE = "Role"
32
+ GROUP = "Group"
33
33
  USER = "User"
34
34
 
35
35
  # Resource types
36
36
  CONFIGURATION = "Configuration"
37
37
  CONNECTION = "Connection"
38
+ CUSTOM = "Custom"
38
39
  DAG = "Dag"
39
40
  DATASET = "Dataset"
41
+ MENU = "Menu"
40
42
  POOL = "Pool"
41
43
  VARIABLE = "Variable"
42
44
  VIEW = "View"
@@ -48,7 +50,7 @@ def get_entity_type(resource_type: AvpEntities) -> str:
48
50
 
49
51
  :param resource_type: Resource type.
50
52
 
51
- Example: Airflow::Action, Airflow::Role, Airflow::Variable, Airflow::User.
53
+ Example: Airflow::Action, Airflow::Group, Airflow::Variable, Airflow::User.
52
54
  """
53
55
  return AVP_PREFIX_ENTITIES + resource_type.value
54
56
 
@@ -16,7 +16,9 @@
16
16
  # under the License.
17
17
  from __future__ import annotations
18
18
 
19
+ import json
19
20
  from functools import cached_property
21
+ from pathlib import Path
20
22
  from typing import TYPE_CHECKING, Sequence, TypedDict
21
23
 
22
24
  from airflow.configuration import conf
@@ -94,7 +96,7 @@ class AwsAuthManagerAmazonVerifiedPermissionsFacade(LoggingMixin):
94
96
  if user is None:
95
97
  return False
96
98
 
97
- entity_list = self._get_user_role_entities(user)
99
+ entity_list = self._get_user_group_entities(user)
98
100
 
99
101
  self.log.debug(
100
102
  "Making authorization request for user=%s, method=%s, entity_type=%s, entity_id=%s",
@@ -144,7 +146,7 @@ class AwsAuthManagerAmazonVerifiedPermissionsFacade(LoggingMixin):
144
146
  :param requests: the list of requests containing the method, the entity_type and the entity ID
145
147
  :param user: the user
146
148
  """
147
- entity_list = self._get_user_role_entities(user)
149
+ entity_list = self._get_user_group_entities(user)
148
150
 
149
151
  self.log.debug("Making batch authorization request for user=%s, requests=%s", user.get_id(), requests)
150
152
 
@@ -222,20 +224,33 @@ class AwsAuthManagerAmazonVerifiedPermissionsFacade(LoggingMixin):
222
224
  )
223
225
  raise AirflowException("Could not find the authorization result.")
224
226
 
227
+ def is_policy_store_schema_up_to_date(self) -> bool:
228
+ """Return whether the policy store schema equals the latest version of the schema."""
229
+ resp = self.avp_client.get_schema(
230
+ policyStoreId=self.avp_policy_store_id,
231
+ )
232
+ policy_store_schema = json.loads(resp["schema"])
233
+
234
+ schema_path = Path(__file__).parents[0] / "schema.json"
235
+ with open(schema_path) as schema_file:
236
+ latest_schema = json.load(schema_file)
237
+
238
+ return policy_store_schema == latest_schema
239
+
225
240
  @staticmethod
226
- def _get_user_role_entities(user: AwsAuthManagerUser) -> list[dict]:
241
+ def _get_user_group_entities(user: AwsAuthManagerUser) -> list[dict]:
227
242
  user_entity = {
228
243
  "identifier": {"entityType": get_entity_type(AvpEntities.USER), "entityId": user.get_id()},
229
244
  "parents": [
230
- {"entityType": get_entity_type(AvpEntities.ROLE), "entityId": group}
245
+ {"entityType": get_entity_type(AvpEntities.GROUP), "entityId": group}
231
246
  for group in user.get_groups()
232
247
  ],
233
248
  }
234
- role_entities = [
235
- {"identifier": {"entityType": get_entity_type(AvpEntities.ROLE), "entityId": group}}
249
+ group_entities = [
250
+ {"identifier": {"entityType": get_entity_type(AvpEntities.GROUP), "entityId": group}}
236
251
  for group in user.get_groups()
237
252
  ]
238
- return [user_entity, *role_entities]
253
+ return [user_entity, *group_entities]
239
254
 
240
255
  @staticmethod
241
256
  def _build_context(context: dict | None) -> dict | None:
@@ -25,6 +25,30 @@
25
25
  "resourceTypes": ["Connection"]
26
26
  }
27
27
  },
28
+ "Custom.DELETE": {
29
+ "appliesTo": {
30
+ "principalTypes": ["User"],
31
+ "resourceTypes": ["Custom"]
32
+ }
33
+ },
34
+ "Custom.GET": {
35
+ "appliesTo": {
36
+ "principalTypes": ["User"],
37
+ "resourceTypes": ["Custom"]
38
+ }
39
+ },
40
+ "Custom.POST": {
41
+ "appliesTo": {
42
+ "principalTypes": ["User"],
43
+ "resourceTypes": ["Custom"]
44
+ }
45
+ },
46
+ "Custom.PUT": {
47
+ "appliesTo": {
48
+ "principalTypes": ["User"],
49
+ "resourceTypes": ["Custom"]
50
+ }
51
+ },
28
52
  "Configuration.GET": {
29
53
  "appliesTo": {
30
54
  "principalTypes": ["User"],
@@ -97,6 +121,12 @@
97
121
  "resourceTypes": ["Dataset"]
98
122
  }
99
123
  },
124
+ "Menu.MENU": {
125
+ "appliesTo": {
126
+ "principalTypes": ["User"],
127
+ "resourceTypes": ["Menu"]
128
+ }
129
+ },
100
130
  "Pool.DELETE": {
101
131
  "appliesTo": {
102
132
  "principalTypes": ["User"],
@@ -155,13 +185,15 @@
155
185
  "entityTypes": {
156
186
  "Configuration": {},
157
187
  "Connection": {},
188
+ "Custom": {},
158
189
  "Dag": {},
159
190
  "Dataset": {},
191
+ "Menu": {},
160
192
  "Pool": {},
161
- "Role": {},
193
+ "Group": {},
162
194
  "User": {
163
195
  "memberOfTypes": [
164
- "Role"
196
+ "Group"
165
197
  ]
166
198
  },
167
199
  "Variable": {},
@@ -17,14 +17,15 @@
17
17
  from __future__ import annotations
18
18
 
19
19
  import argparse
20
+ from collections import defaultdict
20
21
  from functools import cached_property
21
- from typing import TYPE_CHECKING, Sequence, cast
22
+ from typing import TYPE_CHECKING, Container, Sequence, cast
22
23
 
23
24
  from flask import session, url_for
24
25
 
25
26
  from airflow.cli.cli_config import CLICommand, DefaultHelpParser, GroupCommand
26
27
  from airflow.configuration import conf
27
- from airflow.exceptions import AirflowException, AirflowOptionalProviderFeatureException
28
+ from airflow.exceptions import AirflowOptionalProviderFeatureException
28
29
  from airflow.providers.amazon.aws.auth_manager.avp.entities import AvpEntities
29
30
  from airflow.providers.amazon.aws.auth_manager.avp.facade import (
30
31
  AwsAuthManagerAmazonVerifiedPermissionsFacade,
@@ -40,28 +41,6 @@ from airflow.providers.amazon.aws.auth_manager.constants import (
40
41
  from airflow.providers.amazon.aws.auth_manager.security_manager.aws_security_manager_override import (
41
42
  AwsSecurityManagerOverride,
42
43
  )
43
- from airflow.security.permissions import (
44
- RESOURCE_AUDIT_LOG,
45
- RESOURCE_CLUSTER_ACTIVITY,
46
- RESOURCE_CONFIG,
47
- RESOURCE_CONNECTION,
48
- RESOURCE_DAG,
49
- RESOURCE_DAG_CODE,
50
- RESOURCE_DAG_DEPENDENCIES,
51
- RESOURCE_DAG_RUN,
52
- RESOURCE_DATASET,
53
- RESOURCE_DOCS,
54
- RESOURCE_JOB,
55
- RESOURCE_PLUGIN,
56
- RESOURCE_POOL,
57
- RESOURCE_PROVIDER,
58
- RESOURCE_SLA_MISS,
59
- RESOURCE_TASK_INSTANCE,
60
- RESOURCE_TASK_RESCHEDULE,
61
- RESOURCE_TRIGGER,
62
- RESOURCE_VARIABLE,
63
- RESOURCE_XCOM,
64
- )
65
44
 
66
45
  try:
67
46
  from airflow.auth.managers.base_auth_manager import BaseAuthManager, ResourceMethod
@@ -96,136 +75,6 @@ if TYPE_CHECKING:
96
75
  from airflow.www.extensions.init_appbuilder import AirflowAppBuilder
97
76
 
98
77
 
99
- _MENU_ITEM_REQUESTS: dict[str, IsAuthorizedRequest] = {
100
- RESOURCE_AUDIT_LOG: {
101
- "method": "GET",
102
- "entity_type": AvpEntities.DAG,
103
- "context": {
104
- "dag_entity": {
105
- "string": DagAccessEntity.AUDIT_LOG.value,
106
- },
107
- },
108
- },
109
- RESOURCE_CLUSTER_ACTIVITY: {
110
- "method": "GET",
111
- "entity_type": AvpEntities.VIEW,
112
- "entity_id": AccessView.CLUSTER_ACTIVITY.value,
113
- },
114
- RESOURCE_CONFIG: {
115
- "method": "GET",
116
- "entity_type": AvpEntities.CONFIGURATION,
117
- },
118
- RESOURCE_CONNECTION: {
119
- "method": "GET",
120
- "entity_type": AvpEntities.CONNECTION,
121
- },
122
- RESOURCE_DAG: {
123
- "method": "GET",
124
- "entity_type": AvpEntities.DAG,
125
- },
126
- RESOURCE_DAG_CODE: {
127
- "method": "GET",
128
- "entity_type": AvpEntities.DAG,
129
- "context": {
130
- "dag_entity": {
131
- "string": DagAccessEntity.CODE.value,
132
- },
133
- },
134
- },
135
- RESOURCE_DAG_DEPENDENCIES: {
136
- "method": "GET",
137
- "entity_type": AvpEntities.DAG,
138
- "context": {
139
- "dag_entity": {
140
- "string": DagAccessEntity.DEPENDENCIES.value,
141
- },
142
- },
143
- },
144
- RESOURCE_DAG_RUN: {
145
- "method": "GET",
146
- "entity_type": AvpEntities.DAG,
147
- "context": {
148
- "dag_entity": {
149
- "string": DagAccessEntity.RUN.value,
150
- },
151
- },
152
- },
153
- RESOURCE_DATASET: {
154
- "method": "GET",
155
- "entity_type": AvpEntities.DATASET,
156
- },
157
- RESOURCE_DOCS: {
158
- "method": "GET",
159
- "entity_type": AvpEntities.VIEW,
160
- "entity_id": AccessView.DOCS.value,
161
- },
162
- RESOURCE_PLUGIN: {
163
- "method": "GET",
164
- "entity_type": AvpEntities.VIEW,
165
- "entity_id": AccessView.PLUGINS.value,
166
- },
167
- RESOURCE_JOB: {
168
- "method": "GET",
169
- "entity_type": AvpEntities.VIEW,
170
- "entity_id": AccessView.JOBS.value,
171
- },
172
- RESOURCE_POOL: {
173
- "method": "GET",
174
- "entity_type": AvpEntities.POOL,
175
- },
176
- RESOURCE_PROVIDER: {
177
- "method": "GET",
178
- "entity_type": AvpEntities.VIEW,
179
- "entity_id": AccessView.PROVIDERS.value,
180
- },
181
- RESOURCE_SLA_MISS: {
182
- "method": "GET",
183
- "entity_type": AvpEntities.DAG,
184
- "context": {
185
- "dag_entity": {
186
- "string": DagAccessEntity.SLA_MISS.value,
187
- },
188
- },
189
- },
190
- RESOURCE_TASK_INSTANCE: {
191
- "method": "GET",
192
- "entity_type": AvpEntities.DAG,
193
- "context": {
194
- "dag_entity": {
195
- "string": DagAccessEntity.TASK_INSTANCE.value,
196
- },
197
- },
198
- },
199
- RESOURCE_TASK_RESCHEDULE: {
200
- "method": "GET",
201
- "entity_type": AvpEntities.DAG,
202
- "context": {
203
- "dag_entity": {
204
- "string": DagAccessEntity.TASK_RESCHEDULE.value,
205
- },
206
- },
207
- },
208
- RESOURCE_TRIGGER: {
209
- "method": "GET",
210
- "entity_type": AvpEntities.VIEW,
211
- "entity_id": AccessView.TRIGGERS.value,
212
- },
213
- RESOURCE_VARIABLE: {
214
- "method": "GET",
215
- "entity_type": AvpEntities.VARIABLE,
216
- },
217
- RESOURCE_XCOM: {
218
- "method": "GET",
219
- "entity_type": AvpEntities.DAG,
220
- "context": {
221
- "dag_entity": {
222
- "string": DagAccessEntity.XCOM.value,
223
- },
224
- },
225
- },
226
- }
227
-
228
-
229
78
  class AwsAuthManager(BaseAuthManager):
230
79
  """
231
80
  AWS auth manager.
@@ -239,6 +88,7 @@ class AwsAuthManager(BaseAuthManager):
239
88
  def __init__(self, appbuilder: AirflowAppBuilder) -> None:
240
89
  super().__init__(appbuilder)
241
90
  enable = conf.getboolean(CONF_SECTION_NAME, CONF_ENABLE_KEY)
91
+ self._check_avp_schema_version()
242
92
  if not enable:
243
93
  raise NotImplementedError(
244
94
  "The AWS auth manager is currently being built. It is not finalized. It is not intended to be used yet."
@@ -356,6 +206,16 @@ class AwsAuthManager(BaseAuthManager):
356
206
  entity_id=access_view.value,
357
207
  )
358
208
 
209
+ def is_authorized_custom_view(
210
+ self, *, method: ResourceMethod, resource_name: str, user: BaseUser | None = None
211
+ ):
212
+ return self.avp_facade.is_authorized(
213
+ method=method,
214
+ entity_type=AvpEntities.CUSTOM,
215
+ user=user or self.get_user(),
216
+ entity_id=resource_name,
217
+ )
218
+
359
219
  def batch_is_authorized_connection(
360
220
  self,
361
221
  requests: Sequence[IsAuthorizedConnectionRequest],
@@ -443,6 +303,60 @@ class AwsAuthManager(BaseAuthManager):
443
303
  ]
444
304
  return self.avp_facade.batch_is_authorized(requests=facade_requests, user=self.get_user())
445
305
 
306
+ def filter_permitted_dag_ids(
307
+ self,
308
+ *,
309
+ dag_ids: set[str],
310
+ methods: Container[ResourceMethod] | None = None,
311
+ user=None,
312
+ ):
313
+ """
314
+ Filter readable or writable DAGs for user.
315
+
316
+ :param dag_ids: the list of DAG ids
317
+ :param methods: whether filter readable or writable
318
+ :param user: the current user
319
+ """
320
+ if not methods:
321
+ methods = ["PUT", "GET"]
322
+
323
+ if not user:
324
+ user = self.get_user()
325
+
326
+ requests: dict[str, dict[ResourceMethod, IsAuthorizedRequest]] = defaultdict(dict)
327
+ requests_list: list[IsAuthorizedRequest] = []
328
+ for dag_id in dag_ids:
329
+ for method in ["GET", "PUT"]:
330
+ if method in methods:
331
+ request: IsAuthorizedRequest = {
332
+ "method": cast(ResourceMethod, method),
333
+ "entity_type": AvpEntities.DAG,
334
+ "entity_id": dag_id,
335
+ }
336
+ requests[dag_id][cast(ResourceMethod, method)] = request
337
+ requests_list.append(request)
338
+
339
+ batch_is_authorized_results = self.avp_facade.get_batch_is_authorized_results(
340
+ requests=requests_list, user=user
341
+ )
342
+
343
+ def _has_access_to_dag(request: IsAuthorizedRequest):
344
+ result = self.avp_facade.get_batch_is_authorized_single_result(
345
+ batch_is_authorized_results=batch_is_authorized_results, request=request, user=user
346
+ )
347
+ return result["decision"] == "ALLOW"
348
+
349
+ return {
350
+ dag_id
351
+ for dag_id in dag_ids
352
+ if (
353
+ "GET" in methods
354
+ and _has_access_to_dag(requests[dag_id]["GET"])
355
+ or "PUT" in methods
356
+ and _has_access_to_dag(requests[dag_id]["PUT"])
357
+ )
358
+ }
359
+
446
360
  def filter_permitted_menu_items(self, menu_items: list[MenuItem]) -> list[MenuItem]:
447
361
  """
448
362
  Filter menu items based on user permissions.
@@ -465,19 +379,25 @@ class AwsAuthManager(BaseAuthManager):
465
379
  requests=list(requests.values()), user=user
466
380
  )
467
381
 
382
+ def _has_access_to_menu_item(request: IsAuthorizedRequest):
383
+ result = self.avp_facade.get_batch_is_authorized_single_result(
384
+ batch_is_authorized_results=batch_is_authorized_results, request=request, user=user
385
+ )
386
+ return result["decision"] == "ALLOW"
387
+
468
388
  accessible_items = []
469
389
  for menu_item in menu_items:
470
390
  if menu_item.childs:
471
391
  accessible_children = []
472
392
  for child in menu_item.childs:
473
- if self._has_access_to_menu_item(batch_is_authorized_results, requests[child.name], user):
393
+ if _has_access_to_menu_item(requests[child.name]):
474
394
  accessible_children.append(child)
475
395
  menu_item.childs = accessible_children
476
396
 
477
397
  # Display the menu if the user has access to at least one sub item
478
398
  if len(accessible_children) > 0:
479
399
  accessible_items.append(menu_item)
480
- elif self._has_access_to_menu_item(batch_is_authorized_results, requests[menu_item.name], user):
400
+ elif _has_access_to_menu_item(requests[menu_item.name]):
481
401
  accessible_items.append(menu_item)
482
402
 
483
403
  return accessible_items
@@ -504,20 +424,21 @@ class AwsAuthManager(BaseAuthManager):
504
424
  ]
505
425
 
506
426
  @staticmethod
507
- def _get_menu_item_request(fab_resource_name: str) -> IsAuthorizedRequest:
508
- menu_item_request = _MENU_ITEM_REQUESTS.get(fab_resource_name)
509
- if menu_item_request:
510
- return menu_item_request
511
- else:
512
- raise AirflowException(f"Unknown resource name {fab_resource_name}")
513
-
514
- def _has_access_to_menu_item(
515
- self, batch_is_authorized_results: list[dict], request: IsAuthorizedRequest, user: AwsAuthManagerUser
516
- ):
517
- result = self.avp_facade.get_batch_is_authorized_single_result(
518
- batch_is_authorized_results=batch_is_authorized_results, request=request, user=user
519
- )
520
- return result["decision"] == "ALLOW"
427
+ def _get_menu_item_request(resource_name: str) -> IsAuthorizedRequest:
428
+ return {
429
+ "method": "MENU",
430
+ "entity_type": AvpEntities.MENU,
431
+ "entity_id": resource_name,
432
+ }
433
+
434
+ def _check_avp_schema_version(self):
435
+ if not self.avp_facade.is_policy_store_schema_up_to_date():
436
+ self.log.warning(
437
+ "The Amazon Verified Permissions policy store schema is different from the latest version "
438
+ "(https://github.com/apache/airflow/blob/main/airflow/providers/amazon/aws/auth_manager/avp/schema.json). "
439
+ "Please update it to its latest version. "
440
+ "See doc: https://airflow.apache.org/docs/apache-airflow-providers-amazon/stable/auth-manager/setup/amazon-verified-permissions.html#update-the-policy-store-schema."
441
+ )
521
442
 
522
443
 
523
444
  def get_parser() -> argparse.ArgumentParser:
@@ -15,6 +15,7 @@
15
15
  # specific language governing permissions and limitations
16
16
  # under the License.
17
17
  """User sub-commands."""
18
+
18
19
  from __future__ import annotations
19
20
 
20
21
  import json
@@ -63,8 +64,9 @@ def init_avp(args):
63
64
  _set_schema(client, policy_store_id, args)
64
65
 
65
66
  if not args.dry_run:
66
- print("Amazon Verified Permissions resources created successfully.")
67
- print("Please set them in Airflow configuration under AIRFLOW__AWS_AUTH_MANAGER__<config name>.")
67
+ print(
68
+ "Please set configs below in Airflow configuration under AIRFLOW__AWS_AUTH_MANAGER__<config name>."
69
+ )
68
70
  print(json.dumps({"avp_policy_store_id": policy_store_id}, indent=4))
69
71
 
70
72
 
@@ -75,9 +77,6 @@ def update_schema(args):
75
77
  client = _get_client()
76
78
  _set_schema(client, args.policy_store_id, args)
77
79
 
78
- if not args.dry_run:
79
- print("Amazon Verified Permissions policy store schema updated successfully.")
80
-
81
80
 
82
81
  def _get_client():
83
82
  """Return Amazon Verified Permissions client."""
@@ -121,7 +120,7 @@ def _create_policy_store(client: BaseClient, args) -> tuple[str | None, bool]:
121
120
 
122
121
  response = client.create_policy_store(
123
122
  validationSettings={
124
- "mode": "OFF",
123
+ "mode": "STRICT",
125
124
  },
126
125
  description=args.policy_store_description,
127
126
  )
@@ -139,20 +138,7 @@ def _set_schema(client: BaseClient, policy_store_id: str, args) -> None:
139
138
  print(f"Dry run, not updating the schema of the policy store with ID '{policy_store_id}'.")
140
139
  return
141
140
 
142
- if args.verbose:
143
- log.debug("Disabling schema validation before updating schema")
144
-
145
- response = client.update_policy_store(
146
- policyStoreId=policy_store_id,
147
- validationSettings={
148
- "mode": "OFF",
149
- },
150
- )
151
-
152
- if args.verbose:
153
- log.debug("Response from update_policy_store: %s", response)
154
-
155
- schema_path = Path(__file__).parents[0].joinpath("schema.json").resolve()
141
+ schema_path = Path(__file__).parents[1] / "avp" / "schema.json"
156
142
  with open(schema_path) as schema_file:
157
143
  response = client.put_schema(
158
144
  policyStoreId=policy_store_id,
@@ -164,15 +150,4 @@ def _set_schema(client: BaseClient, policy_store_id: str, args) -> None:
164
150
  if args.verbose:
165
151
  log.debug("Response from put_schema: %s", response)
166
152
 
167
- if args.verbose:
168
- log.debug("Enabling schema validation after updating schema")
169
-
170
- response = client.update_policy_store(
171
- policyStoreId=policy_store_id,
172
- validationSettings={
173
- "mode": "STRICT",
174
- },
175
- )
176
-
177
- if args.verbose:
178
- log.debug("Response from update_policy_store: %s", response)
153
+ print("Policy store schema updated.")
@@ -69,7 +69,7 @@ AWS_AUTH_MANAGER_COMMANDS = (
69
69
  ),
70
70
  ActionCommand(
71
71
  name="update-avp-schema",
72
- help="Update Amazon Verified permissions policy store schema to the latest version in 'airflow/providers/amazon/aws/auth_manager/cli/schema.json'",
72
+ help="Update Amazon Verified permissions policy store schema to the latest version in 'airflow/providers/amazon/aws/auth_manager/avp/schema.json'",
73
73
  func=lazy_load_command("airflow.providers.amazon.aws.auth_manager.cli.avp_commands.update_schema"),
74
74
  args=(ARG_POLICY_STORE_ID, ARG_DRY_RUN, ARG_VERBOSE),
75
75
  ),