apache-airflow-providers-amazon 9.0.0rc1__tar.gz → 9.1.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-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/PKG-INFO +8 -10
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/README.rst +4 -5
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/__init__.py +1 -1
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/assets/s3.py +7 -7
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/appflow.py +4 -4
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/redshift_sql.py +1 -1
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/s3.py +77 -29
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/sagemaker.py +2 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/operators/redshift_data.py +43 -20
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/sensors/sagemaker.py +32 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/transfers/redshift_to_s3.py +106 -7
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/transfers/s3_to_redshift.py +1 -1
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/triggers/ecs.py +6 -6
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/get_provider_info.py +3 -3
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/pyproject.toml +4 -5
- apache_airflow_providers_amazon-9.0.0rc1/airflow/providers/amazon/aws/utils/asset_compat_lineage_collector.py +0 -106
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/LICENSE +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/__init__.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/assets/__init__.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/auth_manager/__init__.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/auth_manager/avp/__init__.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/auth_manager/avp/entities.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/auth_manager/avp/facade.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/auth_manager/avp/schema.json +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/auth_manager/aws_auth_manager.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/auth_manager/cli/__init__.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/auth_manager/cli/avp_commands.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/auth_manager/cli/definition.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/auth_manager/constants.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/auth_manager/security_manager/__init__.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/auth_manager/security_manager/aws_security_manager_override.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/auth_manager/user.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/auth_manager/views/__init__.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/auth_manager/views/auth.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/exceptions.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/executors/Dockerfile +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/executors/__init__.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/executors/batch/__init__.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/executors/batch/batch_executor.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/executors/batch/batch_executor_config.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/executors/batch/boto_schema.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/executors/batch/utils.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/executors/ecs/__init__.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/executors/ecs/boto_schema.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/executors/ecs/ecs_executor.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/executors/ecs/ecs_executor_config.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/executors/ecs/utils.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/executors/utils/__init__.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/executors/utils/base_config_keys.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/executors/utils/exponential_backoff_retry.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/fs/__init__.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/fs/s3.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/__init__.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/athena.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/athena_sql.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/base_aws.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/batch_client.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/batch_waiters.json +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/batch_waiters.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/bedrock.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/chime.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/cloud_formation.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/comprehend.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/datasync.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/dms.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/dynamodb.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/ec2.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/ecr.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/ecs.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/eks.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/elasticache_replication_group.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/emr.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/eventbridge.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/glacier.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/glue.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/glue_catalog.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/glue_crawler.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/glue_databrew.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/kinesis.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/kinesis_analytics.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/lambda_function.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/logs.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/neptune.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/opensearch_serverless.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/quicksight.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/rds.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/redshift_cluster.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/redshift_data.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/secrets_manager.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/ses.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/sns.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/sqs.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/ssm.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/step_function.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/sts.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/hooks/verified_permissions.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/links/__init__.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/links/athena.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/links/base_aws.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/links/batch.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/links/emr.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/links/glue.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/links/logs.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/links/step_function.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/log/__init__.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/log/cloudwatch_task_handler.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/log/s3_task_handler.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/notifications/__init__.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/notifications/chime.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/notifications/sns.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/notifications/sqs.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/operators/__init__.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/operators/appflow.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/operators/athena.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/operators/base_aws.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/operators/batch.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/operators/bedrock.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/operators/cloud_formation.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/operators/comprehend.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/operators/datasync.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/operators/dms.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/operators/ec2.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/operators/ecs.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/operators/eks.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/operators/emr.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/operators/eventbridge.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/operators/glacier.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/operators/glue.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/operators/glue_crawler.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/operators/glue_databrew.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/operators/kinesis_analytics.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/operators/lambda_function.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/operators/neptune.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/operators/quicksight.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/operators/rds.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/operators/redshift_cluster.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/operators/s3.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/operators/sagemaker.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/operators/sns.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/operators/sqs.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/operators/step_function.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/secrets/__init__.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/secrets/secrets_manager.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/secrets/systems_manager.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/sensors/__init__.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/sensors/athena.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/sensors/base_aws.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/sensors/batch.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/sensors/bedrock.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/sensors/cloud_formation.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/sensors/comprehend.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/sensors/dms.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/sensors/dynamodb.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/sensors/ec2.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/sensors/ecs.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/sensors/eks.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/sensors/emr.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/sensors/glacier.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/sensors/glue.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/sensors/glue_catalog_partition.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/sensors/glue_crawler.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/sensors/kinesis_analytics.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/sensors/lambda_function.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/sensors/opensearch_serverless.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/sensors/quicksight.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/sensors/rds.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/sensors/redshift_cluster.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/sensors/s3.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/sensors/sqs.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/sensors/step_function.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/transfers/__init__.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/transfers/azure_blob_to_s3.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/transfers/base.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/transfers/dynamodb_to_s3.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/transfers/exasol_to_s3.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/transfers/ftp_to_s3.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/transfers/gcs_to_s3.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/transfers/glacier_to_gcs.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/transfers/google_api_to_s3.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/transfers/hive_to_dynamodb.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/transfers/http_to_s3.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/transfers/imap_attachment_to_s3.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/transfers/local_to_s3.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/transfers/mongo_to_s3.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/transfers/s3_to_dynamodb.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/transfers/s3_to_ftp.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/transfers/s3_to_sftp.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/transfers/s3_to_sql.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/transfers/salesforce_to_s3.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/transfers/sftp_to_s3.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/transfers/sql_to_s3.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/triggers/README.md +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/triggers/__init__.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/triggers/athena.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/triggers/base.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/triggers/batch.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/triggers/bedrock.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/triggers/comprehend.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/triggers/ec2.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/triggers/eks.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/triggers/emr.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/triggers/glue.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/triggers/glue_crawler.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/triggers/glue_databrew.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/triggers/kinesis_analytics.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/triggers/lambda_function.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/triggers/neptune.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/triggers/opensearch_serverless.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/triggers/rds.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/triggers/redshift_cluster.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/triggers/redshift_data.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/triggers/s3.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/triggers/sagemaker.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/triggers/sqs.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/triggers/step_function.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/utils/__init__.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/utils/connection_wrapper.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/utils/eks_get_token.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/utils/emailer.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/utils/identifiers.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/utils/mixins.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/utils/openlineage.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/utils/rds.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/utils/redshift.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/utils/sagemaker.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/utils/sqs.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/utils/suppress.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/utils/tags.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/utils/task_log_fetcher.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/utils/waiter.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/utils/waiter_with_logging.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/waiters/README.md +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/waiters/__init__.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/waiters/appflow.json +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/waiters/athena.json +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/waiters/base_waiter.py +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/waiters/batch.json +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/waiters/bedrock-agent.json +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/waiters/bedrock.json +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/waiters/comprehend.json +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/waiters/databrew.json +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/waiters/dynamodb.json +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/waiters/ecs.json +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/waiters/eks.json +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/waiters/emr-containers.json +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/waiters/emr-serverless.json +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/waiters/emr.json +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/waiters/glue.json +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/waiters/kinesisanalyticsv2.json +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/waiters/neptune.json +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/waiters/opensearchserverless.json +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/waiters/rds.json +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/waiters/redshift.json +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/waiters/sagemaker.json +0 -0
- {apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/airflow/providers/amazon/aws/waiters/stepfunctions.json +0 -0
{apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/PKG-INFO
RENAMED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: apache-airflow-providers-amazon
|
3
|
-
Version: 9.
|
3
|
+
Version: 9.1.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>
|
@@ -21,7 +21,7 @@ Classifier: Programming Language :: Python :: 3.11
|
|
21
21
|
Classifier: Programming Language :: Python :: 3.12
|
22
22
|
Classifier: Topic :: System :: Monitoring
|
23
23
|
Requires-Dist: PyAthena>=3.0.10
|
24
|
-
Requires-Dist: apache-airflow-providers-common-compat>=1.
|
24
|
+
Requires-Dist: apache-airflow-providers-common-compat>=1.2.1rc0
|
25
25
|
Requires-Dist: apache-airflow-providers-common-sql>=1.3.1rc0
|
26
26
|
Requires-Dist: apache-airflow-providers-http
|
27
27
|
Requires-Dist: apache-airflow>=2.8.0rc0
|
@@ -33,7 +33,6 @@ Requires-Dist: jmespath>=0.7.0
|
|
33
33
|
Requires-Dist: jsonpath_ng>=1.5.3
|
34
34
|
Requires-Dist: python3-saml>=1.16.0
|
35
35
|
Requires-Dist: redshift_connector>=2.0.918
|
36
|
-
Requires-Dist: sqlalchemy_redshift>=0.8.6
|
37
36
|
Requires-Dist: watchtower>=3.0.0,!=3.3.0,<4
|
38
37
|
Requires-Dist: aiobotocore[boto3]>=2.13.0 ; extra == "aiobotocore"
|
39
38
|
Requires-Dist: apache-airflow-providers-apache-hive ; extra == "apache.hive"
|
@@ -55,8 +54,8 @@ Requires-Dist: s3fs>=2023.10.0 ; extra == "s3fs"
|
|
55
54
|
Requires-Dist: apache-airflow-providers-salesforce ; extra == "salesforce"
|
56
55
|
Requires-Dist: apache-airflow-providers-ssh ; extra == "ssh"
|
57
56
|
Project-URL: Bug Tracker, https://github.com/apache/airflow/issues
|
58
|
-
Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-amazon/9.
|
59
|
-
Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-amazon/9.
|
57
|
+
Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-amazon/9.1.0/changelog.html
|
58
|
+
Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-amazon/9.1.0
|
60
59
|
Project-URL: Slack Chat, https://s.apache.org/airflow-slack
|
61
60
|
Project-URL: Source Code, https://github.com/apache/airflow
|
62
61
|
Project-URL: Twitter, https://twitter.com/ApacheAirflow
|
@@ -124,7 +123,7 @@ Provides-Extra: ssh
|
|
124
123
|
|
125
124
|
Package ``apache-airflow-providers-amazon``
|
126
125
|
|
127
|
-
Release: ``9.
|
126
|
+
Release: ``9.1.0.rc1``
|
128
127
|
|
129
128
|
|
130
129
|
Amazon integration (including `Amazon Web Services (AWS) <https://aws.amazon.com/>`__).
|
@@ -137,7 +136,7 @@ This is a provider package for ``amazon`` provider. All classes for this provide
|
|
137
136
|
are in ``airflow.providers.amazon`` python package.
|
138
137
|
|
139
138
|
You can find package information and changelog for the provider
|
140
|
-
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-amazon/9.
|
139
|
+
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-amazon/9.1.0/>`_.
|
141
140
|
|
142
141
|
Installation
|
143
142
|
------------
|
@@ -155,7 +154,7 @@ Requirements
|
|
155
154
|
PIP package Version required
|
156
155
|
========================================== ======================
|
157
156
|
``apache-airflow`` ``>=2.8.0``
|
158
|
-
``apache-airflow-providers-common-compat`` ``>=1.1
|
157
|
+
``apache-airflow-providers-common-compat`` ``>=1.2.1``
|
159
158
|
``apache-airflow-providers-common-sql`` ``>=1.3.1``
|
160
159
|
``apache-airflow-providers-http``
|
161
160
|
``boto3`` ``>=1.34.90``
|
@@ -164,7 +163,6 @@ PIP package Version required
|
|
164
163
|
``watchtower`` ``>=3.0.0,!=3.3.0,<4``
|
165
164
|
``jsonpath_ng`` ``>=1.5.3``
|
166
165
|
``redshift_connector`` ``>=2.0.918``
|
167
|
-
``sqlalchemy_redshift`` ``>=0.8.6``
|
168
166
|
``asgiref`` ``>=2.3.0``
|
169
167
|
``PyAthena`` ``>=3.0.10``
|
170
168
|
``jmespath`` ``>=0.7.0``
|
@@ -204,4 +202,4 @@ Dependent package
|
|
204
202
|
====================================================================================================================== ===================
|
205
203
|
|
206
204
|
The changelog for the provider package can be found in the
|
207
|
-
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-amazon/9.
|
205
|
+
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-amazon/9.1.0/changelog.html>`_.
|
{apache_airflow_providers_amazon-9.0.0rc1 → apache_airflow_providers_amazon-9.1.0rc1}/README.rst
RENAMED
@@ -42,7 +42,7 @@
|
|
42
42
|
|
43
43
|
Package ``apache-airflow-providers-amazon``
|
44
44
|
|
45
|
-
Release: ``9.
|
45
|
+
Release: ``9.1.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/9.
|
58
|
+
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-amazon/9.1.0/>`_.
|
59
59
|
|
60
60
|
Installation
|
61
61
|
------------
|
@@ -73,7 +73,7 @@ Requirements
|
|
73
73
|
PIP package Version required
|
74
74
|
========================================== ======================
|
75
75
|
``apache-airflow`` ``>=2.8.0``
|
76
|
-
``apache-airflow-providers-common-compat`` ``>=1.1
|
76
|
+
``apache-airflow-providers-common-compat`` ``>=1.2.1``
|
77
77
|
``apache-airflow-providers-common-sql`` ``>=1.3.1``
|
78
78
|
``apache-airflow-providers-http``
|
79
79
|
``boto3`` ``>=1.34.90``
|
@@ -82,7 +82,6 @@ PIP package Version required
|
|
82
82
|
``watchtower`` ``>=3.0.0,!=3.3.0,<4``
|
83
83
|
``jsonpath_ng`` ``>=1.5.3``
|
84
84
|
``redshift_connector`` ``>=2.0.918``
|
85
|
-
``sqlalchemy_redshift`` ``>=0.8.6``
|
86
85
|
``asgiref`` ``>=2.3.0``
|
87
86
|
``PyAthena`` ``>=3.0.10``
|
88
87
|
``jmespath`` ``>=0.7.0``
|
@@ -122,4 +121,4 @@ Dependent package
|
|
122
121
|
====================================================================================================================== ===================
|
123
122
|
|
124
123
|
The changelog for the provider package can be found in the
|
125
|
-
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-amazon/9.
|
124
|
+
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-amazon/9.1.0/changelog.html>`_.
|
@@ -29,7 +29,7 @@ from airflow import __version__ as airflow_version
|
|
29
29
|
|
30
30
|
__all__ = ["__version__"]
|
31
31
|
|
32
|
-
__version__ = "9.
|
32
|
+
__version__ = "9.1.0"
|
33
33
|
|
34
34
|
if packaging.version.parse(packaging.version.parse(airflow_version).base_version) < packaging.version.parse(
|
35
35
|
"2.8.0"
|
@@ -19,16 +19,14 @@ from __future__ import annotations
|
|
19
19
|
from typing import TYPE_CHECKING
|
20
20
|
|
21
21
|
from airflow.providers.amazon.aws.hooks.s3 import S3Hook
|
22
|
-
|
23
|
-
try:
|
24
|
-
from airflow.assets import Asset
|
25
|
-
except ModuleNotFoundError:
|
26
|
-
from airflow.datasets import Dataset as Asset # type: ignore[no-redef]
|
22
|
+
from airflow.providers.common.compat.assets import Asset
|
27
23
|
|
28
24
|
if TYPE_CHECKING:
|
29
25
|
from urllib.parse import SplitResult
|
30
26
|
|
31
|
-
from airflow.providers.common.compat.openlineage.facet import
|
27
|
+
from airflow.providers.common.compat.openlineage.facet import (
|
28
|
+
Dataset as OpenLineageDataset,
|
29
|
+
)
|
32
30
|
|
33
31
|
|
34
32
|
def create_asset(*, bucket: str, key: str, extra=None) -> Asset:
|
@@ -43,7 +41,9 @@ def sanitize_uri(uri: SplitResult) -> SplitResult:
|
|
43
41
|
|
44
42
|
def convert_asset_to_openlineage(asset: Asset, lineage_context) -> OpenLineageDataset:
|
45
43
|
"""Translate Asset with valid AIP-60 uri to OpenLineage with assistance from the hook."""
|
46
|
-
from airflow.providers.common.compat.openlineage.facet import
|
44
|
+
from airflow.providers.common.compat.openlineage.facet import (
|
45
|
+
Dataset as OpenLineageDataset,
|
46
|
+
)
|
47
47
|
|
48
48
|
bucket, key = S3Hook.parse_s3_url(asset.uri)
|
49
49
|
return OpenLineageDataset(namespace=f"s3://{bucket}", name=key if key else "/")
|
@@ -117,9 +117,9 @@ class AppflowHook(AwsGenericHook["AppflowClient"]):
|
|
117
117
|
|
118
118
|
self.conn.update_flow(
|
119
119
|
flowName=response["flowName"],
|
120
|
-
destinationFlowConfigList=response["destinationFlowConfigList"],
|
121
|
-
sourceFlowConfig=response["sourceFlowConfig"],
|
122
|
-
triggerConfig=response["triggerConfig"],
|
120
|
+
destinationFlowConfigList=response["destinationFlowConfigList"], # type: ignore[arg-type]
|
121
|
+
sourceFlowConfig=response["sourceFlowConfig"], # type: ignore[arg-type]
|
122
|
+
triggerConfig=response["triggerConfig"], # type: ignore[arg-type]
|
123
123
|
description=response.get("description", "Flow description."),
|
124
|
-
tasks=tasks,
|
124
|
+
tasks=tasks, # type: ignore[arg-type]
|
125
125
|
)
|
@@ -163,7 +163,7 @@ class RedshiftSQLHook(DbApiHook):
|
|
163
163
|
# Compatibility: The 'create' factory method was added in SQLAlchemy 1.4
|
164
164
|
# to replace calling the default URL constructor directly.
|
165
165
|
create_url = getattr(URL, "create", URL)
|
166
|
-
return str(create_url(drivername="
|
166
|
+
return str(create_url(drivername="postgresql", **conn_params))
|
167
167
|
|
168
168
|
def get_sqlalchemy_engine(self, engine_kwargs=None):
|
169
169
|
"""Overridden to pass Redshift-specific arguments."""
|
@@ -41,14 +41,16 @@ from urllib.parse import urlsplit
|
|
41
41
|
from uuid import uuid4
|
42
42
|
|
43
43
|
if TYPE_CHECKING:
|
44
|
-
from mypy_boto3_s3.service_resource import
|
44
|
+
from mypy_boto3_s3.service_resource import (
|
45
|
+
Bucket as S3Bucket,
|
46
|
+
Object as S3ResourceObject,
|
47
|
+
)
|
45
48
|
|
46
49
|
from airflow.utils.types import ArgNotSet
|
47
50
|
|
48
51
|
with suppress(ImportError):
|
49
52
|
from aiobotocore.client import AioBaseClient
|
50
53
|
|
51
|
-
from importlib.util import find_spec
|
52
54
|
|
53
55
|
from asgiref.sync import sync_to_async
|
54
56
|
from boto3.s3.transfer import S3Transfer, TransferConfig
|
@@ -58,15 +60,9 @@ from airflow.exceptions import AirflowException, AirflowNotFoundException
|
|
58
60
|
from airflow.providers.amazon.aws.exceptions import S3HookUriParseFailure
|
59
61
|
from airflow.providers.amazon.aws.hooks.base_aws import AwsBaseHook
|
60
62
|
from airflow.providers.amazon.aws.utils.tags import format_tags
|
63
|
+
from airflow.providers.common.compat.lineage.hook import get_hook_lineage_collector
|
61
64
|
from airflow.utils.helpers import chunks
|
62
65
|
|
63
|
-
if find_spec("airflow.assets"):
|
64
|
-
from airflow.lineage.hook import get_hook_lineage_collector
|
65
|
-
else:
|
66
|
-
# TODO: import from common.compat directly after common.compat providers with
|
67
|
-
# asset_compat_lineage_collector released
|
68
|
-
from airflow.providers.amazon.aws.utils.asset_compat_lineage_collector import get_hook_lineage_collector
|
69
|
-
|
70
66
|
logger = logging.getLogger(__name__)
|
71
67
|
|
72
68
|
|
@@ -148,9 +144,10 @@ def unify_bucket_name_and_key(func: Callable) -> Callable:
|
|
148
144
|
|
149
145
|
if "bucket_name" not in bound_args.arguments:
|
150
146
|
with suppress(S3HookUriParseFailure):
|
151
|
-
|
152
|
-
bound_args.arguments[
|
153
|
-
|
147
|
+
(
|
148
|
+
bound_args.arguments["bucket_name"],
|
149
|
+
bound_args.arguments[key_name],
|
150
|
+
) = S3Hook.parse_s3_url(bound_args.arguments[key_name])
|
154
151
|
|
155
152
|
return func(*bound_args.args, **bound_args.kwargs)
|
156
153
|
|
@@ -318,7 +315,8 @@ class S3Hook(AwsBaseHook):
|
|
318
315
|
self.log.info('Bucket "%s" does not exist', bucket_name)
|
319
316
|
elif return_code == 403:
|
320
317
|
self.log.error(
|
321
|
-
'Access to bucket "%s" is forbidden or there was an error with the request',
|
318
|
+
'Access to bucket "%s" is forbidden or there was an error with the request',
|
319
|
+
bucket_name,
|
322
320
|
)
|
323
321
|
self.log.error(e)
|
324
322
|
return False
|
@@ -359,7 +357,8 @@ class S3Hook(AwsBaseHook):
|
|
359
357
|
self.get_conn().create_bucket(Bucket=bucket_name)
|
360
358
|
else:
|
361
359
|
self.get_conn().create_bucket(
|
362
|
-
Bucket=bucket_name,
|
360
|
+
Bucket=bucket_name,
|
361
|
+
CreateBucketConfiguration={"LocationConstraint": region_name},
|
363
362
|
)
|
364
363
|
|
365
364
|
@provide_bucket_name
|
@@ -410,7 +409,10 @@ class S3Hook(AwsBaseHook):
|
|
410
409
|
|
411
410
|
paginator = self.get_conn().get_paginator("list_objects_v2")
|
412
411
|
response = paginator.paginate(
|
413
|
-
Bucket=bucket_name,
|
412
|
+
Bucket=bucket_name,
|
413
|
+
Prefix=prefix,
|
414
|
+
Delimiter=delimiter,
|
415
|
+
PaginationConfig=config,
|
414
416
|
)
|
415
417
|
|
416
418
|
prefixes: list[str] = []
|
@@ -471,7 +473,10 @@ class S3Hook(AwsBaseHook):
|
|
471
473
|
|
472
474
|
paginator = client.get_paginator("list_objects_v2")
|
473
475
|
response = paginator.paginate(
|
474
|
-
Bucket=bucket_name,
|
476
|
+
Bucket=bucket_name,
|
477
|
+
Prefix=prefix,
|
478
|
+
Delimiter=delimiter,
|
479
|
+
PaginationConfig=config,
|
475
480
|
)
|
476
481
|
|
477
482
|
prefixes = []
|
@@ -569,7 +574,11 @@ class S3Hook(AwsBaseHook):
|
|
569
574
|
return await self._check_key_async(client, bucket, wildcard_match, bucket_keys, use_regex)
|
570
575
|
|
571
576
|
async def check_for_prefix_async(
|
572
|
-
self,
|
577
|
+
self,
|
578
|
+
client: AioBaseClient,
|
579
|
+
prefix: str,
|
580
|
+
delimiter: str,
|
581
|
+
bucket_name: str | None = None,
|
573
582
|
) -> bool:
|
574
583
|
"""
|
575
584
|
Check that a prefix exists in a bucket.
|
@@ -587,7 +596,11 @@ class S3Hook(AwsBaseHook):
|
|
587
596
|
return prefix in plist
|
588
597
|
|
589
598
|
async def _check_for_prefix_async(
|
590
|
-
self,
|
599
|
+
self,
|
600
|
+
client: AioBaseClient,
|
601
|
+
prefix: str,
|
602
|
+
delimiter: str,
|
603
|
+
bucket_name: str | None = None,
|
591
604
|
) -> bool:
|
592
605
|
return await self.check_for_prefix_async(
|
593
606
|
client, prefix=prefix, delimiter=delimiter, bucket_name=bucket_name
|
@@ -643,7 +656,10 @@ class S3Hook(AwsBaseHook):
|
|
643
656
|
|
644
657
|
paginator = client.get_paginator("list_objects_v2")
|
645
658
|
response = paginator.paginate(
|
646
|
-
Bucket=bucket_name,
|
659
|
+
Bucket=bucket_name,
|
660
|
+
Prefix=prefix,
|
661
|
+
Delimiter=delimiter,
|
662
|
+
PaginationConfig=config,
|
647
663
|
)
|
648
664
|
|
649
665
|
keys = []
|
@@ -655,7 +671,10 @@ class S3Hook(AwsBaseHook):
|
|
655
671
|
return keys
|
656
672
|
|
657
673
|
def _list_key_object_filter(
|
658
|
-
self,
|
674
|
+
self,
|
675
|
+
keys: list,
|
676
|
+
from_datetime: datetime | None = None,
|
677
|
+
to_datetime: datetime | None = None,
|
659
678
|
) -> list:
|
660
679
|
def _is_in_period(input_date: datetime) -> bool:
|
661
680
|
if from_datetime is not None and input_date <= from_datetime:
|
@@ -766,7 +785,10 @@ class S3Hook(AwsBaseHook):
|
|
766
785
|
"message": success_message,
|
767
786
|
}
|
768
787
|
|
769
|
-
self.log.error(
|
788
|
+
self.log.error(
|
789
|
+
"FAILURE: Inactivity Period passed, not enough objects found in %s",
|
790
|
+
path,
|
791
|
+
)
|
770
792
|
return {
|
771
793
|
"status": "error",
|
772
794
|
"message": f"FAILURE: Inactivity Period passed, not enough objects found in {path}",
|
@@ -1109,7 +1131,13 @@ class S3Hook(AwsBaseHook):
|
|
1109
1131
|
extra_args["ACL"] = acl_policy
|
1110
1132
|
|
1111
1133
|
client = self.get_conn()
|
1112
|
-
client.upload_file(
|
1134
|
+
client.upload_file(
|
1135
|
+
filename,
|
1136
|
+
bucket_name,
|
1137
|
+
key,
|
1138
|
+
ExtraArgs=extra_args,
|
1139
|
+
Config=self.transfer_config,
|
1140
|
+
)
|
1113
1141
|
get_hook_lineage_collector().add_input_asset(
|
1114
1142
|
context=self, scheme="file", asset_kwargs={"path": filename}
|
1115
1143
|
)
|
@@ -1308,18 +1336,32 @@ class S3Hook(AwsBaseHook):
|
|
1308
1336
|
)
|
1309
1337
|
|
1310
1338
|
source_bucket_name, source_bucket_key = self.get_s3_bucket_key(
|
1311
|
-
source_bucket_name,
|
1339
|
+
source_bucket_name,
|
1340
|
+
source_bucket_key,
|
1341
|
+
"source_bucket_name",
|
1342
|
+
"source_bucket_key",
|
1312
1343
|
)
|
1313
1344
|
|
1314
|
-
copy_source = {
|
1345
|
+
copy_source = {
|
1346
|
+
"Bucket": source_bucket_name,
|
1347
|
+
"Key": source_bucket_key,
|
1348
|
+
"VersionId": source_version_id,
|
1349
|
+
}
|
1315
1350
|
response = self.get_conn().copy_object(
|
1316
|
-
Bucket=dest_bucket_name,
|
1351
|
+
Bucket=dest_bucket_name,
|
1352
|
+
Key=dest_bucket_key,
|
1353
|
+
CopySource=copy_source,
|
1354
|
+
**kwargs,
|
1317
1355
|
)
|
1318
1356
|
get_hook_lineage_collector().add_input_asset(
|
1319
|
-
context=self,
|
1357
|
+
context=self,
|
1358
|
+
scheme="s3",
|
1359
|
+
asset_kwargs={"bucket": source_bucket_name, "key": source_bucket_key},
|
1320
1360
|
)
|
1321
1361
|
get_hook_lineage_collector().add_output_asset(
|
1322
|
-
context=self,
|
1362
|
+
context=self,
|
1363
|
+
scheme="s3",
|
1364
|
+
asset_kwargs={"bucket": dest_bucket_name, "key": dest_bucket_key},
|
1323
1365
|
)
|
1324
1366
|
return response
|
1325
1367
|
|
@@ -1435,7 +1477,10 @@ class S3Hook(AwsBaseHook):
|
|
1435
1477
|
file_path = Path(local_dir, subdir, filename_in_s3)
|
1436
1478
|
|
1437
1479
|
if file_path.is_file():
|
1438
|
-
self.log.error(
|
1480
|
+
self.log.error(
|
1481
|
+
"file '%s' already exists. Failing the task and not overwriting it",
|
1482
|
+
file_path,
|
1483
|
+
)
|
1439
1484
|
raise FileExistsError
|
1440
1485
|
|
1441
1486
|
file_path.parent.mkdir(exist_ok=True, parents=True)
|
@@ -1484,7 +1529,10 @@ class S3Hook(AwsBaseHook):
|
|
1484
1529
|
s3_client = self.get_conn()
|
1485
1530
|
try:
|
1486
1531
|
return s3_client.generate_presigned_url(
|
1487
|
-
ClientMethod=client_method,
|
1532
|
+
ClientMethod=client_method,
|
1533
|
+
Params=params,
|
1534
|
+
ExpiresIn=expires_in,
|
1535
|
+
HttpMethod=http_method,
|
1488
1536
|
)
|
1489
1537
|
|
1490
1538
|
except ClientError as e:
|
@@ -153,7 +153,9 @@ class SageMakerHook(AwsBaseHook):
|
|
153
153
|
non_terminal_states = {"InProgress", "Stopping"}
|
154
154
|
endpoint_non_terminal_states = {"Creating", "Updating", "SystemUpdating", "RollingBack", "Deleting"}
|
155
155
|
pipeline_non_terminal_states = {"Executing", "Stopping"}
|
156
|
+
processing_job_non_terminal_states = {"InProgress", "Stopping"}
|
156
157
|
failed_states = {"Failed"}
|
158
|
+
processing_job_failed_states = {*failed_states, "Stopped"}
|
157
159
|
training_failed_states = {*failed_states, "Stopped"}
|
158
160
|
|
159
161
|
def __init__(self, *args, **kwargs):
|
@@ -28,7 +28,10 @@ from airflow.providers.amazon.aws.utils import validate_execute_complete_event
|
|
28
28
|
from airflow.providers.amazon.aws.utils.mixins import aws_template_fields
|
29
29
|
|
30
30
|
if TYPE_CHECKING:
|
31
|
-
from mypy_boto3_redshift_data.type_defs import
|
31
|
+
from mypy_boto3_redshift_data.type_defs import (
|
32
|
+
DescribeStatementResponseTypeDef,
|
33
|
+
GetStatementResultResponseTypeDef,
|
34
|
+
)
|
32
35
|
|
33
36
|
from airflow.utils.context import Context
|
34
37
|
|
@@ -37,7 +40,7 @@ class RedshiftDataOperator(AwsBaseOperator[RedshiftDataHook]):
|
|
37
40
|
"""
|
38
41
|
Executes SQL Statements against an Amazon Redshift cluster using Redshift Data.
|
39
42
|
|
40
|
-
|
43
|
+
... see also::
|
41
44
|
For more information on how to use this operator, take a look at the guide:
|
42
45
|
:ref:`howto/operator:RedshiftDataOperator`
|
43
46
|
|
@@ -84,7 +87,6 @@ class RedshiftDataOperator(AwsBaseOperator[RedshiftDataHook]):
|
|
84
87
|
)
|
85
88
|
template_ext = (".sql",)
|
86
89
|
template_fields_renderers = {"sql": "sql"}
|
87
|
-
statement_id: str | None
|
88
90
|
|
89
91
|
def __init__(
|
90
92
|
self,
|
@@ -124,12 +126,11 @@ class RedshiftDataOperator(AwsBaseOperator[RedshiftDataHook]):
|
|
124
126
|
poll_interval,
|
125
127
|
)
|
126
128
|
self.return_sql_result = return_sql_result
|
127
|
-
self.statement_id: str | None = None
|
128
129
|
self.deferrable = deferrable
|
129
130
|
self.session_id = session_id
|
130
131
|
self.session_keep_alive_seconds = session_keep_alive_seconds
|
131
132
|
|
132
|
-
def execute(self, context: Context) -> GetStatementResultResponseTypeDef | str:
|
133
|
+
def execute(self, context: Context) -> list[GetStatementResultResponseTypeDef] | list[str]:
|
133
134
|
"""Execute a statement against Amazon Redshift."""
|
134
135
|
self.log.info("Executing statement: %s", self.sql)
|
135
136
|
|
@@ -154,13 +155,14 @@ class RedshiftDataOperator(AwsBaseOperator[RedshiftDataHook]):
|
|
154
155
|
session_keep_alive_seconds=self.session_keep_alive_seconds,
|
155
156
|
)
|
156
157
|
|
157
|
-
|
158
|
+
# Pull the statement ID, session ID
|
159
|
+
self.statement_id: str = query_execution_output.statement_id
|
158
160
|
|
159
161
|
if query_execution_output.session_id:
|
160
162
|
self.xcom_push(context, key="session_id", value=query_execution_output.session_id)
|
161
163
|
|
162
164
|
if self.deferrable and self.wait_for_completion:
|
163
|
-
is_finished = self.hook.check_query_is_finished(self.statement_id)
|
165
|
+
is_finished: bool = self.hook.check_query_is_finished(self.statement_id)
|
164
166
|
if not is_finished:
|
165
167
|
self.defer(
|
166
168
|
timeout=self.execution_timeout,
|
@@ -176,16 +178,13 @@ class RedshiftDataOperator(AwsBaseOperator[RedshiftDataHook]):
|
|
176
178
|
method_name="execute_complete",
|
177
179
|
)
|
178
180
|
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
return result
|
183
|
-
else:
|
184
|
-
return self.statement_id
|
181
|
+
# Use the get_sql_results method to return the results of the SQL query, or the statement_ids,
|
182
|
+
# depending on the value of self.return_sql_result
|
183
|
+
return self.get_sql_results(statement_id=self.statement_id, return_sql_result=self.return_sql_result)
|
185
184
|
|
186
185
|
def execute_complete(
|
187
186
|
self, context: Context, event: dict[str, Any] | None = None
|
188
|
-
) -> GetStatementResultResponseTypeDef | str:
|
187
|
+
) -> list[GetStatementResultResponseTypeDef] | list[str]:
|
189
188
|
event = validate_execute_complete_event(event)
|
190
189
|
|
191
190
|
if event["status"] == "error":
|
@@ -197,16 +196,40 @@ class RedshiftDataOperator(AwsBaseOperator[RedshiftDataHook]):
|
|
197
196
|
raise AirflowException("statement_id should not be empty.")
|
198
197
|
|
199
198
|
self.log.info("%s completed successfully.", self.task_id)
|
200
|
-
if self.return_sql_result:
|
201
|
-
result = self.hook.conn.get_statement_result(Id=statement_id)
|
202
|
-
self.log.debug("Statement result: %s", result)
|
203
|
-
return result
|
204
199
|
|
205
|
-
return
|
200
|
+
# Use the get_sql_results method to return the results of the SQL query, or the statement_ids,
|
201
|
+
# depending on the value of self.return_sql_result
|
202
|
+
return self.get_sql_results(statement_id=statement_id, return_sql_result=self.return_sql_result)
|
203
|
+
|
204
|
+
def get_sql_results(
|
205
|
+
self, statement_id: str, return_sql_result: bool
|
206
|
+
) -> list[GetStatementResultResponseTypeDef] | list[str]:
|
207
|
+
"""
|
208
|
+
Retrieve either the result of the SQL query, or the statement ID(s).
|
209
|
+
|
210
|
+
:param statement_id: Statement ID of the running queries
|
211
|
+
:param return_sql_result: Boolean, true if results should be returned
|
212
|
+
"""
|
213
|
+
# ISSUE-40427: Pull the statement, and check to see if there are sub-statements. If that is the
|
214
|
+
# case, pull each of the sub-statement ID's, and grab the results. Otherwise, just use statement_id
|
215
|
+
statement: DescribeStatementResponseTypeDef = self.hook.conn.describe_statement(Id=statement_id)
|
216
|
+
statement_ids: list[str] = (
|
217
|
+
[sub_statement["Id"] for sub_statement in statement["SubStatements"]]
|
218
|
+
if len(statement.get("SubStatements", [])) > 0
|
219
|
+
else [statement_id]
|
220
|
+
)
|
221
|
+
|
222
|
+
# If returning the SQL result, use get_statement_result to return the records for each query
|
223
|
+
if return_sql_result:
|
224
|
+
results: list = [self.hook.conn.get_statement_result(Id=sid) for sid in statement_ids]
|
225
|
+
self.log.debug("Statement result(s): %s", results)
|
226
|
+
return results
|
227
|
+
else:
|
228
|
+
return statement_ids
|
206
229
|
|
207
230
|
def on_kill(self) -> None:
|
208
231
|
"""Cancel the submitted redshift query."""
|
209
|
-
if self
|
232
|
+
if hasattr(self, "statement_id"):
|
210
233
|
self.log.info("Received a kill signal.")
|
211
234
|
self.log.info("Stopping Query with statementId - %s", self.statement_id)
|
212
235
|
|
@@ -330,3 +330,35 @@ class SageMakerAutoMLSensor(SageMakerBaseSensor):
|
|
330
330
|
|
331
331
|
def state_from_response(self, response: dict) -> str:
|
332
332
|
return response["AutoMLJobStatus"]
|
333
|
+
|
334
|
+
|
335
|
+
class SageMakerProcessingSensor(SageMakerBaseSensor):
|
336
|
+
"""
|
337
|
+
Poll the processing job until it reaches a terminal state; raise AirflowException with the failure reason.
|
338
|
+
|
339
|
+
.. seealso::
|
340
|
+
For more information on how to use this sensor, take a look at the guide:
|
341
|
+
:ref:`howto/sensor:SageMakerProcessingSensor`
|
342
|
+
|
343
|
+
:param job_name: Name of the processing job to watch.
|
344
|
+
"""
|
345
|
+
|
346
|
+
template_fields: Sequence[str] = ("job_name",)
|
347
|
+
template_ext: Sequence[str] = ()
|
348
|
+
|
349
|
+
def __init__(self, *, job_name: str, **kwargs):
|
350
|
+
super().__init__(**kwargs)
|
351
|
+
self.job_name = job_name
|
352
|
+
|
353
|
+
def non_terminal_states(self) -> set[str]:
|
354
|
+
return SageMakerHook.processing_job_non_terminal_states
|
355
|
+
|
356
|
+
def failed_states(self) -> set[str]:
|
357
|
+
return SageMakerHook.processing_job_failed_states
|
358
|
+
|
359
|
+
def get_sagemaker_response(self) -> dict:
|
360
|
+
self.log.info("Poking Sagemaker ProcessingJob %s", self.job_name)
|
361
|
+
return self.hook.describe_processing_job(self.job_name)
|
362
|
+
|
363
|
+
def state_from_response(self, response: dict) -> str:
|
364
|
+
return response["ProcessingJobStatus"]
|