apache-airflow-providers-amazon 8.28.0rc1__tar.gz → 8.29.0rc1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/PKG-INFO +13 -13
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/README.rst +8 -8
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/__init__.py +1 -1
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/auth_manager/aws_auth_manager.py +4 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/auth_manager/security_manager/aws_security_manager_override.py +5 -1
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/executors/batch/batch_executor.py +1 -1
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/executors/ecs/ecs_executor_config.py +13 -4
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/executors/ecs/utils.py +8 -2
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/hooks/s3.py +1 -1
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/log/cloudwatch_task_handler.py +2 -3
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/log/s3_task_handler.py +2 -4
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/operators/ecs.py +9 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/operators/glue_databrew.py +53 -16
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/sensors/batch.py +1 -3
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/sensors/ecs.py +4 -4
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/sensors/glue.py +1 -5
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/transfers/redshift_to_s3.py +13 -7
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/transfers/s3_to_redshift.py +65 -11
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/triggers/glue_databrew.py +35 -8
- apache_airflow_providers_amazon-8.29.0rc1/airflow/providers/amazon/aws/utils/openlineage.py +136 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/utils/waiter_with_logging.py +26 -6
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/waiters/stepfunctions.json +1 -1
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/get_provider_info.py +4 -3
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/pyproject.toml +5 -5
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/LICENSE +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/__init__.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/auth_manager/__init__.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/auth_manager/avp/__init__.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/auth_manager/avp/entities.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/auth_manager/avp/facade.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/auth_manager/avp/schema.json +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/auth_manager/cli/__init__.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/auth_manager/cli/avp_commands.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/auth_manager/cli/definition.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/auth_manager/cli/idc_commands.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/auth_manager/constants.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/auth_manager/security_manager/__init__.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/auth_manager/user.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/auth_manager/views/__init__.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/auth_manager/views/auth.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/datasets/__init__.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/datasets/s3.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/exceptions.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/executors/Dockerfile +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/executors/__init__.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/executors/batch/__init__.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/executors/batch/batch_executor_config.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/executors/batch/boto_schema.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/executors/batch/utils.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/executors/ecs/__init__.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/executors/ecs/boto_schema.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/executors/ecs/ecs_executor.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/executors/utils/__init__.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/executors/utils/base_config_keys.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/executors/utils/exponential_backoff_retry.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/fs/__init__.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/fs/s3.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/hooks/__init__.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/hooks/appflow.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/hooks/athena.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/hooks/athena_sql.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/hooks/base_aws.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/hooks/batch_client.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/hooks/batch_waiters.json +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/hooks/batch_waiters.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/hooks/bedrock.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/hooks/chime.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/hooks/cloud_formation.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/hooks/comprehend.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/hooks/datasync.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/hooks/dms.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/hooks/dynamodb.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/hooks/ec2.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/hooks/ecr.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/hooks/ecs.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/hooks/eks.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/hooks/elasticache_replication_group.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/hooks/emr.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/hooks/eventbridge.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/hooks/glacier.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/hooks/glue.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/hooks/glue_catalog.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/hooks/glue_crawler.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/hooks/glue_databrew.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/hooks/kinesis.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/hooks/kinesis_analytics.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/hooks/lambda_function.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/hooks/logs.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/hooks/neptune.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/hooks/opensearch_serverless.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/hooks/quicksight.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/hooks/rds.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/hooks/redshift_cluster.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/hooks/redshift_data.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/hooks/redshift_sql.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/hooks/sagemaker.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/hooks/secrets_manager.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/hooks/ses.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/hooks/sns.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/hooks/sqs.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/hooks/ssm.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/hooks/step_function.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/hooks/sts.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/hooks/verified_permissions.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/links/__init__.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/links/athena.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/links/base_aws.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/links/batch.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/links/emr.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/links/glue.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/links/logs.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/links/step_function.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/log/__init__.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/notifications/__init__.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/notifications/chime.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/notifications/sns.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/notifications/sqs.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/operators/__init__.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/operators/appflow.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/operators/athena.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/operators/base_aws.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/operators/batch.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/operators/bedrock.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/operators/cloud_formation.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/operators/comprehend.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/operators/datasync.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/operators/dms.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/operators/ec2.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/operators/eks.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/operators/emr.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/operators/eventbridge.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/operators/glacier.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/operators/glue.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/operators/glue_crawler.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/operators/kinesis_analytics.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/operators/lambda_function.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/operators/neptune.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/operators/quicksight.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/operators/rds.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/operators/redshift_cluster.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/operators/redshift_data.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/operators/s3.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/operators/sagemaker.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/operators/sns.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/operators/sqs.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/operators/step_function.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/secrets/__init__.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/secrets/secrets_manager.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/secrets/systems_manager.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/sensors/__init__.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/sensors/athena.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/sensors/base_aws.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/sensors/bedrock.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/sensors/cloud_formation.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/sensors/comprehend.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/sensors/dms.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/sensors/dynamodb.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/sensors/ec2.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/sensors/eks.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/sensors/emr.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/sensors/glacier.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/sensors/glue_catalog_partition.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/sensors/glue_crawler.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/sensors/kinesis_analytics.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/sensors/lambda_function.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/sensors/opensearch_serverless.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/sensors/quicksight.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/sensors/rds.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/sensors/redshift_cluster.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/sensors/s3.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/sensors/sagemaker.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/sensors/sqs.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/sensors/step_function.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/transfers/__init__.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/transfers/azure_blob_to_s3.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/transfers/base.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/transfers/dynamodb_to_s3.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/transfers/exasol_to_s3.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/transfers/ftp_to_s3.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/transfers/gcs_to_s3.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/transfers/glacier_to_gcs.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/transfers/google_api_to_s3.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/transfers/hive_to_dynamodb.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/transfers/http_to_s3.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/transfers/imap_attachment_to_s3.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/transfers/local_to_s3.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/transfers/mongo_to_s3.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/transfers/s3_to_dynamodb.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/transfers/s3_to_ftp.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/transfers/s3_to_sftp.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/transfers/s3_to_sql.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/transfers/salesforce_to_s3.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/transfers/sftp_to_s3.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/transfers/sql_to_s3.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/triggers/README.md +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/triggers/__init__.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/triggers/athena.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/triggers/base.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/triggers/batch.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/triggers/bedrock.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/triggers/comprehend.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/triggers/ec2.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/triggers/ecs.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/triggers/eks.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/triggers/emr.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/triggers/glue.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/triggers/glue_crawler.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/triggers/kinesis_analytics.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/triggers/lambda_function.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/triggers/neptune.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/triggers/opensearch_serverless.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/triggers/rds.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/triggers/redshift_cluster.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/triggers/redshift_data.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/triggers/s3.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/triggers/sagemaker.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/triggers/sqs.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/triggers/step_function.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/utils/__init__.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/utils/connection_wrapper.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/utils/eks_get_token.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/utils/emailer.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/utils/identifiers.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/utils/mixins.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/utils/rds.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/utils/redshift.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/utils/sagemaker.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/utils/sqs.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/utils/suppress.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/utils/tags.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/utils/task_log_fetcher.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/utils/waiter.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/waiters/README.md +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/waiters/__init__.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/waiters/appflow.json +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/waiters/athena.json +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/waiters/base_waiter.py +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/waiters/batch.json +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/waiters/bedrock-agent.json +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/waiters/bedrock.json +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/waiters/comprehend.json +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/waiters/databrew.json +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/waiters/dynamodb.json +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/waiters/ecs.json +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/waiters/eks.json +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/waiters/emr-containers.json +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/waiters/emr-serverless.json +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/waiters/emr.json +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/waiters/glue.json +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/waiters/kinesisanalyticsv2.json +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/waiters/neptune.json +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/waiters/opensearchserverless.json +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/waiters/rds.json +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/waiters/redshift.json +0 -0
- {apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/airflow/providers/amazon/aws/waiters/sagemaker.json +0 -0
{apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/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.29.0rc1
|
4
4
|
Summary: Provider package apache-airflow-providers-amazon for Apache Airflow
|
5
5
|
Keywords: airflow-provider,amazon,airflow,integration
|
6
6
|
Author-email: Apache Software Foundation <dev@airflow.apache.org>
|
@@ -23,7 +23,6 @@ Classifier: Programming Language :: Python :: 3.12
|
|
23
23
|
Classifier: Topic :: System :: Monitoring
|
24
24
|
Requires-Dist: PyAthena>=3.0.10
|
25
25
|
Requires-Dist: apache-airflow-providers-common-compat>=1.1.0rc0
|
26
|
-
Requires-Dist: apache-airflow-providers-common-compat>=1.1.0rc0
|
27
26
|
Requires-Dist: apache-airflow-providers-common-sql>=1.3.1rc0
|
28
27
|
Requires-Dist: apache-airflow-providers-http
|
29
28
|
Requires-Dist: apache-airflow>=2.8.0rc0
|
@@ -33,9 +32,10 @@ Requires-Dist: botocore>=1.34.90
|
|
33
32
|
Requires-Dist: inflection>=0.5.1
|
34
33
|
Requires-Dist: jmespath>=0.7.0
|
35
34
|
Requires-Dist: jsonpath_ng>=1.5.3
|
35
|
+
Requires-Dist: python3-saml>=1.16.0
|
36
36
|
Requires-Dist: redshift_connector>=2.0.918
|
37
37
|
Requires-Dist: sqlalchemy_redshift>=0.8.6
|
38
|
-
Requires-Dist: watchtower>=3.0.0,<4
|
38
|
+
Requires-Dist: watchtower>=3.0.0,!=3.3.0,<4
|
39
39
|
Requires-Dist: aiobotocore[boto3]>=2.13.0 ; extra == "aiobotocore"
|
40
40
|
Requires-Dist: apache-airflow-providers-apache-hive ; extra == "apache.hive"
|
41
41
|
Requires-Dist: apache-airflow-providers-cncf-kubernetes>=7.2.0rc0 ; extra == "cncf.kubernetes"
|
@@ -56,8 +56,8 @@ Requires-Dist: s3fs>=2023.10.0 ; extra == "s3fs"
|
|
56
56
|
Requires-Dist: apache-airflow-providers-salesforce ; extra == "salesforce"
|
57
57
|
Requires-Dist: apache-airflow-providers-ssh ; extra == "ssh"
|
58
58
|
Project-URL: Bug Tracker, https://github.com/apache/airflow/issues
|
59
|
-
Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-amazon/8.
|
60
|
-
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.29.0/changelog.html
|
60
|
+
Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-amazon/8.29.0
|
61
61
|
Project-URL: Slack Chat, https://s.apache.org/airflow-slack
|
62
62
|
Project-URL: Source Code, https://github.com/apache/airflow
|
63
63
|
Project-URL: Twitter, https://twitter.com/ApacheAirflow
|
@@ -125,7 +125,7 @@ Provides-Extra: ssh
|
|
125
125
|
|
126
126
|
Package ``apache-airflow-providers-amazon``
|
127
127
|
|
128
|
-
Release: ``8.
|
128
|
+
Release: ``8.29.0.rc1``
|
129
129
|
|
130
130
|
|
131
131
|
Amazon integration (including `Amazon Web Services (AWS) <https://aws.amazon.com/>`__).
|
@@ -138,7 +138,7 @@ This is a provider package for ``amazon`` provider. All classes for this provide
|
|
138
138
|
are in ``airflow.providers.amazon`` python package.
|
139
139
|
|
140
140
|
You can find package information and changelog for the provider
|
141
|
-
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.29.0/>`_.
|
142
142
|
|
143
143
|
Installation
|
144
144
|
------------
|
@@ -152,25 +152,25 @@ The package supports the following python versions: 3.8,3.9,3.10,3.11,3.12
|
|
152
152
|
Requirements
|
153
153
|
------------
|
154
154
|
|
155
|
-
==========================================
|
155
|
+
========================================== ======================
|
156
156
|
PIP package Version required
|
157
|
-
==========================================
|
157
|
+
========================================== ======================
|
158
158
|
``apache-airflow`` ``>=2.8.0``
|
159
159
|
``apache-airflow-providers-common-compat`` ``>=1.1.0``
|
160
160
|
``apache-airflow-providers-common-sql`` ``>=1.3.1``
|
161
161
|
``apache-airflow-providers-http``
|
162
|
-
``apache-airflow-providers-common-compat`` ``>=1.1.0``
|
163
162
|
``boto3`` ``>=1.34.90``
|
164
163
|
``botocore`` ``>=1.34.90``
|
165
164
|
``inflection`` ``>=0.5.1``
|
166
|
-
``watchtower`` ``>=3.0.0,<4``
|
165
|
+
``watchtower`` ``>=3.0.0,!=3.3.0,<4``
|
167
166
|
``jsonpath_ng`` ``>=1.5.3``
|
168
167
|
``redshift_connector`` ``>=2.0.918``
|
169
168
|
``sqlalchemy_redshift`` ``>=0.8.6``
|
170
169
|
``asgiref`` ``>=2.3.0``
|
171
170
|
``PyAthena`` ``>=3.0.10``
|
172
171
|
``jmespath`` ``>=0.7.0``
|
173
|
-
|
172
|
+
``python3-saml`` ``>=1.16.0``
|
173
|
+
========================================== ======================
|
174
174
|
|
175
175
|
Cross provider package dependencies
|
176
176
|
-----------------------------------
|
@@ -205,4 +205,4 @@ Dependent package
|
|
205
205
|
====================================================================================================================== ===================
|
206
206
|
|
207
207
|
The changelog for the provider package can be found in the
|
208
|
-
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-amazon/8.
|
208
|
+
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-amazon/8.29.0/changelog.html>`_.
|
{apache_airflow_providers_amazon-8.28.0rc1 → apache_airflow_providers_amazon-8.29.0rc1}/README.rst
RENAMED
@@ -42,7 +42,7 @@
|
|
42
42
|
|
43
43
|
Package ``apache-airflow-providers-amazon``
|
44
44
|
|
45
|
-
Release: ``8.
|
45
|
+
Release: ``8.29.0.rc1``
|
46
46
|
|
47
47
|
|
48
48
|
Amazon integration (including `Amazon Web Services (AWS) <https://aws.amazon.com/>`__).
|
@@ -55,7 +55,7 @@ This is a provider package for ``amazon`` provider. All classes for this provide
|
|
55
55
|
are in ``airflow.providers.amazon`` python package.
|
56
56
|
|
57
57
|
You can find package information and changelog for the provider
|
58
|
-
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-amazon/8.
|
58
|
+
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-amazon/8.29.0/>`_.
|
59
59
|
|
60
60
|
Installation
|
61
61
|
------------
|
@@ -69,25 +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
|
-
==========================================
|
72
|
+
========================================== ======================
|
73
73
|
PIP package Version required
|
74
|
-
==========================================
|
74
|
+
========================================== ======================
|
75
75
|
``apache-airflow`` ``>=2.8.0``
|
76
76
|
``apache-airflow-providers-common-compat`` ``>=1.1.0``
|
77
77
|
``apache-airflow-providers-common-sql`` ``>=1.3.1``
|
78
78
|
``apache-airflow-providers-http``
|
79
|
-
``apache-airflow-providers-common-compat`` ``>=1.1.0``
|
80
79
|
``boto3`` ``>=1.34.90``
|
81
80
|
``botocore`` ``>=1.34.90``
|
82
81
|
``inflection`` ``>=0.5.1``
|
83
|
-
``watchtower`` ``>=3.0.0,<4``
|
82
|
+
``watchtower`` ``>=3.0.0,!=3.3.0,<4``
|
84
83
|
``jsonpath_ng`` ``>=1.5.3``
|
85
84
|
``redshift_connector`` ``>=2.0.918``
|
86
85
|
``sqlalchemy_redshift`` ``>=0.8.6``
|
87
86
|
``asgiref`` ``>=2.3.0``
|
88
87
|
``PyAthena`` ``>=3.0.10``
|
89
88
|
``jmespath`` ``>=0.7.0``
|
90
|
-
|
89
|
+
``python3-saml`` ``>=1.16.0``
|
90
|
+
========================================== ======================
|
91
91
|
|
92
92
|
Cross provider package dependencies
|
93
93
|
-----------------------------------
|
@@ -122,4 +122,4 @@ Dependent package
|
|
122
122
|
====================================================================================================================== ===================
|
123
123
|
|
124
124
|
The changelog for the provider package can be found in the
|
125
|
-
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-amazon/8.
|
125
|
+
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-amazon/8.29.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.29.0"
|
33
33
|
|
34
34
|
if packaging.version.parse(packaging.version.parse(airflow_version).base_version) < packaging.version.parse(
|
35
35
|
"2.8.0"
|
@@ -36,6 +36,7 @@ from airflow.providers.amazon.aws.auth_manager.cli.definition import (
|
|
36
36
|
from airflow.providers.amazon.aws.auth_manager.security_manager.aws_security_manager_override import (
|
37
37
|
AwsSecurityManagerOverride,
|
38
38
|
)
|
39
|
+
from airflow.providers.amazon.aws.auth_manager.views.auth import AwsAuthManagerAuthenticationViews
|
39
40
|
|
40
41
|
try:
|
41
42
|
from airflow.auth.managers.base_auth_manager import BaseAuthManager, ResourceMethod
|
@@ -423,6 +424,9 @@ class AwsAuthManager(BaseAuthManager):
|
|
423
424
|
),
|
424
425
|
]
|
425
426
|
|
427
|
+
def register_views(self) -> None:
|
428
|
+
self.appbuilder.add_view_no_menu(AwsAuthManagerAuthenticationViews())
|
429
|
+
|
426
430
|
@staticmethod
|
427
431
|
def _get_menu_item_request(resource_name: str) -> IsAuthorizedRequest:
|
428
432
|
return {
|
@@ -27,7 +27,11 @@ except ImportError:
|
|
27
27
|
|
28
28
|
|
29
29
|
class AwsSecurityManagerOverride(AirflowSecurityManagerV2):
|
30
|
-
"""
|
30
|
+
"""
|
31
|
+
The security manager override specific to AWS auth manager.
|
32
|
+
|
33
|
+
This class is only used in Airflow 2. This can be safely be removed when min Airflow version >= 3
|
34
|
+
"""
|
31
35
|
|
32
36
|
def register_views(self):
|
33
37
|
"""Register views specific to AWS auth manager."""
|
@@ -35,6 +35,8 @@ from json import JSONDecodeError
|
|
35
35
|
from airflow.configuration import conf
|
36
36
|
from airflow.providers.amazon.aws.executors.ecs.utils import (
|
37
37
|
CONFIG_GROUP_NAME,
|
38
|
+
ECS_LAUNCH_TYPE_EC2,
|
39
|
+
ECS_LAUNCH_TYPE_FARGATE,
|
38
40
|
AllEcsConfigKeys,
|
39
41
|
RunTaskKwargsConfigKeys,
|
40
42
|
camelize_dict_keys,
|
@@ -56,13 +58,15 @@ def _fetch_config_values() -> dict[str, str]:
|
|
56
58
|
|
57
59
|
|
58
60
|
def build_task_kwargs() -> dict:
|
61
|
+
all_config_keys = AllEcsConfigKeys()
|
59
62
|
# This will put some kwargs at the root of the dictionary that do NOT belong there. However,
|
60
63
|
# the code below expects them to be there and will rearrange them as necessary.
|
61
64
|
task_kwargs = _fetch_config_values()
|
62
65
|
task_kwargs.update(_fetch_templated_kwargs())
|
63
66
|
|
64
|
-
has_launch_type: bool =
|
65
|
-
has_capacity_provider: bool =
|
67
|
+
has_launch_type: bool = all_config_keys.LAUNCH_TYPE in task_kwargs
|
68
|
+
has_capacity_provider: bool = all_config_keys.CAPACITY_PROVIDER_STRATEGY in task_kwargs
|
69
|
+
is_launch_type_ec2: bool = task_kwargs.get(all_config_keys.LAUNCH_TYPE, None) == ECS_LAUNCH_TYPE_EC2
|
66
70
|
|
67
71
|
if has_capacity_provider and has_launch_type:
|
68
72
|
raise ValueError(
|
@@ -75,7 +79,12 @@ def build_task_kwargs() -> dict:
|
|
75
79
|
# the final fallback.
|
76
80
|
cluster = EcsHook().conn.describe_clusters(clusters=[task_kwargs["cluster"]])["clusters"][0]
|
77
81
|
if not cluster.get("defaultCapacityProviderStrategy"):
|
78
|
-
task_kwargs[
|
82
|
+
task_kwargs[all_config_keys.LAUNCH_TYPE] = ECS_LAUNCH_TYPE_FARGATE
|
83
|
+
|
84
|
+
# If you're using the EC2 launch type, you should not/can not provide the platform_version. In this
|
85
|
+
# case we'll drop it on the floor on behalf of the user, instead of throwing an exception.
|
86
|
+
if is_launch_type_ec2:
|
87
|
+
task_kwargs.pop(all_config_keys.PLATFORM_VERSION, None)
|
79
88
|
|
80
89
|
# There can only be 1 count of these containers
|
81
90
|
task_kwargs["count"] = 1 # type: ignore
|
@@ -105,7 +114,7 @@ def build_task_kwargs() -> dict:
|
|
105
114
|
"awsvpcConfiguration": {
|
106
115
|
"subnets": str(subnets).split(",") if subnets else None,
|
107
116
|
"securityGroups": str(security_groups).split(",") if security_groups else None,
|
108
|
-
"assignPublicIp": parse_assign_public_ip(assign_public_ip),
|
117
|
+
"assignPublicIp": parse_assign_public_ip(assign_public_ip, is_launch_type_ec2),
|
109
118
|
}
|
110
119
|
}
|
111
120
|
)
|
@@ -40,6 +40,9 @@ CommandType = List[str]
|
|
40
40
|
ExecutorConfigFunctionType = Callable[[CommandType], dict]
|
41
41
|
ExecutorConfigType = Dict[str, Any]
|
42
42
|
|
43
|
+
ECS_LAUNCH_TYPE_EC2 = "EC2"
|
44
|
+
ECS_LAUNCH_TYPE_FARGATE = "FARGATE"
|
45
|
+
|
43
46
|
CONFIG_GROUP_NAME = "aws_ecs_executor"
|
44
47
|
|
45
48
|
CONFIG_DEFAULTS = {
|
@@ -247,9 +250,12 @@ def _recursive_flatten_dict(nested_dict):
|
|
247
250
|
return dict(items)
|
248
251
|
|
249
252
|
|
250
|
-
def parse_assign_public_ip(assign_public_ip):
|
253
|
+
def parse_assign_public_ip(assign_public_ip, is_launch_type_ec2=False):
|
251
254
|
"""Convert "assign_public_ip" from True/False to ENABLE/DISABLE."""
|
252
|
-
|
255
|
+
# If the launch type is EC2, you cannot/should not provide the assignPublicIp parameter (which is
|
256
|
+
# specific to Fargate)
|
257
|
+
if not is_launch_type_ec2:
|
258
|
+
return "ENABLED" if assign_public_ip == "True" else "DISABLED"
|
253
259
|
|
254
260
|
|
255
261
|
def camelize_dict_keys(nested_dict) -> dict:
|
@@ -238,7 +238,7 @@ class S3Hook(AwsBaseHook):
|
|
238
238
|
valid_s3_virtual_hosted_format = "https://bucket-name.s3.region-code.amazonaws.com/key-name"
|
239
239
|
format = s3url.split("//")
|
240
240
|
if re.match(r"s3[na]?:", format[0], re.IGNORECASE):
|
241
|
-
parsed_url = urlsplit(s3url)
|
241
|
+
parsed_url = urlsplit(s3url, allow_fragments=False)
|
242
242
|
if not parsed_url.netloc:
|
243
243
|
raise S3HookUriParseFailure(
|
244
244
|
"Please provide a bucket name using a valid format of the form: "
|
@@ -71,13 +71,12 @@ class CloudwatchTaskHandler(FileTaskHandler, LoggingMixin):
|
|
71
71
|
:param base_log_folder: base folder to store logs locally
|
72
72
|
:param log_group_arn: ARN of the Cloudwatch log group for remote log storage
|
73
73
|
with format ``arn:aws:logs:{region name}:{account id}:log-group:{group name}``
|
74
|
-
:param filename_template: template for file name (local storage) or log stream name (remote)
|
75
74
|
"""
|
76
75
|
|
77
76
|
trigger_should_wrap = True
|
78
77
|
|
79
|
-
def __init__(self, base_log_folder: str, log_group_arn: str,
|
80
|
-
super().__init__(base_log_folder
|
78
|
+
def __init__(self, base_log_folder: str, log_group_arn: str, **kwargs):
|
79
|
+
super().__init__(base_log_folder)
|
81
80
|
split_arn = log_group_arn.split(":")
|
82
81
|
|
83
82
|
self.handler = None
|
@@ -42,10 +42,8 @@ class S3TaskHandler(FileTaskHandler, LoggingMixin):
|
|
42
42
|
|
43
43
|
trigger_should_wrap = True
|
44
44
|
|
45
|
-
def __init__(
|
46
|
-
|
47
|
-
):
|
48
|
-
super().__init__(base_log_folder, filename_template)
|
45
|
+
def __init__(self, base_log_folder: str, s3_log_folder: str, **kwargs):
|
46
|
+
super().__init__(base_log_folder)
|
49
47
|
self.handler: logging.FileHandler | None = None
|
50
48
|
self.remote_base = s3_log_folder
|
51
49
|
self.log_relative_path = ""
|
@@ -373,6 +373,10 @@ class EcsRunTaskOperator(EcsBaseOperator):
|
|
373
373
|
When capacity_provider_strategy is specified, the launch_type parameter is omitted.
|
374
374
|
If no capacity_provider_strategy or launch_type is specified,
|
375
375
|
the default capacity provider strategy for the cluster is used.
|
376
|
+
:param volume_configurations: the volume configurations to use when using capacity provider. The name of the volume must match
|
377
|
+
the name from the task definition.
|
378
|
+
You can configure the settings like size, volume type, IOPS, throughput and others mentioned in
|
379
|
+
(https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_TaskManagedEBSVolumeConfiguration.html)
|
376
380
|
:param group: the name of the task group associated with the task
|
377
381
|
:param placement_constraints: an array of placement constraint objects to use for
|
378
382
|
the task
|
@@ -420,6 +424,7 @@ class EcsRunTaskOperator(EcsBaseOperator):
|
|
420
424
|
"overrides",
|
421
425
|
"launch_type",
|
422
426
|
"capacity_provider_strategy",
|
427
|
+
"volume_configurations",
|
423
428
|
"group",
|
424
429
|
"placement_constraints",
|
425
430
|
"placement_strategy",
|
@@ -450,6 +455,7 @@ class EcsRunTaskOperator(EcsBaseOperator):
|
|
450
455
|
overrides: dict,
|
451
456
|
launch_type: str = "EC2",
|
452
457
|
capacity_provider_strategy: list | None = None,
|
458
|
+
volume_configurations: list | None = None,
|
453
459
|
group: str | None = None,
|
454
460
|
placement_constraints: list | None = None,
|
455
461
|
placement_strategy: list | None = None,
|
@@ -479,6 +485,7 @@ class EcsRunTaskOperator(EcsBaseOperator):
|
|
479
485
|
self.overrides = overrides
|
480
486
|
self.launch_type = launch_type
|
481
487
|
self.capacity_provider_strategy = capacity_provider_strategy
|
488
|
+
self.volume_configurations = volume_configurations
|
482
489
|
self.group = group
|
483
490
|
self.placement_constraints = placement_constraints
|
484
491
|
self.placement_strategy = placement_strategy
|
@@ -614,6 +621,8 @@ class EcsRunTaskOperator(EcsBaseOperator):
|
|
614
621
|
|
615
622
|
if self.capacity_provider_strategy:
|
616
623
|
run_opts["capacityProviderStrategy"] = self.capacity_provider_strategy
|
624
|
+
if self.volume_configurations is not None:
|
625
|
+
run_opts["volumeConfigurations"] = self.volume_configurations
|
617
626
|
elif self.launch_type:
|
618
627
|
run_opts["launchType"] = self.launch_type
|
619
628
|
if self.platform_version is not None:
|
@@ -17,20 +17,22 @@
|
|
17
17
|
# under the License.
|
18
18
|
from __future__ import annotations
|
19
19
|
|
20
|
-
|
20
|
+
import warnings
|
21
21
|
from typing import TYPE_CHECKING, Any, Sequence
|
22
22
|
|
23
23
|
from airflow.configuration import conf
|
24
|
-
from airflow.
|
24
|
+
from airflow.exceptions import AirflowException, AirflowProviderDeprecationWarning
|
25
25
|
from airflow.providers.amazon.aws.hooks.glue_databrew import GlueDataBrewHook
|
26
|
+
from airflow.providers.amazon.aws.operators.base_aws import AwsBaseOperator
|
26
27
|
from airflow.providers.amazon.aws.triggers.glue_databrew import GlueDataBrewJobCompleteTrigger
|
27
28
|
from airflow.providers.amazon.aws.utils import validate_execute_complete_event
|
29
|
+
from airflow.providers.amazon.aws.utils.mixins import aws_template_fields
|
28
30
|
|
29
31
|
if TYPE_CHECKING:
|
30
32
|
from airflow.utils.context import Context
|
31
33
|
|
32
34
|
|
33
|
-
class GlueDataBrewStartJobOperator(
|
35
|
+
class GlueDataBrewStartJobOperator(AwsBaseOperator[GlueDataBrewHook]):
|
34
36
|
"""
|
35
37
|
Start an AWS Glue DataBrew job.
|
36
38
|
|
@@ -47,14 +49,30 @@ class GlueDataBrewStartJobOperator(BaseOperator):
|
|
47
49
|
:param deferrable: If True, the operator will wait asynchronously for the job to complete.
|
48
50
|
This implies waiting for completion. This mode requires aiobotocore module to be installed.
|
49
51
|
(default: False)
|
50
|
-
:param delay: Time in seconds to wait between status checks.
|
52
|
+
:param delay: Time in seconds to wait between status checks. (Deprecated).
|
53
|
+
:param waiter_delay: Time in seconds to wait between status checks. Default is 30.
|
54
|
+
:param waiter_max_attempts: Maximum number of attempts to check for job completion. (default: 60)
|
51
55
|
:return: dictionary with key run_id and value of the resulting job's run_id.
|
56
|
+
|
57
|
+
:param aws_conn_id: The Airflow connection used for AWS credentials.
|
58
|
+
If this is ``None`` or empty then the default boto3 behaviour is used. If
|
59
|
+
running Airflow in a distributed manner and aws_conn_id is None or
|
60
|
+
empty, then default boto3 configuration would be used (and must be
|
61
|
+
maintained on each worker node).
|
62
|
+
:param region_name: AWS region_name. If not specified then the default boto3 behaviour is used.
|
63
|
+
:param verify: Whether or not to verify SSL certificates. See:
|
64
|
+
https://boto3.amazonaws.com/v1/documentation/api/latest/reference/core/session.html
|
65
|
+
:param botocore_config: Configuration dictionary (key-values) for botocore client. See:
|
66
|
+
https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html
|
52
67
|
"""
|
53
68
|
|
54
|
-
|
69
|
+
aws_hook_class = GlueDataBrewHook
|
70
|
+
|
71
|
+
template_fields: Sequence[str] = aws_template_fields(
|
55
72
|
"job_name",
|
56
73
|
"wait_for_completion",
|
57
|
-
"
|
74
|
+
"waiter_delay",
|
75
|
+
"waiter_max_attempts",
|
58
76
|
"deferrable",
|
59
77
|
)
|
60
78
|
|
@@ -62,21 +80,25 @@ class GlueDataBrewStartJobOperator(BaseOperator):
|
|
62
80
|
self,
|
63
81
|
job_name: str,
|
64
82
|
wait_for_completion: bool = True,
|
65
|
-
delay: int =
|
83
|
+
delay: int | None = None,
|
84
|
+
waiter_delay: int = 30,
|
85
|
+
waiter_max_attempts: int = 60,
|
66
86
|
deferrable: bool = conf.getboolean("operators", "default_deferrable", fallback=False),
|
67
|
-
aws_conn_id: str | None = "aws_default",
|
68
87
|
**kwargs,
|
69
88
|
):
|
70
89
|
super().__init__(**kwargs)
|
71
90
|
self.job_name = job_name
|
72
91
|
self.wait_for_completion = wait_for_completion
|
92
|
+
self.waiter_delay = waiter_delay
|
93
|
+
self.waiter_max_attempts = waiter_max_attempts
|
73
94
|
self.deferrable = deferrable
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
95
|
+
if delay is not None:
|
96
|
+
warnings.warn(
|
97
|
+
"please use `waiter_delay` instead of delay.",
|
98
|
+
AirflowProviderDeprecationWarning,
|
99
|
+
stacklevel=2,
|
100
|
+
)
|
101
|
+
self.waiter_delay = delay
|
80
102
|
|
81
103
|
def execute(self, context: Context):
|
82
104
|
job = self.hook.conn.start_job_run(Name=self.job_name)
|
@@ -88,7 +110,14 @@ class GlueDataBrewStartJobOperator(BaseOperator):
|
|
88
110
|
self.log.info("Deferring job %s with run_id %s", self.job_name, run_id)
|
89
111
|
self.defer(
|
90
112
|
trigger=GlueDataBrewJobCompleteTrigger(
|
91
|
-
|
113
|
+
job_name=self.job_name,
|
114
|
+
run_id=run_id,
|
115
|
+
waiter_delay=self.waiter_delay,
|
116
|
+
waiter_max_attempts=self.waiter_max_attempts,
|
117
|
+
aws_conn_id=self.aws_conn_id,
|
118
|
+
region_name=self.region_name,
|
119
|
+
verify=self.verify,
|
120
|
+
botocore_config=self.botocore_config,
|
92
121
|
),
|
93
122
|
method_name="execute_complete",
|
94
123
|
)
|
@@ -97,7 +126,12 @@ class GlueDataBrewStartJobOperator(BaseOperator):
|
|
97
126
|
self.log.info(
|
98
127
|
"Waiting for AWS Glue DataBrew Job: %s. Run Id: %s to complete.", self.job_name, run_id
|
99
128
|
)
|
100
|
-
status = self.hook.job_completion(
|
129
|
+
status = self.hook.job_completion(
|
130
|
+
job_name=self.job_name,
|
131
|
+
delay=self.waiter_delay,
|
132
|
+
run_id=run_id,
|
133
|
+
max_attempts=self.waiter_max_attempts,
|
134
|
+
)
|
101
135
|
self.log.info("Glue DataBrew Job: %s status: %s", self.job_name, status)
|
102
136
|
|
103
137
|
return {"run_id": run_id}
|
@@ -105,6 +139,9 @@ class GlueDataBrewStartJobOperator(BaseOperator):
|
|
105
139
|
def execute_complete(self, context: Context, event: dict[str, Any] | None = None) -> dict[str, str]:
|
106
140
|
event = validate_execute_complete_event(event)
|
107
141
|
|
142
|
+
if event["status"] != "success":
|
143
|
+
raise AirflowException("Error while running AWS Glue DataBrew job: %s", event)
|
144
|
+
|
108
145
|
run_id = event.get("run_id", "")
|
109
146
|
status = event.get("status", "")
|
110
147
|
|
@@ -23,7 +23,7 @@ from typing import TYPE_CHECKING, Any, Sequence
|
|
23
23
|
from deprecated import deprecated
|
24
24
|
|
25
25
|
from airflow.configuration import conf
|
26
|
-
from airflow.exceptions import AirflowException, AirflowProviderDeprecationWarning
|
26
|
+
from airflow.exceptions import AirflowException, AirflowProviderDeprecationWarning
|
27
27
|
from airflow.providers.amazon.aws.hooks.batch_client import BatchClientHook
|
28
28
|
from airflow.providers.amazon.aws.triggers.batch import BatchJobTrigger
|
29
29
|
from airflow.sensors.base import BaseSensorOperator
|
@@ -265,6 +265,4 @@ class BatchJobQueueSensor(BaseSensorOperator):
|
|
265
265
|
return False
|
266
266
|
|
267
267
|
message = f"AWS Batch job queue failed. AWS Batch job queue status: {status}"
|
268
|
-
if self.soft_fail:
|
269
|
-
raise AirflowSkipException(message)
|
270
268
|
raise AirflowException(message)
|
@@ -35,7 +35,7 @@ if TYPE_CHECKING:
|
|
35
35
|
from airflow.utils.context import Context
|
36
36
|
|
37
37
|
|
38
|
-
def _check_failed(current_state, target_state, failure_states
|
38
|
+
def _check_failed(current_state, target_state, failure_states) -> None:
|
39
39
|
if (current_state != target_state) and (current_state in failure_states):
|
40
40
|
raise AirflowException(
|
41
41
|
f"Terminal state reached. Current state: {current_state}, Expected state: {target_state}"
|
@@ -86,7 +86,7 @@ class EcsClusterStateSensor(EcsBaseSensor):
|
|
86
86
|
cluster_state = EcsClusterStates(self.hook.get_cluster_state(cluster_name=self.cluster_name))
|
87
87
|
|
88
88
|
self.log.info("Cluster state: %s, waiting for: %s", cluster_state, self.target_state)
|
89
|
-
_check_failed(cluster_state, self.target_state, self.failure_states
|
89
|
+
_check_failed(cluster_state, self.target_state, self.failure_states)
|
90
90
|
|
91
91
|
return cluster_state == self.target_state
|
92
92
|
|
@@ -132,7 +132,7 @@ class EcsTaskDefinitionStateSensor(EcsBaseSensor):
|
|
132
132
|
)
|
133
133
|
|
134
134
|
self.log.info("Task Definition state: %s, waiting for: %s", task_definition_state, self.target_state)
|
135
|
-
_check_failed(task_definition_state, self.target_state, [self.failure_states]
|
135
|
+
_check_failed(task_definition_state, self.target_state, [self.failure_states])
|
136
136
|
return task_definition_state == self.target_state
|
137
137
|
|
138
138
|
|
@@ -172,5 +172,5 @@ class EcsTaskStateSensor(EcsBaseSensor):
|
|
172
172
|
task_state = EcsTaskStates(self.hook.get_task_state(cluster=self.cluster, task=self.task))
|
173
173
|
|
174
174
|
self.log.info("Task state: %s, waiting for: %s", task_state, self.target_state)
|
175
|
-
_check_failed(task_state, self.target_state, self.failure_states
|
175
|
+
_check_failed(task_state, self.target_state, self.failure_states)
|
176
176
|
return task_state == self.target_state
|
@@ -21,7 +21,7 @@ from functools import cached_property
|
|
21
21
|
from typing import TYPE_CHECKING, Any, Sequence
|
22
22
|
|
23
23
|
from airflow.configuration import conf
|
24
|
-
from airflow.exceptions import AirflowException
|
24
|
+
from airflow.exceptions import AirflowException
|
25
25
|
from airflow.providers.amazon.aws.hooks.glue import GlueDataQualityHook, GlueJobHook
|
26
26
|
from airflow.providers.amazon.aws.sensors.base_aws import AwsBaseSensor
|
27
27
|
from airflow.providers.amazon.aws.triggers.glue import (
|
@@ -177,8 +177,6 @@ class GlueDataQualityRuleSetEvaluationRunSensor(AwsBaseSensor[GlueDataQualityHoo
|
|
177
177
|
|
178
178
|
if event["status"] != "success":
|
179
179
|
message = f"Error: AWS Glue data quality ruleset evaluation run: {event}"
|
180
|
-
if self.soft_fail:
|
181
|
-
raise AirflowSkipException(message)
|
182
180
|
raise AirflowException(message)
|
183
181
|
|
184
182
|
self.hook.validate_evaluation_run_results(
|
@@ -300,8 +298,6 @@ class GlueDataQualityRuleRecommendationRunSensor(AwsBaseSensor[GlueDataQualityHo
|
|
300
298
|
|
301
299
|
if event["status"] != "success":
|
302
300
|
message = f"Error: AWS Glue data quality recommendation run: {event}"
|
303
|
-
if self.soft_fail:
|
304
|
-
raise AirflowSkipException(message)
|
305
301
|
raise AirflowException(message)
|
306
302
|
|
307
303
|
if self.show_results:
|
@@ -44,11 +44,12 @@ class RedshiftToS3Operator(BaseOperator):
|
|
44
44
|
:param s3_bucket: reference to a specific S3 bucket
|
45
45
|
:param s3_key: reference to a specific S3 key. If ``table_as_file_name`` is set
|
46
46
|
to False, this param must include the desired file name
|
47
|
-
:param schema: reference to a specific schema in redshift database
|
48
|
-
|
49
|
-
:param table: reference to a specific table in redshift database
|
50
|
-
|
51
|
-
:param select_query: custom select query to fetch data from redshift database
|
47
|
+
:param schema: reference to a specific schema in redshift database,
|
48
|
+
used when ``table`` param provided and ``select_query`` param not provided
|
49
|
+
:param table: reference to a specific table in redshift database,
|
50
|
+
used when ``schema`` param provided and ``select_query`` param not provided
|
51
|
+
:param select_query: custom select query to fetch data from redshift database,
|
52
|
+
has precedence over default query `SELECT * FROM ``schema``.``table``
|
52
53
|
:param redshift_conn_id: reference to a specific redshift database
|
53
54
|
:param aws_conn_id: reference to a specific S3 connection
|
54
55
|
If the AWS connection contains 'aws_iam_role' in ``extras``
|
@@ -138,12 +139,17 @@ class RedshiftToS3Operator(BaseOperator):
|
|
138
139
|
{unload_options};
|
139
140
|
"""
|
140
141
|
|
142
|
+
@property
|
143
|
+
def default_select_query(self) -> str | None:
|
144
|
+
if self.schema and self.table:
|
145
|
+
return f"SELECT * FROM {self.schema}.{self.table}"
|
146
|
+
return None
|
147
|
+
|
141
148
|
def execute(self, context: Context) -> None:
|
142
149
|
if self.table and self.table_as_file_name:
|
143
150
|
self.s3_key = f"{self.s3_key}/{self.table}_"
|
144
151
|
|
145
|
-
|
146
|
-
self.select_query = f"SELECT * FROM {self.schema}.{self.table}"
|
152
|
+
self.select_query = self.select_query or self.default_select_query
|
147
153
|
|
148
154
|
if self.select_query is None:
|
149
155
|
raise ValueError(
|