apache-airflow-providers-amazon 8.26.0rc1__tar.gz → 8.27.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.
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/PKG-INFO +32 -25
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/README.rst +22 -19
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/__init__.py +1 -1
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/auth_manager/aws_auth_manager.py +10 -0
- apache_airflow_providers_amazon-8.27.0/airflow/providers/amazon/aws/datasets/s3.py +45 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/executors/batch/batch_executor.py +27 -17
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/executors/ecs/ecs_executor.py +31 -13
- apache_airflow_providers_amazon-8.27.0/airflow/providers/amazon/aws/hooks/kinesis_analytics.py +65 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/hooks/rds.py +3 -3
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/hooks/s3.py +26 -1
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/hooks/step_function.py +18 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/operators/athena.py +16 -17
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/operators/emr.py +23 -23
- apache_airflow_providers_amazon-8.27.0/airflow/providers/amazon/aws/operators/kinesis_analytics.py +348 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/operators/rds.py +17 -20
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/operators/redshift_cluster.py +71 -53
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/operators/s3.py +18 -12
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/operators/sagemaker.py +12 -27
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/operators/step_function.py +12 -2
- apache_airflow_providers_amazon-8.27.0/airflow/providers/amazon/aws/sensors/kinesis_analytics.py +234 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/sensors/s3.py +11 -5
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/transfers/redshift_to_s3.py +1 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/transfers/s3_to_redshift.py +1 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/triggers/emr.py +3 -1
- apache_airflow_providers_amazon-8.27.0/airflow/providers/amazon/aws/triggers/kinesis_analytics.py +69 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/triggers/sagemaker.py +9 -1
- apache_airflow_providers_amazon-8.27.0/airflow/providers/amazon/aws/waiters/__init__.py +16 -0
- apache_airflow_providers_amazon-8.27.0/airflow/providers/amazon/aws/waiters/kinesisanalyticsv2.json +151 -0
- apache_airflow_providers_amazon-8.27.0/airflow/providers/amazon/aws/waiters/rds.json +253 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/get_provider_info.py +35 -2
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/pyproject.toml +11 -6
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/LICENSE +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/__init__.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/auth_manager/__init__.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/auth_manager/avp/__init__.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/auth_manager/avp/entities.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/auth_manager/avp/facade.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/auth_manager/avp/schema.json +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/auth_manager/cli/__init__.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/auth_manager/cli/avp_commands.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/auth_manager/cli/definition.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/auth_manager/cli/idc_commands.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/auth_manager/constants.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/auth_manager/security_manager/__init__.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/auth_manager/security_manager/aws_security_manager_override.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/auth_manager/user.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/auth_manager/views/__init__.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/auth_manager/views/auth.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1/airflow/providers/amazon/aws/executors → apache_airflow_providers_amazon-8.27.0/airflow/providers/amazon/aws/datasets}/__init__.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/exceptions.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/executors/Dockerfile +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1/airflow/providers/amazon/aws/executors/utils → apache_airflow_providers_amazon-8.27.0/airflow/providers/amazon/aws/executors}/__init__.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/executors/batch/__init__.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/executors/batch/batch_executor_config.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/executors/batch/boto_schema.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/executors/batch/utils.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/executors/ecs/__init__.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/executors/ecs/boto_schema.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/executors/ecs/ecs_executor_config.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/executors/ecs/utils.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1/airflow/providers/amazon/aws/fs → apache_airflow_providers_amazon-8.27.0/airflow/providers/amazon/aws/executors/utils}/__init__.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/executors/utils/base_config_keys.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/executors/utils/exponential_backoff_retry.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1/airflow/providers/amazon/aws/hooks → apache_airflow_providers_amazon-8.27.0/airflow/providers/amazon/aws/fs}/__init__.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/fs/s3.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1/airflow/providers/amazon/aws/links → apache_airflow_providers_amazon-8.27.0/airflow/providers/amazon/aws/hooks}/__init__.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/hooks/appflow.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/hooks/athena.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/hooks/athena_sql.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/hooks/base_aws.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/hooks/batch_client.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/hooks/batch_waiters.json +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/hooks/batch_waiters.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/hooks/bedrock.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/hooks/chime.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/hooks/cloud_formation.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/hooks/comprehend.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/hooks/datasync.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/hooks/dms.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/hooks/dynamodb.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/hooks/ec2.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/hooks/ecr.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/hooks/ecs.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/hooks/eks.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/hooks/elasticache_replication_group.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/hooks/emr.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/hooks/eventbridge.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/hooks/glacier.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/hooks/glue.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/hooks/glue_catalog.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/hooks/glue_crawler.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/hooks/glue_databrew.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/hooks/kinesis.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/hooks/lambda_function.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/hooks/logs.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/hooks/neptune.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/hooks/opensearch_serverless.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/hooks/quicksight.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/hooks/redshift_cluster.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/hooks/redshift_data.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/hooks/redshift_sql.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/hooks/sagemaker.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/hooks/secrets_manager.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/hooks/ses.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/hooks/sns.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/hooks/sqs.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/hooks/ssm.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/hooks/sts.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/hooks/verified_permissions.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1/airflow/providers/amazon/aws/log → apache_airflow_providers_amazon-8.27.0/airflow/providers/amazon/aws/links}/__init__.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/links/athena.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/links/base_aws.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/links/batch.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/links/emr.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/links/glue.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/links/logs.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/links/step_function.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1/airflow/providers/amazon/aws/notifications → apache_airflow_providers_amazon-8.27.0/airflow/providers/amazon/aws/log}/__init__.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/log/cloudwatch_task_handler.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/log/s3_task_handler.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1/airflow/providers/amazon/aws/operators → apache_airflow_providers_amazon-8.27.0/airflow/providers/amazon/aws/notifications}/__init__.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/notifications/chime.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/notifications/sns.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/notifications/sqs.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1/airflow/providers/amazon/aws/secrets → apache_airflow_providers_amazon-8.27.0/airflow/providers/amazon/aws/operators}/__init__.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/operators/appflow.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/operators/base_aws.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/operators/batch.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/operators/bedrock.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/operators/cloud_formation.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/operators/comprehend.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/operators/datasync.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/operators/dms.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/operators/ec2.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/operators/ecs.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/operators/eks.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/operators/eventbridge.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/operators/glacier.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/operators/glue.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/operators/glue_crawler.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/operators/glue_databrew.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/operators/lambda_function.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/operators/neptune.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/operators/quicksight.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/operators/redshift_data.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/operators/sns.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/operators/sqs.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1/airflow/providers/amazon/aws/sensors → apache_airflow_providers_amazon-8.27.0/airflow/providers/amazon/aws/secrets}/__init__.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/secrets/secrets_manager.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/secrets/systems_manager.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1/airflow/providers/amazon/aws/transfers → apache_airflow_providers_amazon-8.27.0/airflow/providers/amazon/aws/sensors}/__init__.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/sensors/athena.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/sensors/base_aws.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/sensors/batch.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/sensors/bedrock.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/sensors/cloud_formation.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/sensors/comprehend.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/sensors/dms.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/sensors/dynamodb.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/sensors/ec2.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/sensors/ecs.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/sensors/eks.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/sensors/emr.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/sensors/glacier.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/sensors/glue.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/sensors/glue_catalog_partition.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/sensors/glue_crawler.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/sensors/lambda_function.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/sensors/opensearch_serverless.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/sensors/quicksight.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/sensors/rds.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/sensors/redshift_cluster.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/sensors/sagemaker.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/sensors/sqs.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/sensors/step_function.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1/airflow/providers/amazon/aws/waiters → apache_airflow_providers_amazon-8.27.0/airflow/providers/amazon/aws/transfers}/__init__.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/transfers/azure_blob_to_s3.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/transfers/base.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/transfers/dynamodb_to_s3.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/transfers/exasol_to_s3.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/transfers/ftp_to_s3.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/transfers/gcs_to_s3.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/transfers/glacier_to_gcs.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/transfers/google_api_to_s3.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/transfers/hive_to_dynamodb.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/transfers/http_to_s3.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/transfers/imap_attachment_to_s3.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/transfers/local_to_s3.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/transfers/mongo_to_s3.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/transfers/s3_to_dynamodb.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/transfers/s3_to_ftp.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/transfers/s3_to_sftp.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/transfers/s3_to_sql.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/transfers/salesforce_to_s3.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/transfers/sftp_to_s3.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/transfers/sql_to_s3.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/triggers/README.md +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/triggers/__init__.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/triggers/athena.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/triggers/base.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/triggers/batch.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/triggers/bedrock.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/triggers/comprehend.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/triggers/ec2.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/triggers/ecs.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/triggers/eks.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/triggers/glue.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/triggers/glue_crawler.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/triggers/glue_databrew.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/triggers/lambda_function.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/triggers/neptune.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/triggers/opensearch_serverless.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/triggers/rds.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/triggers/redshift_cluster.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/triggers/redshift_data.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/triggers/s3.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/triggers/sqs.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/triggers/step_function.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/utils/__init__.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/utils/connection_wrapper.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/utils/eks_get_token.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/utils/emailer.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/utils/identifiers.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/utils/mixins.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/utils/rds.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/utils/redshift.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/utils/sagemaker.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/utils/sqs.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/utils/suppress.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/utils/tags.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/utils/task_log_fetcher.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/utils/waiter.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/utils/waiter_with_logging.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/waiters/README.md +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/waiters/appflow.json +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/waiters/athena.json +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/waiters/base_waiter.py +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/waiters/batch.json +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/waiters/bedrock-agent.json +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/waiters/bedrock.json +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/waiters/comprehend.json +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/waiters/databrew.json +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/waiters/dynamodb.json +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/waiters/ecs.json +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/waiters/eks.json +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/waiters/emr-containers.json +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/waiters/emr-serverless.json +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/waiters/emr.json +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/waiters/glue.json +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/waiters/neptune.json +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/waiters/opensearchserverless.json +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/waiters/redshift.json +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/waiters/sagemaker.json +0 -0
- {apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/airflow/providers/amazon/aws/waiters/stepfunctions.json +0 -0
{apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/PKG-INFO
RENAMED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: apache-airflow-providers-amazon
|
3
|
-
Version: 8.
|
3
|
+
Version: 8.27.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,9 +22,11 @@ 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-
|
25
|
+
Requires-Dist: apache-airflow-providers-common-compat>=1.1.0
|
26
|
+
Requires-Dist: apache-airflow-providers-common-compat>=1.1.0
|
27
|
+
Requires-Dist: apache-airflow-providers-common-sql>=1.3.1
|
26
28
|
Requires-Dist: apache-airflow-providers-http
|
27
|
-
Requires-Dist: apache-airflow>=2.7.
|
29
|
+
Requires-Dist: apache-airflow>=2.7.0
|
28
30
|
Requires-Dist: asgiref>=2.3.0
|
29
31
|
Requires-Dist: boto3>=1.34.90
|
30
32
|
Requires-Dist: botocore>=1.34.90
|
@@ -36,7 +38,8 @@ Requires-Dist: sqlalchemy_redshift>=0.8.6
|
|
36
38
|
Requires-Dist: watchtower>=3.0.0,<4
|
37
39
|
Requires-Dist: aiobotocore[boto3]>=2.13.0 ; extra == "aiobotocore"
|
38
40
|
Requires-Dist: apache-airflow-providers-apache-hive ; extra == "apache.hive"
|
39
|
-
Requires-Dist: apache-airflow-providers-cncf-kubernetes>=7.2.
|
41
|
+
Requires-Dist: apache-airflow-providers-cncf-kubernetes>=7.2.0 ; extra == "cncf.kubernetes"
|
42
|
+
Requires-Dist: apache-airflow-providers-common-compat ; extra == "common.compat"
|
40
43
|
Requires-Dist: apache-airflow-providers-common-sql ; extra == "common.sql"
|
41
44
|
Requires-Dist: apache-airflow-providers-exasol ; extra == "exasol"
|
42
45
|
Requires-Dist: apache-airflow-providers-ftp ; extra == "ftp"
|
@@ -53,8 +56,8 @@ Requires-Dist: s3fs>=2023.10.0 ; extra == "s3fs"
|
|
53
56
|
Requires-Dist: apache-airflow-providers-salesforce ; extra == "salesforce"
|
54
57
|
Requires-Dist: apache-airflow-providers-ssh ; extra == "ssh"
|
55
58
|
Project-URL: Bug Tracker, https://github.com/apache/airflow/issues
|
56
|
-
Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-amazon/8.
|
57
|
-
Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-amazon/8.
|
59
|
+
Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-amazon/8.27.0/changelog.html
|
60
|
+
Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-amazon/8.27.0
|
58
61
|
Project-URL: Slack Chat, https://s.apache.org/airflow-slack
|
59
62
|
Project-URL: Source Code, https://github.com/apache/airflow
|
60
63
|
Project-URL: Twitter, https://twitter.com/ApacheAirflow
|
@@ -62,6 +65,7 @@ Project-URL: YouTube, https://www.youtube.com/channel/UCSXwxpWZQ7XZ1WL3wqevChA/
|
|
62
65
|
Provides-Extra: aiobotocore
|
63
66
|
Provides-Extra: apache.hive
|
64
67
|
Provides-Extra: cncf.kubernetes
|
68
|
+
Provides-Extra: common.compat
|
65
69
|
Provides-Extra: common.sql
|
66
70
|
Provides-Extra: exasol
|
67
71
|
Provides-Extra: ftp
|
@@ -121,7 +125,7 @@ Provides-Extra: ssh
|
|
121
125
|
|
122
126
|
Package ``apache-airflow-providers-amazon``
|
123
127
|
|
124
|
-
Release: ``8.
|
128
|
+
Release: ``8.27.0``
|
125
129
|
|
126
130
|
|
127
131
|
Amazon integration (including `Amazon Web Services (AWS) <https://aws.amazon.com/>`__).
|
@@ -134,7 +138,7 @@ This is a provider package for ``amazon`` provider. All classes for this provide
|
|
134
138
|
are in ``airflow.providers.amazon`` python package.
|
135
139
|
|
136
140
|
You can find package information and changelog for the provider
|
137
|
-
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-amazon/8.
|
141
|
+
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-amazon/8.27.0/>`_.
|
138
142
|
|
139
143
|
Installation
|
140
144
|
------------
|
@@ -148,23 +152,25 @@ The package supports the following python versions: 3.8,3.9,3.10,3.11,3.12
|
|
148
152
|
Requirements
|
149
153
|
------------
|
150
154
|
|
151
|
-
|
152
|
-
PIP package
|
153
|
-
|
154
|
-
``apache-airflow``
|
155
|
-
``apache-airflow-providers-common-
|
155
|
+
========================================== ==================
|
156
|
+
PIP package Version required
|
157
|
+
========================================== ==================
|
158
|
+
``apache-airflow`` ``>=2.7.0``
|
159
|
+
``apache-airflow-providers-common-compat`` ``>=1.1.0``
|
160
|
+
``apache-airflow-providers-common-sql`` ``>=1.3.1``
|
156
161
|
``apache-airflow-providers-http``
|
157
|
-
``
|
158
|
-
``
|
159
|
-
``
|
160
|
-
``
|
161
|
-
``
|
162
|
-
``
|
163
|
-
``
|
164
|
-
``
|
165
|
-
``
|
166
|
-
``
|
167
|
-
|
162
|
+
``apache-airflow-providers-common-compat`` ``>=1.1.0``
|
163
|
+
``boto3`` ``>=1.34.90``
|
164
|
+
``botocore`` ``>=1.34.90``
|
165
|
+
``inflection`` ``>=0.5.1``
|
166
|
+
``watchtower`` ``>=3.0.0,<4``
|
167
|
+
``jsonpath_ng`` ``>=1.5.3``
|
168
|
+
``redshift_connector`` ``>=2.0.918``
|
169
|
+
``sqlalchemy_redshift`` ``>=0.8.6``
|
170
|
+
``asgiref`` ``>=2.3.0``
|
171
|
+
``PyAthena`` ``>=3.0.10``
|
172
|
+
``jmespath`` ``>=0.7.0``
|
173
|
+
========================================== ==================
|
168
174
|
|
169
175
|
Cross provider package dependencies
|
170
176
|
-----------------------------------
|
@@ -184,6 +190,7 @@ Dependent package
|
|
184
190
|
====================================================================================================================== ===================
|
185
191
|
`apache-airflow-providers-apache-hive <https://airflow.apache.org/docs/apache-airflow-providers-apache-hive>`_ ``apache.hive``
|
186
192
|
`apache-airflow-providers-cncf-kubernetes <https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes>`_ ``cncf.kubernetes``
|
193
|
+
`apache-airflow-providers-common-compat <https://airflow.apache.org/docs/apache-airflow-providers-common-compat>`_ ``common.compat``
|
187
194
|
`apache-airflow-providers-common-sql <https://airflow.apache.org/docs/apache-airflow-providers-common-sql>`_ ``common.sql``
|
188
195
|
`apache-airflow-providers-exasol <https://airflow.apache.org/docs/apache-airflow-providers-exasol>`_ ``exasol``
|
189
196
|
`apache-airflow-providers-ftp <https://airflow.apache.org/docs/apache-airflow-providers-ftp>`_ ``ftp``
|
@@ -198,4 +205,4 @@ Dependent package
|
|
198
205
|
====================================================================================================================== ===================
|
199
206
|
|
200
207
|
The changelog for the provider package can be found in the
|
201
|
-
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-amazon/8.
|
208
|
+
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-amazon/8.27.0/changelog.html>`_.
|
{apache_airflow_providers_amazon-8.26.0rc1 → apache_airflow_providers_amazon-8.27.0}/README.rst
RENAMED
@@ -42,7 +42,7 @@
|
|
42
42
|
|
43
43
|
Package ``apache-airflow-providers-amazon``
|
44
44
|
|
45
|
-
Release: ``8.
|
45
|
+
Release: ``8.27.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.
|
58
|
+
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-amazon/8.27.0/>`_.
|
59
59
|
|
60
60
|
Installation
|
61
61
|
------------
|
@@ -69,23 +69,25 @@ The package supports the following python versions: 3.8,3.9,3.10,3.11,3.12
|
|
69
69
|
Requirements
|
70
70
|
------------
|
71
71
|
|
72
|
-
|
73
|
-
PIP package
|
74
|
-
|
75
|
-
``apache-airflow``
|
76
|
-
``apache-airflow-providers-common-
|
72
|
+
========================================== ==================
|
73
|
+
PIP package Version required
|
74
|
+
========================================== ==================
|
75
|
+
``apache-airflow`` ``>=2.7.0``
|
76
|
+
``apache-airflow-providers-common-compat`` ``>=1.1.0``
|
77
|
+
``apache-airflow-providers-common-sql`` ``>=1.3.1``
|
77
78
|
``apache-airflow-providers-http``
|
78
|
-
``
|
79
|
-
``
|
80
|
-
``
|
81
|
-
``
|
82
|
-
``
|
83
|
-
``
|
84
|
-
``
|
85
|
-
``
|
86
|
-
``
|
87
|
-
``
|
88
|
-
|
79
|
+
``apache-airflow-providers-common-compat`` ``>=1.1.0``
|
80
|
+
``boto3`` ``>=1.34.90``
|
81
|
+
``botocore`` ``>=1.34.90``
|
82
|
+
``inflection`` ``>=0.5.1``
|
83
|
+
``watchtower`` ``>=3.0.0,<4``
|
84
|
+
``jsonpath_ng`` ``>=1.5.3``
|
85
|
+
``redshift_connector`` ``>=2.0.918``
|
86
|
+
``sqlalchemy_redshift`` ``>=0.8.6``
|
87
|
+
``asgiref`` ``>=2.3.0``
|
88
|
+
``PyAthena`` ``>=3.0.10``
|
89
|
+
``jmespath`` ``>=0.7.0``
|
90
|
+
========================================== ==================
|
89
91
|
|
90
92
|
Cross provider package dependencies
|
91
93
|
-----------------------------------
|
@@ -105,6 +107,7 @@ Dependent package
|
|
105
107
|
====================================================================================================================== ===================
|
106
108
|
`apache-airflow-providers-apache-hive <https://airflow.apache.org/docs/apache-airflow-providers-apache-hive>`_ ``apache.hive``
|
107
109
|
`apache-airflow-providers-cncf-kubernetes <https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes>`_ ``cncf.kubernetes``
|
110
|
+
`apache-airflow-providers-common-compat <https://airflow.apache.org/docs/apache-airflow-providers-common-compat>`_ ``common.compat``
|
108
111
|
`apache-airflow-providers-common-sql <https://airflow.apache.org/docs/apache-airflow-providers-common-sql>`_ ``common.sql``
|
109
112
|
`apache-airflow-providers-exasol <https://airflow.apache.org/docs/apache-airflow-providers-exasol>`_ ``exasol``
|
110
113
|
`apache-airflow-providers-ftp <https://airflow.apache.org/docs/apache-airflow-providers-ftp>`_ ``ftp``
|
@@ -119,4 +122,4 @@ Dependent package
|
|
119
122
|
====================================================================================================================== ===================
|
120
123
|
|
121
124
|
The changelog for the provider package can be found in the
|
122
|
-
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-amazon/8.
|
125
|
+
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-amazon/8.27.0/changelog.html>`_.
|
@@ -29,7 +29,7 @@ from airflow import __version__ as airflow_version
|
|
29
29
|
|
30
30
|
__all__ = ["__version__"]
|
31
31
|
|
32
|
-
__version__ = "8.
|
32
|
+
__version__ = "8.27.0"
|
33
33
|
|
34
34
|
if packaging.version.parse(packaging.version.parse(airflow_version).base_version) < packaging.version.parse(
|
35
35
|
"2.7.0"
|
@@ -81,6 +81,16 @@ class AwsAuthManager(BaseAuthManager):
|
|
81
81
|
"""
|
82
82
|
|
83
83
|
def __init__(self, appbuilder: AirflowAppBuilder) -> None:
|
84
|
+
from packaging.version import Version
|
85
|
+
|
86
|
+
from airflow.version import version
|
87
|
+
|
88
|
+
# TODO: remove this if block when min_airflow_version is set to higher than 2.9.0
|
89
|
+
if Version(version) < Version("2.9"):
|
90
|
+
raise AirflowOptionalProviderFeatureException(
|
91
|
+
"``AwsAuthManager`` is compatible with Airflow versions >= 2.9."
|
92
|
+
)
|
93
|
+
|
84
94
|
super().__init__(appbuilder)
|
85
95
|
self._check_avp_schema_version()
|
86
96
|
|
@@ -0,0 +1,45 @@
|
|
1
|
+
# Licensed to the Apache Software Foundation (ASF) under one
|
2
|
+
# or more contributor license agreements. See the NOTICE file
|
3
|
+
# distributed with this work for additional information
|
4
|
+
# regarding copyright ownership. The ASF licenses this file
|
5
|
+
# to you under the Apache License, Version 2.0 (the
|
6
|
+
# "License"); you may not use this file except in compliance
|
7
|
+
# with the License. You may obtain a copy of the License at
|
8
|
+
#
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
#
|
11
|
+
# Unless required by applicable law or agreed to in writing,
|
12
|
+
# software distributed under the License is distributed on an
|
13
|
+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
14
|
+
# KIND, either express or implied. See the License for the
|
15
|
+
# specific language governing permissions and limitations
|
16
|
+
# under the License.
|
17
|
+
from __future__ import annotations
|
18
|
+
|
19
|
+
from typing import TYPE_CHECKING
|
20
|
+
|
21
|
+
from airflow.datasets import Dataset
|
22
|
+
from airflow.providers.amazon.aws.hooks.s3 import S3Hook
|
23
|
+
|
24
|
+
if TYPE_CHECKING:
|
25
|
+
from urllib.parse import SplitResult
|
26
|
+
|
27
|
+
from airflow.providers.common.compat.openlineage.facet import Dataset as OpenLineageDataset
|
28
|
+
|
29
|
+
|
30
|
+
def create_dataset(*, bucket: str, key: str, extra=None) -> Dataset:
|
31
|
+
return Dataset(uri=f"s3://{bucket}/{key}", extra=extra)
|
32
|
+
|
33
|
+
|
34
|
+
def sanitize_uri(uri: SplitResult) -> SplitResult:
|
35
|
+
if not uri.netloc:
|
36
|
+
raise ValueError("URI format s3:// must contain a bucket name")
|
37
|
+
return uri
|
38
|
+
|
39
|
+
|
40
|
+
def convert_dataset_to_openlineage(dataset: Dataset, lineage_context) -> OpenLineageDataset:
|
41
|
+
"""Translate Dataset with valid AIP-60 uri to OpenLineage with assistance from the hook."""
|
42
|
+
from airflow.providers.common.compat.openlineage.facet import Dataset as OpenLineageDataset
|
43
|
+
|
44
|
+
bucket, key = S3Hook.parse_s3_url(dataset.uri)
|
45
|
+
return OpenLineageDataset(namespace=f"s3://{bucket}", name=key if key else "/")
|
@@ -19,9 +19,9 @@
|
|
19
19
|
|
20
20
|
from __future__ import annotations
|
21
21
|
|
22
|
-
import contextlib
|
23
22
|
import time
|
24
|
-
from collections import
|
23
|
+
from collections import deque
|
24
|
+
from contextlib import suppress
|
25
25
|
from copy import deepcopy
|
26
26
|
from typing import TYPE_CHECKING, Any, Dict, List, Sequence
|
27
27
|
|
@@ -264,7 +264,6 @@ class AwsBatchExecutor(BaseExecutor):
|
|
264
264
|
in the next iteration of the sync() method, unless it has exceeded the maximum number of
|
265
265
|
attempts. If a job exceeds the maximum number of attempts, it is removed from the queue.
|
266
266
|
"""
|
267
|
-
failure_reasons = defaultdict(int)
|
268
267
|
for _ in range(len(self.pending_jobs)):
|
269
268
|
batch_job = self.pending_jobs.popleft()
|
270
269
|
key = batch_job.key
|
@@ -272,7 +271,7 @@ class AwsBatchExecutor(BaseExecutor):
|
|
272
271
|
queue = batch_job.queue
|
273
272
|
exec_config = batch_job.executor_config
|
274
273
|
attempt_number = batch_job.attempt_number
|
275
|
-
|
274
|
+
failure_reason: str | None = None
|
276
275
|
if timezone.utcnow() < batch_job.next_attempt_time:
|
277
276
|
self.pending_jobs.append(batch_job)
|
278
277
|
continue
|
@@ -286,18 +285,25 @@ class AwsBatchExecutor(BaseExecutor):
|
|
286
285
|
if error_code in INVALID_CREDENTIALS_EXCEPTIONS:
|
287
286
|
self.pending_jobs.append(batch_job)
|
288
287
|
raise
|
289
|
-
|
288
|
+
failure_reason = str(e)
|
290
289
|
except Exception as e:
|
291
|
-
|
292
|
-
|
293
|
-
if _failure_reason:
|
294
|
-
for reason in _failure_reason:
|
295
|
-
failure_reasons[reason] += 1
|
290
|
+
failure_reason = str(e)
|
296
291
|
|
292
|
+
if failure_reason:
|
297
293
|
if attempt_number >= int(self.__class__.MAX_SUBMIT_JOB_ATTEMPTS):
|
298
294
|
self.log.error(
|
299
|
-
|
295
|
+
(
|
296
|
+
"This job has been unsuccessfully attempted too many times (%s). "
|
297
|
+
"Dropping the task. Reason: %s"
|
298
|
+
),
|
300
299
|
attempt_number,
|
300
|
+
failure_reason,
|
301
|
+
)
|
302
|
+
self.log_task_event(
|
303
|
+
event="batch job submit failure",
|
304
|
+
extra=f"This job has been unsuccessfully attempted too many times ({attempt_number}). "
|
305
|
+
f"Dropping the task. Reason: {failure_reason}",
|
306
|
+
ti_key=key,
|
301
307
|
)
|
302
308
|
self.fail(key=key)
|
303
309
|
else:
|
@@ -317,16 +323,11 @@ class AwsBatchExecutor(BaseExecutor):
|
|
317
323
|
exec_config=exec_config,
|
318
324
|
attempt_number=attempt_number,
|
319
325
|
)
|
320
|
-
with
|
326
|
+
with suppress(AttributeError):
|
321
327
|
# TODO: Remove this when min_airflow_version is 2.10.0 or higher in Amazon provider.
|
322
328
|
# running_state is added in Airflow 2.10 and only needed to support task adoption
|
323
329
|
# (an optional executor feature).
|
324
330
|
self.running_state(key, job_id)
|
325
|
-
if failure_reasons:
|
326
|
-
self.log.error(
|
327
|
-
"Pending Batch jobs failed to launch for the following reasons: %s. Retrying later.",
|
328
|
-
dict(failure_reasons),
|
329
|
-
)
|
330
331
|
|
331
332
|
def _describe_jobs(self, job_ids) -> list[BatchJob]:
|
332
333
|
all_jobs = []
|
@@ -462,3 +463,12 @@ class AwsBatchExecutor(BaseExecutor):
|
|
462
463
|
|
463
464
|
not_adopted_tis = [ti for ti in tis if ti not in adopted_tis]
|
464
465
|
return not_adopted_tis
|
466
|
+
|
467
|
+
def log_task_event(self, *, event: str, extra: str, ti_key: TaskInstanceKey):
|
468
|
+
# TODO: remove this method when min_airflow_version is set to higher than 2.10.0
|
469
|
+
with suppress(AttributeError):
|
470
|
+
super().log_task_event(
|
471
|
+
event=event,
|
472
|
+
extra=extra,
|
473
|
+
ti_key=ti_key,
|
474
|
+
)
|
@@ -25,6 +25,7 @@ from __future__ import annotations
|
|
25
25
|
|
26
26
|
import time
|
27
27
|
from collections import defaultdict, deque
|
28
|
+
from contextlib import suppress
|
28
29
|
from copy import deepcopy
|
29
30
|
from typing import TYPE_CHECKING, Sequence
|
30
31
|
|
@@ -347,7 +348,7 @@ class AwsEcsExecutor(BaseExecutor):
|
|
347
348
|
queue = ecs_task.queue
|
348
349
|
exec_config = ecs_task.executor_config
|
349
350
|
attempt_number = ecs_task.attempt_number
|
350
|
-
|
351
|
+
failure_reasons = []
|
351
352
|
if timezone.utcnow() < ecs_task.next_attempt_time:
|
352
353
|
self.pending_tasks.append(ecs_task)
|
353
354
|
continue
|
@@ -361,23 +362,21 @@ class AwsEcsExecutor(BaseExecutor):
|
|
361
362
|
if error_code in INVALID_CREDENTIALS_EXCEPTIONS:
|
362
363
|
self.pending_tasks.append(ecs_task)
|
363
364
|
raise
|
364
|
-
|
365
|
+
failure_reasons.append(str(e))
|
365
366
|
except Exception as e:
|
366
367
|
# Failed to even get a response back from the Boto3 API or something else went
|
367
368
|
# wrong. For any possible failure we want to add the exception reasons to the
|
368
369
|
# failure list so that it is logged to the user and most importantly the task is
|
369
370
|
# added back to the pending list to be retried later.
|
370
|
-
|
371
|
+
failure_reasons.append(str(e))
|
371
372
|
else:
|
372
373
|
# We got a response back, check if there were failures. If so, add them to the
|
373
374
|
# failures list so that it is logged to the user and most importantly the task
|
374
375
|
# is added back to the pending list to be retried later.
|
375
376
|
if run_task_response["failures"]:
|
376
|
-
|
377
|
+
failure_reasons.extend([f["reason"] for f in run_task_response["failures"]])
|
377
378
|
|
378
|
-
if
|
379
|
-
for reason in _failure_reasons:
|
380
|
-
failure_reasons[reason] += 1
|
379
|
+
if failure_reasons:
|
381
380
|
# Make sure the number of attempts does not exceed MAX_RUN_TASK_ATTEMPTS
|
382
381
|
if int(attempt_number) < int(self.__class__.MAX_RUN_TASK_ATTEMPTS):
|
383
382
|
ecs_task.attempt_number += 1
|
@@ -386,14 +385,29 @@ class AwsEcsExecutor(BaseExecutor):
|
|
386
385
|
)
|
387
386
|
self.pending_tasks.append(ecs_task)
|
388
387
|
else:
|
388
|
+
reasons_str = ", ".join(failure_reasons)
|
389
389
|
self.log.error(
|
390
|
-
"ECS task %s has failed a maximum of %s times. Marking as failed",
|
390
|
+
"ECS task %s has failed a maximum of %s times. Marking as failed. Reasons: %s",
|
391
391
|
task_key,
|
392
392
|
attempt_number,
|
393
|
+
reasons_str,
|
394
|
+
)
|
395
|
+
self.log_task_event(
|
396
|
+
event="ecs task submit failure",
|
397
|
+
ti_key=task_key,
|
398
|
+
extra=(
|
399
|
+
f"Task could not be queued after {attempt_number} attempts. "
|
400
|
+
f"Marking as failed. Reasons: {reasons_str}"
|
401
|
+
),
|
393
402
|
)
|
394
403
|
self.fail(task_key)
|
395
404
|
elif not run_task_response["tasks"]:
|
396
405
|
self.log.error("ECS RunTask Response: %s", run_task_response)
|
406
|
+
self.log_task_event(
|
407
|
+
event="ecs task submit failure",
|
408
|
+
extra=f"ECS RunTask Response: {run_task_response}",
|
409
|
+
ti_key=task_key,
|
410
|
+
)
|
397
411
|
raise EcsExecutorException(
|
398
412
|
"No failures and no ECS tasks provided in response. This should never happen."
|
399
413
|
)
|
@@ -407,11 +421,6 @@ class AwsEcsExecutor(BaseExecutor):
|
|
407
421
|
# executor feature).
|
408
422
|
# TODO: remove when min airflow version >= 2.9.2
|
409
423
|
pass
|
410
|
-
if failure_reasons:
|
411
|
-
self.log.error(
|
412
|
-
"Pending ECS tasks failed to launch for the following reasons: %s. Retrying later.",
|
413
|
-
dict(failure_reasons),
|
414
|
-
)
|
415
424
|
|
416
425
|
def _run_task(
|
417
426
|
self, task_id: TaskInstanceKey, cmd: CommandType, queue: str, exec_config: ExecutorConfigType
|
@@ -543,3 +552,12 @@ class AwsEcsExecutor(BaseExecutor):
|
|
543
552
|
|
544
553
|
not_adopted_tis = [ti for ti in tis if ti not in adopted_tis]
|
545
554
|
return not_adopted_tis
|
555
|
+
|
556
|
+
def log_task_event(self, *, event: str, extra: str, ti_key: TaskInstanceKey):
|
557
|
+
# TODO: remove this method when min_airflow_version is set to higher than 2.10.0
|
558
|
+
with suppress(AttributeError):
|
559
|
+
super().log_task_event(
|
560
|
+
event=event,
|
561
|
+
extra=extra,
|
562
|
+
ti_key=ti_key,
|
563
|
+
)
|
apache_airflow_providers_amazon-8.27.0/airflow/providers/amazon/aws/hooks/kinesis_analytics.py
ADDED
@@ -0,0 +1,65 @@
|
|
1
|
+
# Licensed to the Apache Software Foundation (ASF) under one
|
2
|
+
# or more contributor license agreements. See the NOTICE file
|
3
|
+
# distributed with this work for additional information
|
4
|
+
# regarding copyright ownership. The ASF licenses this file
|
5
|
+
# to you under the Apache License, Version 2.0 (the
|
6
|
+
# "License"); you may not use this file except in compliance
|
7
|
+
# with the License. You may obtain a copy of the License at
|
8
|
+
#
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
#
|
11
|
+
# Unless required by applicable law or agreed to in writing,
|
12
|
+
# software distributed under the License is distributed on an
|
13
|
+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
14
|
+
# KIND, either express or implied. See the License for the
|
15
|
+
# specific language governing permissions and limitations
|
16
|
+
# under the License.
|
17
|
+
from __future__ import annotations
|
18
|
+
|
19
|
+
from airflow.providers.amazon.aws.hooks.base_aws import AwsBaseHook
|
20
|
+
|
21
|
+
|
22
|
+
class KinesisAnalyticsV2Hook(AwsBaseHook):
|
23
|
+
"""
|
24
|
+
Interact with Amazon Kinesis Analytics V2.
|
25
|
+
|
26
|
+
Provide thin wrapper around :external+boto3:py:class:`boto3.client("kinesisanalyticsv2") <KinesisAnalyticsV2.Client>`.
|
27
|
+
|
28
|
+
Additional arguments (such as ``aws_conn_id``) may be specified and
|
29
|
+
are passed down to the underlying AwsBaseHook.
|
30
|
+
|
31
|
+
.. seealso::
|
32
|
+
- :class:`airflow.providers.amazon.aws.hooks.base_aws.AwsBaseHook`
|
33
|
+
"""
|
34
|
+
|
35
|
+
APPLICATION_START_INTERMEDIATE_STATES: tuple[str, ...] = ("STARTING", "UPDATING", "AUTOSCALING")
|
36
|
+
APPLICATION_START_FAILURE_STATES: tuple[str, ...] = (
|
37
|
+
"DELETING",
|
38
|
+
"STOPPING",
|
39
|
+
"READY",
|
40
|
+
"FORCE_STOPPING",
|
41
|
+
"ROLLING_BACK",
|
42
|
+
"MAINTENANCE",
|
43
|
+
"ROLLED_BACK",
|
44
|
+
)
|
45
|
+
APPLICATION_START_SUCCESS_STATES: tuple[str, ...] = ("RUNNING",)
|
46
|
+
|
47
|
+
APPLICATION_STOP_INTERMEDIATE_STATES: tuple[str, ...] = (
|
48
|
+
"STARTING",
|
49
|
+
"UPDATING",
|
50
|
+
"AUTOSCALING",
|
51
|
+
"RUNNING",
|
52
|
+
"STOPPING",
|
53
|
+
"FORCE_STOPPING",
|
54
|
+
)
|
55
|
+
APPLICATION_STOP_FAILURE_STATES: tuple[str, ...] = (
|
56
|
+
"DELETING",
|
57
|
+
"ROLLING_BACK",
|
58
|
+
"MAINTENANCE",
|
59
|
+
"ROLLED_BACK",
|
60
|
+
)
|
61
|
+
APPLICATION_STOP_SUCCESS_STATES: tuple[str, ...] = ("READY",)
|
62
|
+
|
63
|
+
def __init__(self, *args, **kwargs) -> None:
|
64
|
+
kwargs["client_type"] = "kinesisanalyticsv2"
|
65
|
+
super().__init__(*args, **kwargs)
|
@@ -259,7 +259,7 @@ class RdsHook(AwsGenericHook["RDSClient"]):
|
|
259
259
|
return self.get_db_instance_state(db_instance_id)
|
260
260
|
|
261
261
|
target_state = target_state.lower()
|
262
|
-
if target_state in ("available", "deleted"):
|
262
|
+
if target_state in ("available", "deleted", "stopped"):
|
263
263
|
waiter = self.conn.get_waiter(f"db_instance_{target_state}") # type: ignore
|
264
264
|
wait(
|
265
265
|
waiter=waiter,
|
@@ -272,7 +272,7 @@ class RdsHook(AwsGenericHook["RDSClient"]):
|
|
272
272
|
)
|
273
273
|
else:
|
274
274
|
self._wait_for_state(poke, target_state, check_interval, max_attempts)
|
275
|
-
self.log.info("DB cluster
|
275
|
+
self.log.info("DB cluster '%s' reached the '%s' state", db_instance_id, target_state)
|
276
276
|
|
277
277
|
def get_db_cluster_state(self, db_cluster_id: str) -> str:
|
278
278
|
"""
|
@@ -310,7 +310,7 @@ class RdsHook(AwsGenericHook["RDSClient"]):
|
|
310
310
|
return self.get_db_cluster_state(db_cluster_id)
|
311
311
|
|
312
312
|
target_state = target_state.lower()
|
313
|
-
if target_state in ("available", "deleted"):
|
313
|
+
if target_state in ("available", "deleted", "stopped"):
|
314
314
|
waiter = self.conn.get_waiter(f"db_cluster_{target_state}") # type: ignore
|
315
315
|
waiter.wait(
|
316
316
|
DBClusterIdentifier=db_cluster_id,
|
@@ -41,6 +41,8 @@ from typing import TYPE_CHECKING, Any, AsyncIterator, Callable
|
|
41
41
|
from urllib.parse import urlsplit
|
42
42
|
from uuid import uuid4
|
43
43
|
|
44
|
+
from airflow.providers.common.compat.lineage.hook import get_hook_lineage_collector
|
45
|
+
|
44
46
|
if TYPE_CHECKING:
|
45
47
|
from mypy_boto3_s3.service_resource import Bucket as S3Bucket, Object as S3ResourceObject
|
46
48
|
|
@@ -1111,6 +1113,12 @@ class S3Hook(AwsBaseHook):
|
|
1111
1113
|
|
1112
1114
|
client = self.get_conn()
|
1113
1115
|
client.upload_file(filename, bucket_name, key, ExtraArgs=extra_args, Config=self.transfer_config)
|
1116
|
+
get_hook_lineage_collector().add_input_dataset(
|
1117
|
+
context=self, scheme="file", dataset_kwargs={"path": filename}
|
1118
|
+
)
|
1119
|
+
get_hook_lineage_collector().add_output_dataset(
|
1120
|
+
context=self, scheme="s3", dataset_kwargs={"bucket": bucket_name, "key": key}
|
1121
|
+
)
|
1114
1122
|
|
1115
1123
|
@unify_bucket_name_and_key
|
1116
1124
|
@provide_bucket_name
|
@@ -1251,6 +1259,10 @@ class S3Hook(AwsBaseHook):
|
|
1251
1259
|
ExtraArgs=extra_args,
|
1252
1260
|
Config=self.transfer_config,
|
1253
1261
|
)
|
1262
|
+
# No input because file_obj can be anything - handle in calling function if possible
|
1263
|
+
get_hook_lineage_collector().add_output_dataset(
|
1264
|
+
context=self, scheme="s3", dataset_kwargs={"bucket": bucket_name, "key": key}
|
1265
|
+
)
|
1254
1266
|
|
1255
1267
|
def copy_object(
|
1256
1268
|
self,
|
@@ -1306,6 +1318,12 @@ class S3Hook(AwsBaseHook):
|
|
1306
1318
|
response = self.get_conn().copy_object(
|
1307
1319
|
Bucket=dest_bucket_name, Key=dest_bucket_key, CopySource=copy_source, **kwargs
|
1308
1320
|
)
|
1321
|
+
get_hook_lineage_collector().add_input_dataset(
|
1322
|
+
context=self, scheme="s3", dataset_kwargs={"bucket": source_bucket_name, "key": source_bucket_key}
|
1323
|
+
)
|
1324
|
+
get_hook_lineage_collector().add_output_dataset(
|
1325
|
+
context=self, scheme="s3", dataset_kwargs={"bucket": dest_bucket_name, "key": dest_bucket_key}
|
1326
|
+
)
|
1309
1327
|
return response
|
1310
1328
|
|
1311
1329
|
@provide_bucket_name
|
@@ -1425,6 +1443,11 @@ class S3Hook(AwsBaseHook):
|
|
1425
1443
|
|
1426
1444
|
file_path.parent.mkdir(exist_ok=True, parents=True)
|
1427
1445
|
|
1446
|
+
get_hook_lineage_collector().add_output_dataset(
|
1447
|
+
context=self,
|
1448
|
+
scheme="file",
|
1449
|
+
dataset_kwargs={"path": file_path if file_path.is_absolute() else file_path.absolute()},
|
1450
|
+
)
|
1428
1451
|
file = open(file_path, "wb")
|
1429
1452
|
else:
|
1430
1453
|
file = NamedTemporaryFile(dir=local_path, prefix="airflow_tmp_", delete=False) # type: ignore
|
@@ -1435,7 +1458,9 @@ class S3Hook(AwsBaseHook):
|
|
1435
1458
|
ExtraArgs=self.extra_args,
|
1436
1459
|
Config=self.transfer_config,
|
1437
1460
|
)
|
1438
|
-
|
1461
|
+
get_hook_lineage_collector().add_input_dataset(
|
1462
|
+
context=self, scheme="s3", dataset_kwargs={"bucket": bucket_name, "key": key}
|
1463
|
+
)
|
1439
1464
|
return file.name
|
1440
1465
|
|
1441
1466
|
def generate_presigned_url(
|