[Python-modules-commits] [python-botocore] 01/06: New upstream version 1.5.75
Takaki Taniguchi
takaki at moszumanska.debian.org
Tue Jun 27 10:09:23 UTC 2017
This is an automated email from the git hooks/post-receive script.
takaki pushed a commit to branch master
in repository python-botocore.
commit ed839048df6a994dcc38a6896d2c2866b622d1d3
Author: TANIGUCHI Takaki <takaki at asis.media-as.org>
Date: Tue Jun 27 18:52:19 2017 +0900
New upstream version 1.5.75
---
PKG-INFO | 21 +-
README.rst | 19 +-
botocore.egg-info/PKG-INFO | 21 +-
botocore.egg-info/SOURCES.txt | 147 +
botocore/__init__.py | 4 +-
botocore/args.py | 20 +-
botocore/auth.py | 58 +-
botocore/awsrequest.py | 3 +-
botocore/client.py | 132 +-
botocore/compat.py | 2 +-
botocore/configloader.py | 22 +-
botocore/credentials.py | 109 +-
botocore/data/_retry.json | 9 +
botocore/data/acm/2015-12-08/examples-1.json | 5 +
botocore/data/acm/2015-12-08/paginators-1.json | 1 -
botocore/data/acm/2015-12-08/service-2.json | 6 +-
.../data/apigateway/2015-07-09/examples-1.json | 5 +
.../data/apigateway/2015-07-09/paginators-1.json | 18 +
botocore/data/apigateway/2015-07-09/service-2.json | 378 +-
.../2016-02-06/examples-1.json | 257 +
.../2016-02-06/service-2.json | 203 +-
botocore/data/appstream/2016-12-01/examples-1.json | 5 +
.../data/appstream/2016-12-01/paginators-1.json | 3 +
botocore/data/appstream/2016-12-01/service-2.json | 245 +-
botocore/data/athena/2017-05-18/paginators-1.json | 3 +
botocore/data/athena/2017-05-18/service-2.json | 873 ++
.../data/autoscaling/2011-01-01/examples-1.json | 1395 +++
.../data/autoscaling/2011-01-01/service-2.json | 277 +-
botocore/data/batch/2016-08-10/examples-1.json | 589 ++
botocore/data/batch/2016-08-10/paginators-1.json | 3 +
botocore/data/batch/2016-08-10/service-2.json | 94 +-
botocore/data/budgets/2016-10-20/examples-1.json | 5 +
botocore/data/budgets/2016-10-20/paginators-1.json | 3 +
botocore/data/budgets/2016-10-20/service-2.json | 7 +-
.../clouddirectory/2016-05-10/paginators-1.json | 3 +
.../data/clouddirectory/2016-05-10/service-2.json | 1339 ++-
.../data/cloudformation/2010-05-15/examples-1.json | 158 +
.../cloudformation/2010-05-15/paginators-1.json | 10 +
.../data/cloudformation/2010-05-15/service-2.json | 76 +-
.../data/cloudfront/2016-11-25/examples-1.json | 5 +
.../data/cloudfront/2017-03-25/examples-1.json | 5 +
.../data/cloudfront/2017-03-25/paginators-1.json | 32 +
botocore/data/cloudfront/2017-03-25/service-2.json | 3607 ++++++++
botocore/data/cloudfront/2017-03-25/waiters-2.json | 47 +
botocore/data/cloudhsm/2014-05-30/examples-1.json | 5 +
.../data/cloudsearch/2013-01-01/paginators-1.json | 3 +
.../cloudsearchdomain/2013-01-01/examples-1.json | 5 +
.../data/cloudtrail/2013-11-01/examples-1.json | 5 +
.../data/cloudtrail/2013-11-01/paginators-1.json | 10 +
botocore/data/cloudtrail/2013-11-01/service-2.json | 38 +-
.../data/cloudwatch/2010-08-01/examples-1.json | 5 +
botocore/data/cloudwatch/2010-08-01/service-2.json | 36 +-
botocore/data/cloudwatch/2010-08-01/waiters-2.json | 18 +
botocore/data/codebuild/2016-10-06/examples-1.json | 5 +
.../data/codebuild/2016-10-06/paginators-1.json | 3 +
botocore/data/codebuild/2016-10-06/service-2.json | 11 +-
.../data/codecommit/2015-04-13/examples-1.json | 5 +
.../data/codecommit/2015-04-13/paginators-1.json | 24 +-
.../data/codedeploy/2014-10-06/examples-1.json | 5 +
.../data/codedeploy/2014-10-06/paginators-1.json | 34 +
botocore/data/codedeploy/2014-10-06/service-2.json | 297 +-
.../data/codepipeline/2015-07-09/examples-1.json | 5 +
.../data/codepipeline/2015-07-09/paginators-1.json | 3 +
.../data/codepipeline/2015-07-09/service-2.json | 227 +-
.../data/codestar/2017-04-19/paginators-1.json | 3 +
botocore/data/codestar/2017-04-19/service-2.json | 1063 +++
.../cognito-identity/2014-06-30/examples-1.json | 5 +
.../cognito-identity/2014-06-30/paginators-1.json | 3 +
.../cognito-identity/2014-06-30/service-2.json | 6 +
.../data/cognito-idp/2016-04-18/examples-1.json | 5 +
.../data/cognito-idp/2016-04-18/paginators-1.json | 3 +
.../data/cognito-idp/2016-04-18/service-2.json | 943 ++-
botocore/data/config/2014-11-12/examples-1.json | 5 +
botocore/data/config/2014-11-12/paginators-1.json | 3 +-
botocore/data/config/2014-11-12/service-2.json | 28 +-
botocore/data/cur/2017-01-06/examples-1.json | 5 +
botocore/data/cur/2017-01-06/paginators-1.json | 10 +
botocore/data/dax/2017-04-19/paginators-1.json | 3 +
botocore/data/dax/2017-04-19/service-2.json | 1614 ++++
.../data/devicefarm/2015-06-23/examples-1.json | 1242 +++
.../data/devicefarm/2015-06-23/paginators-1.json | 18 +
botocore/data/devicefarm/2015-06-23/service-2.json | 597 +-
.../data/directconnect/2012-10-25/examples-1.json | 5 +
.../directconnect/2012-10-25/paginators-1.json | 3 +
.../data/directconnect/2012-10-25/service-2.json | 493 +-
botocore/data/discovery/2015-11-01/examples-1.json | 5 +
.../data/discovery/2015-11-01/paginators-1.json | 3 +
botocore/data/discovery/2015-11-01/service-2.json | 196 +-
botocore/data/dms/2016-01-01/examples-1.json | 5 +
botocore/data/dms/2016-01-01/paginators-1.json | 3 +
botocore/data/dms/2016-01-01/service-2.json | 707 +-
botocore/data/ds/2015-04-16/examples-1.json | 5 +
botocore/data/dynamodb/2012-08-10/examples-1.json | 628 ++
botocore/data/dynamodb/2012-08-10/service-2.json | 131 +-
.../dynamodbstreams/2012-08-10/examples-1.json | 212 +
.../dynamodbstreams/2012-08-10/paginators-1.json | 3 +
.../data/dynamodbstreams/2012-08-10/service-2.json | 56 +-
botocore/data/ec2/2016-09-15/waiters-2.json | 18 +
botocore/data/ec2/2016-11-15/paginators-1.json | 6 +
botocore/data/ec2/2016-11-15/service-2.json | 8851 +++++++++++---------
botocore/data/ec2/2016-11-15/waiters-2.json | 18 +
botocore/data/ecr/2015-09-21/examples-1.json | 215 +
botocore/data/ecs/2014-11-13/examples-1.json | 883 ++
botocore/data/ecs/2014-11-13/paginators-1.json | 76 +-
botocore/data/ecs/2014-11-13/service-2.json | 60 +-
botocore/data/efs/2015-02-01/examples-1.json | 222 +
botocore/data/efs/2015-02-01/paginators-1.json | 22 +
.../data/elasticache/2015-02-02/service-2.json | 144 +-
.../elasticbeanstalk/2010-12-01/examples-1.json | 0
.../elasticbeanstalk/2010-12-01/service-2.json | 508 +-
.../elastictranscoder/2012-09-25/examples-1.json | 5 +
botocore/data/elb/2012-06-01/examples-1.json | 1036 +++
botocore/data/elb/2012-06-01/service-2.json | 124 +-
botocore/data/elb/2012-06-01/waiters-2.json | 31 +
botocore/data/elbv2/2015-12-01/examples-1.json | 1384 +++
botocore/data/elbv2/2015-12-01/service-2.json | 99 +-
botocore/data/emr/2009-03-31/examples-1.json | 5 +
botocore/data/emr/2009-03-31/paginators-1.json | 5 +
botocore/data/emr/2009-03-31/service-2.json | 608 +-
botocore/data/endpoints.json | 3618 ++++----
botocore/data/es/2015-01-01/paginators-1.json | 3 +
botocore/data/es/2015-01-01/service-2.json | 306 +-
botocore/data/events/2015-10-07/examples-1.json | 5 +
botocore/data/events/2015-10-07/paginators-1.json | 3 +
botocore/data/events/2015-10-07/service-2.json | 685 +-
botocore/data/firehose/2015-08-04/examples-1.json | 5 +
botocore/data/gamelift/2015-10-01/examples-1.json | 5 +
.../data/gamelift/2015-10-01/paginators-1.json | 3 +
botocore/data/gamelift/2015-10-01/service-2.json | 1014 ++-
botocore/data/glacier/2012-06-01/examples-1.json | 806 ++
botocore/data/glacier/2012-06-01/waiters-2.json | 39 +
botocore/data/greengrass/2017-06-07/service-2.json | 4058 +++++++++
botocore/data/health/2016-08-04/examples-1.json | 5 +
botocore/data/iam/2010-05-08/examples-1.json | 1191 +++
botocore/data/iam/2010-05-08/paginators-1.json | 2 +-
botocore/data/iam/2010-05-08/service-2.json | 208 +-
botocore/data/inspector/2016-02-16/examples-1.json | 1140 +++
.../data/inspector/2016-02-16/paginators-1.json | 3 +
botocore/data/inspector/2016-02-16/service-2.json | 120 +-
botocore/data/iot/2015-05-28/examples-1.json | 5 +
botocore/data/iot/2015-05-28/paginators-1.json | 3 +
botocore/data/iot/2015-05-28/service-2.json | 3516 ++------
botocore/data/kinesis/2013-12-02/examples-1.json | 5 +
botocore/data/kinesis/2013-12-02/service-2.json | 8 +-
.../kinesisanalytics/2015-08-14/examples-1.json | 5 +
.../kinesisanalytics/2015-08-14/paginators-1.json | 3 +
.../kinesisanalytics/2015-08-14/service-2.json | 221 +-
botocore/data/kms/2014-11-01/examples-1.json | 815 ++
botocore/data/kms/2014-11-01/service-2.json | 233 +-
botocore/data/lambda/2015-03-31/examples-1.json | 614 ++
botocore/data/lambda/2015-03-31/service-2.json | 271 +-
.../data/lex-models/2017-04-19/paginators-1.json | 3 +
botocore/data/lex-models/2017-04-19/service-2.json | 2936 +++++++
.../data/lex-runtime/2016-11-28/paginators-1.json | 3 +
.../data/lex-runtime/2016-11-28/service-2.json | 487 ++
botocore/data/lightsail/2016-11-28/examples-1.json | 5 +
.../data/lightsail/2016-11-28/paginators-1.json | 97 +-
botocore/data/lightsail/2016-11-28/service-2.json | 112 +-
botocore/data/logs/2014-03-28/examples-1.json | 5 +
botocore/data/logs/2014-03-28/service-2.json | 28 +-
.../machinelearning/2014-12-12/examples-1.json | 5 +
.../2017-01-11/paginators-1.json | 3 +
.../2017-01-11/service-2.json | 182 +
.../2015-07-01/examples-1.json | 5 +
.../2015-07-01/paginators-1.json | 3 +
.../2015-07-01/service-2.json | 10 +-
.../meteringmarketplace/2016-01-14/examples-1.json | 5 +
botocore/data/mturk/2017-01-17/paginators-1.json | 3 +
botocore/data/mturk/2017-01-17/service-2.json | 2537 ++++++
botocore/data/opsworks/2013-02-18/examples-1.json | 5 +
.../data/opsworks/2013-02-18/paginators-1.json | 10 +
botocore/data/opsworks/2013-02-18/service-2.json | 467 +-
.../data/opsworkscm/2016-11-01/examples-1.json | 5 +
.../data/opsworkscm/2016-11-01/paginators-1.json | 3 +
botocore/data/opsworkscm/2016-11-01/service-2.json | 152 +-
.../organizations/2016-11-28/paginators-1.json | 3 +
.../data/organizations/2016-11-28/service-2.json | 2641 ++++++
botocore/data/pinpoint/2016-12-01/examples-1.json | 5 +
botocore/data/pinpoint/2016-12-01/service-2.json | 2261 +++--
botocore/data/polly/2016-06-10/examples-1.json | 171 +
botocore/data/polly/2016-06-10/paginators-1.json | 3 +
botocore/data/polly/2016-06-10/service-2.json | 48 +-
botocore/data/rds/2014-10-31/examples-1.json | 1658 ++++
botocore/data/rds/2014-10-31/service-2.json | 261 +-
.../data/rds/2014-10-31/service-2.sdk-extras.json | 16 +
botocore/data/redshift/2012-12-01/examples-1.json | 5 +
botocore/data/redshift/2012-12-01/service-2.json | 107 +-
.../data/rekognition/2016-06-27/examples-1.json | 651 ++
.../data/rekognition/2016-06-27/paginators-1.json | 16 +
.../data/rekognition/2016-06-27/service-2.json | 335 +-
.../2017-01-26/paginators-1.json | 20 +
.../2017-01-26/service-2.json | 429 +
botocore/data/route53/2013-04-01/examples-1.json | 5 +
botocore/data/route53/2013-04-01/service-2.json | 431 +-
.../data/route53domains/2014-05-15/service-2.json | 368 +-
botocore/data/s3/2006-03-01/examples-1.json | 5 +
.../data/servicecatalog/2015-12-10/examples-1.json | 5 +
.../servicecatalog/2015-12-10/paginators-1.json | 3 +
.../data/servicecatalog/2015-12-10/service-2.json | 195 +-
botocore/data/ses/2010-12-01/examples-1.json | 953 +++
botocore/data/shield/2016-06-02/examples-1.json | 5 +
botocore/data/sms/2016-10-24/examples-1.json | 5 +
botocore/data/sms/2016-10-24/paginators-1.json | 28 +
botocore/data/snowball/2016-06-30/examples-1.json | 442 +
.../data/snowball/2016-06-30/paginators-1.json | 16 +
botocore/data/snowball/2016-06-30/service-2.json | 73 +-
botocore/data/sns/2010-03-31/examples-1.json | 5 +
botocore/data/sqs/2012-11-05/paginators-1.json | 3 +
botocore/data/sqs/2012-11-05/service-2.json | 64 +-
botocore/data/ssm/2014-11-06/examples-1.json | 5 +
botocore/data/ssm/2014-11-06/paginators-1.json | 12 +
botocore/data/ssm/2014-11-06/service-2.json | 612 +-
.../data/stepfunctions/2016-11-23/examples-1.json | 5 +
.../stepfunctions/2016-11-23/paginators-1.json | 28 +
.../data/storagegateway/2013-06-30/examples-1.json | 1381 +++
.../data/storagegateway/2013-06-30/service-2.json | 216 +-
botocore/data/sts/2011-06-15/examples-1.json | 206 +
botocore/data/sts/2011-06-15/paginators-1.json | 3 +
botocore/data/sts/2011-06-15/service-2.json | 10 +-
botocore/data/support/2013-04-15/examples-1.json | 5 +
.../data/waf-regional/2016-11-28/examples-1.json | 1017 +++
.../data/waf-regional/2016-11-28/paginators-1.json | 3 +
.../data/waf-regional/2016-11-28/service-2.json | 365 +-
botocore/data/waf/2015-08-24/examples-1.json | 1017 +++
botocore/data/waf/2015-08-24/service-2.json | 366 +-
.../data/workdocs/2016-05-01/paginators-1.json | 25 +
botocore/data/workdocs/2016-05-01/service-2.json | 3448 ++++++++
.../data/workspaces/2015-04-08/examples-1.json | 5 +
.../data/workspaces/2015-04-08/paginators-1.json | 20 +
botocore/data/workspaces/2015-04-08/service-2.json | 15 +-
botocore/data/xray/2016-04-12/examples-1.json | 5 +
botocore/data/xray/2016-04-12/paginators-1.json | 3 +
botocore/data/xray/2016-04-12/service-2.json | 64 +-
botocore/docs/client.py | 4 +-
botocore/docs/shape.py | 7 +
botocore/docs/sharedexample.py | 4 +-
botocore/handlers.py | 83 +-
botocore/model.py | 8 +-
botocore/paginate.py | 162 +-
botocore/parsers.py | 15 +-
botocore/serialize.py | 5 +
botocore/signers.py | 82 +-
botocore/utils.py | 71 +-
botocore/validate.py | 25 +-
docs/source/conf.py | 4 +-
setup.cfg | 2 +-
tests/acceptance/features/steps/base.py | 2 -
tests/functional/docs/test_lex.py | 30 +
.../functional/docs/test_shared_example_config.py | 131 +
tests/functional/test_cloudformation.py | 1 -
tests/functional/test_cognito_idp.py | 120 +
tests/functional/test_credentials.py | 8 +-
tests/functional/test_ec2.py | 3 +-
tests/functional/test_endpoints.py | 40 +-
tests/functional/test_iot_data.py | 1 -
tests/functional/test_lex.py | 60 +
tests/functional/test_mturk.py | 38 +
tests/functional/test_paginate.py | 24 +
tests/functional/test_rds.py | 24 +
tests/functional/test_regions.py | 3 +-
tests/functional/test_s3.py | 101 +-
tests/functional/test_six_imports.py | 54 +
tests/integration/test_client.py | 4 +-
tests/integration/test_credentials.py | 1 -
tests/integration/test_elastictranscoder.py | 1 -
tests/integration/test_s3.py | 10 +-
tests/integration/test_utils.py | 3 -
tests/unit/auth/test_signers.py | 61 +-
tests/unit/auth/test_sigv4.py | 8 +-
tests/unit/docs/test_client.py | 8 +-
tests/unit/docs/test_service.py | 2 +-
tests/unit/docs/test_sharedexample.py | 18 +
tests/unit/docs/test_utils.py | 2 -
tests/unit/protocols/input/ec2.json | 54 +
tests/unit/protocols/input/json.json | 65 +-
tests/unit/protocols/input/query.json | 60 +
tests/unit/protocols/input/rest-json.json | 371 +-
tests/unit/protocols/input/rest-xml.json | 267 +-
tests/unit/protocols/output/rest-json.json | 40 +
tests/unit/protocols/output/rest-xml.json | 55 +-
.../unit/response_parsing/test_response_parsing.py | 8 +-
tests/unit/test_args.py | 45 +
tests/unit/test_client.py | 46 +-
tests/unit/test_configloader.py | 49 +-
tests/unit/test_credentials.py | 240 +-
tests/unit/test_endpoint.py | 2 -
tests/unit/test_handlers.py | 54 +
tests/unit/test_model.py | 24 +
tests/unit/test_paginate.py | 217 +-
tests/unit/test_protocols.py | 16 +-
tests/unit/test_regions.py | 6 +-
tests/unit/test_s3_addressing.py | 1 -
tests/unit/test_signers.py | 157 +-
tests/unit/test_utils.py | 135 +-
tests/unit/test_validate.py | 51 +-
295 files changed, 70178 insertions(+), 12375 deletions(-)
diff --git a/PKG-INFO b/PKG-INFO
index 8a14a39..0ecebfa 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: botocore
-Version: 1.5.7
+Version: 1.5.75
Summary: Low-level, data-driven core of boto 3.
Home-page: https://github.com/boto/botocore
Author: Amazon Web Services
@@ -21,7 +21,24 @@ Description: botocore
`AWS CLI <https://github.com/aws/aws-cli>`__ as well as
`boto3 <https://github.com/boto/boto3>`__.
- `Documentation <https://botocore.readthedocs.io/en/latest/>`__
+
+ Documentation
+ -------------
+ Documentation for ``botocore`` can be found on `Read the Docs <https://botocore.readthedocs.io/en/latest/>`__.
+
+
+ Getting Help
+ ------------
+
+ We use GitHub issues for tracking bugs and feature requests and have limited
+ bandwidth to address them. Please use these community resources for getting
+ help. Please note many of the same resources available for ``boto3`` are
+ applicable for ``botocore``:
+
+ * Ask a question on `Stack Overflow <https://stackoverflow.com/>`__ and tag it with `boto3 <https://stackoverflow.com/questions/tagged/boto3>`__
+ * Come join the AWS Python community chat on `gitter <https://gitter.im/boto/boto3>`__
+ * Open a support ticket with `AWS Support <https://console.aws.amazon.com/support/home#/>`__
+ * If it turns out that you may have found a bug, please `open an issue <https://github.com/boto/botocore/issues/new>`__
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
diff --git a/README.rst b/README.rst
index 3331faa..ed9decb 100644
--- a/README.rst
+++ b/README.rst
@@ -13,4 +13,21 @@ botocore package is the foundation for the
`AWS CLI <https://github.com/aws/aws-cli>`__ as well as
`boto3 <https://github.com/boto/boto3>`__.
-`Documentation <https://botocore.readthedocs.io/en/latest/>`__
+
+Documentation
+-------------
+Documentation for ``botocore`` can be found on `Read the Docs <https://botocore.readthedocs.io/en/latest/>`__.
+
+
+Getting Help
+------------
+
+We use GitHub issues for tracking bugs and feature requests and have limited
+bandwidth to address them. Please use these community resources for getting
+help. Please note many of the same resources available for ``boto3`` are
+applicable for ``botocore``:
+
+* Ask a question on `Stack Overflow <https://stackoverflow.com/>`__ and tag it with `boto3 <https://stackoverflow.com/questions/tagged/boto3>`__
+* Come join the AWS Python community chat on `gitter <https://gitter.im/boto/boto3>`__
+* Open a support ticket with `AWS Support <https://console.aws.amazon.com/support/home#/>`__
+* If it turns out that you may have found a bug, please `open an issue <https://github.com/boto/botocore/issues/new>`__
diff --git a/botocore.egg-info/PKG-INFO b/botocore.egg-info/PKG-INFO
index 8a14a39..0ecebfa 100644
--- a/botocore.egg-info/PKG-INFO
+++ b/botocore.egg-info/PKG-INFO
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: botocore
-Version: 1.5.7
+Version: 1.5.75
Summary: Low-level, data-driven core of boto 3.
Home-page: https://github.com/boto/botocore
Author: Amazon Web Services
@@ -21,7 +21,24 @@ Description: botocore
`AWS CLI <https://github.com/aws/aws-cli>`__ as well as
`boto3 <https://github.com/boto/boto3>`__.
- `Documentation <https://botocore.readthedocs.io/en/latest/>`__
+
+ Documentation
+ -------------
+ Documentation for ``botocore`` can be found on `Read the Docs <https://botocore.readthedocs.io/en/latest/>`__.
+
+
+ Getting Help
+ ------------
+
+ We use GitHub issues for tracking bugs and feature requests and have limited
+ bandwidth to address them. Please use these community resources for getting
+ help. Please note many of the same resources available for ``boto3`` are
+ applicable for ``botocore``:
+
+ * Ask a question on `Stack Overflow <https://stackoverflow.com/>`__ and tag it with `boto3 <https://stackoverflow.com/questions/tagged/boto3>`__
+ * Come join the AWS Python community chat on `gitter <https://gitter.im/boto/boto3>`__
+ * Open a support ticket with `AWS Support <https://console.aws.amazon.com/support/home#/>`__
+ * If it turns out that you may have found a bug, please `open an issue <https://github.com/boto/botocore/issues/new>`__
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
diff --git a/botocore.egg-info/SOURCES.txt b/botocore.egg-info/SOURCES.txt
index 81b500d..42a620d 100644
--- a/botocore.egg-info/SOURCES.txt
+++ b/botocore.egg-info/SOURCES.txt
@@ -40,18 +40,32 @@ botocore.egg-info/requires.txt
botocore.egg-info/top_level.txt
botocore/data/_retry.json
botocore/data/endpoints.json
+botocore/data/acm/2015-12-08/examples-1.json
botocore/data/acm/2015-12-08/paginators-1.json
botocore/data/acm/2015-12-08/service-2.json
+botocore/data/apigateway/2015-07-09/examples-1.json
botocore/data/apigateway/2015-07-09/paginators-1.json
botocore/data/apigateway/2015-07-09/service-2.json
+botocore/data/application-autoscaling/2016-02-06/examples-1.json
botocore/data/application-autoscaling/2016-02-06/paginators-1.json
botocore/data/application-autoscaling/2016-02-06/service-2.json
+botocore/data/appstream/2016-12-01/examples-1.json
+botocore/data/appstream/2016-12-01/paginators-1.json
botocore/data/appstream/2016-12-01/service-2.json
+botocore/data/athena/2017-05-18/paginators-1.json
+botocore/data/athena/2017-05-18/service-2.json
+botocore/data/autoscaling/2011-01-01/examples-1.json
botocore/data/autoscaling/2011-01-01/paginators-1.json
botocore/data/autoscaling/2011-01-01/service-2.json
+botocore/data/batch/2016-08-10/examples-1.json
+botocore/data/batch/2016-08-10/paginators-1.json
botocore/data/batch/2016-08-10/service-2.json
+botocore/data/budgets/2016-10-20/examples-1.json
+botocore/data/budgets/2016-10-20/paginators-1.json
botocore/data/budgets/2016-10-20/service-2.json
+botocore/data/clouddirectory/2016-05-10/paginators-1.json
botocore/data/clouddirectory/2016-05-10/service-2.json
+botocore/data/cloudformation/2010-05-15/examples-1.json
botocore/data/cloudformation/2010-05-15/paginators-1.json
botocore/data/cloudformation/2010-05-15/service-2.json
botocore/data/cloudformation/2010-05-15/waiters-2.json
@@ -91,39 +105,80 @@ botocore/data/cloudfront/2016-09-07/waiters-2.json
botocore/data/cloudfront/2016-09-29/paginators-1.json
botocore/data/cloudfront/2016-09-29/service-2.json
botocore/data/cloudfront/2016-09-29/waiters-2.json
+botocore/data/cloudfront/2016-11-25/examples-1.json
botocore/data/cloudfront/2016-11-25/paginators-1.json
botocore/data/cloudfront/2016-11-25/service-2.json
botocore/data/cloudfront/2016-11-25/waiters-2.json
+botocore/data/cloudfront/2017-03-25/examples-1.json
+botocore/data/cloudfront/2017-03-25/paginators-1.json
+botocore/data/cloudfront/2017-03-25/service-2.json
+botocore/data/cloudfront/2017-03-25/waiters-2.json
+botocore/data/cloudhsm/2014-05-30/examples-1.json
botocore/data/cloudhsm/2014-05-30/service-2.json
botocore/data/cloudsearch/2011-02-01/service-2.json
+botocore/data/cloudsearch/2013-01-01/paginators-1.json
botocore/data/cloudsearch/2013-01-01/service-2.json
+botocore/data/cloudsearchdomain/2013-01-01/examples-1.json
botocore/data/cloudsearchdomain/2013-01-01/service-2.json
+botocore/data/cloudtrail/2013-11-01/examples-1.json
+botocore/data/cloudtrail/2013-11-01/paginators-1.json
botocore/data/cloudtrail/2013-11-01/service-2.json
+botocore/data/cloudwatch/2010-08-01/examples-1.json
botocore/data/cloudwatch/2010-08-01/paginators-1.json
botocore/data/cloudwatch/2010-08-01/service-2.json
+botocore/data/cloudwatch/2010-08-01/waiters-2.json
+botocore/data/codebuild/2016-10-06/examples-1.json
+botocore/data/codebuild/2016-10-06/paginators-1.json
botocore/data/codebuild/2016-10-06/service-2.json
+botocore/data/codecommit/2015-04-13/examples-1.json
botocore/data/codecommit/2015-04-13/paginators-1.json
botocore/data/codecommit/2015-04-13/service-2.json
+botocore/data/codedeploy/2014-10-06/examples-1.json
+botocore/data/codedeploy/2014-10-06/paginators-1.json
botocore/data/codedeploy/2014-10-06/service-2.json
botocore/data/codedeploy/2014-10-06/waiters-2.json
+botocore/data/codepipeline/2015-07-09/examples-1.json
+botocore/data/codepipeline/2015-07-09/paginators-1.json
botocore/data/codepipeline/2015-07-09/service-2.json
+botocore/data/codestar/2017-04-19/paginators-1.json
+botocore/data/codestar/2017-04-19/service-2.json
+botocore/data/cognito-identity/2014-06-30/examples-1.json
+botocore/data/cognito-identity/2014-06-30/paginators-1.json
botocore/data/cognito-identity/2014-06-30/service-2.json
+botocore/data/cognito-idp/2016-04-18/examples-1.json
+botocore/data/cognito-idp/2016-04-18/paginators-1.json
botocore/data/cognito-idp/2016-04-18/service-2.json
botocore/data/cognito-sync/2014-06-30/service-2.json
+botocore/data/config/2014-11-12/examples-1.json
botocore/data/config/2014-11-12/paginators-1.json
botocore/data/config/2014-11-12/service-2.json
+botocore/data/cur/2017-01-06/examples-1.json
+botocore/data/cur/2017-01-06/paginators-1.json
botocore/data/cur/2017-01-06/service-2.json
botocore/data/datapipeline/2012-10-29/paginators-1.json
botocore/data/datapipeline/2012-10-29/service-2.json
+botocore/data/dax/2017-04-19/paginators-1.json
+botocore/data/dax/2017-04-19/service-2.json
+botocore/data/devicefarm/2015-06-23/examples-1.json
botocore/data/devicefarm/2015-06-23/paginators-1.json
botocore/data/devicefarm/2015-06-23/service-2.json
+botocore/data/directconnect/2012-10-25/examples-1.json
+botocore/data/directconnect/2012-10-25/paginators-1.json
botocore/data/directconnect/2012-10-25/service-2.json
+botocore/data/discovery/2015-11-01/examples-1.json
+botocore/data/discovery/2015-11-01/paginators-1.json
botocore/data/discovery/2015-11-01/service-2.json
+botocore/data/dms/2016-01-01/examples-1.json
+botocore/data/dms/2016-01-01/paginators-1.json
botocore/data/dms/2016-01-01/service-2.json
+botocore/data/ds/2015-04-16/examples-1.json
botocore/data/ds/2015-04-16/service-2.json
+botocore/data/dynamodb/2012-08-10/examples-1.json
botocore/data/dynamodb/2012-08-10/paginators-1.json
botocore/data/dynamodb/2012-08-10/service-2.json
botocore/data/dynamodb/2012-08-10/waiters-2.json
+botocore/data/dynamodbstreams/2012-08-10/examples-1.json
+botocore/data/dynamodbstreams/2012-08-10/paginators-1.json
botocore/data/dynamodbstreams/2012-08-10/service-2.json
botocore/data/ec2/2014-09-01/paginators-1.json
botocore/data/ec2/2014-09-01/service-2.json
@@ -151,11 +206,15 @@ botocore/data/ec2/2016-11-15/examples-1.json
botocore/data/ec2/2016-11-15/paginators-1.json
botocore/data/ec2/2016-11-15/service-2.json
botocore/data/ec2/2016-11-15/waiters-2.json
+botocore/data/ecr/2015-09-21/examples-1.json
botocore/data/ecr/2015-09-21/paginators-1.json
botocore/data/ecr/2015-09-21/service-2.json
+botocore/data/ecs/2014-11-13/examples-1.json
botocore/data/ecs/2014-11-13/paginators-1.json
botocore/data/ecs/2014-11-13/service-2.json
botocore/data/ecs/2014-11-13/waiters-2.json
+botocore/data/efs/2015-02-01/examples-1.json
+botocore/data/efs/2015-02-01/paginators-1.json
botocore/data/efs/2015-02-01/service-2.json
botocore/data/elasticache/2014-09-30/paginators-1.json
botocore/data/elasticache/2014-09-30/service-2.json
@@ -166,104 +225,186 @@ botocore/data/elasticache/2015-02-02/waiters-2.json
botocore/data/elasticbeanstalk/2010-12-01/examples-1.json
botocore/data/elasticbeanstalk/2010-12-01/paginators-1.json
botocore/data/elasticbeanstalk/2010-12-01/service-2.json
+botocore/data/elastictranscoder/2012-09-25/examples-1.json
botocore/data/elastictranscoder/2012-09-25/paginators-1.json
botocore/data/elastictranscoder/2012-09-25/service-2.json
botocore/data/elastictranscoder/2012-09-25/waiters-2.json
+botocore/data/elb/2012-06-01/examples-1.json
botocore/data/elb/2012-06-01/paginators-1.json
botocore/data/elb/2012-06-01/service-2.json
+botocore/data/elb/2012-06-01/waiters-2.json
+botocore/data/elbv2/2015-12-01/examples-1.json
botocore/data/elbv2/2015-12-01/paginators-1.json
botocore/data/elbv2/2015-12-01/service-2.json
+botocore/data/emr/2009-03-31/examples-1.json
botocore/data/emr/2009-03-31/paginators-1.json
botocore/data/emr/2009-03-31/service-2.json
botocore/data/emr/2009-03-31/waiters-2.json
+botocore/data/es/2015-01-01/paginators-1.json
botocore/data/es/2015-01-01/service-2.json
botocore/data/events/2014-02-03/service-2.json
+botocore/data/events/2015-10-07/examples-1.json
+botocore/data/events/2015-10-07/paginators-1.json
botocore/data/events/2015-10-07/service-2.json
+botocore/data/firehose/2015-08-04/examples-1.json
botocore/data/firehose/2015-08-04/service-2.json
+botocore/data/gamelift/2015-10-01/examples-1.json
+botocore/data/gamelift/2015-10-01/paginators-1.json
botocore/data/gamelift/2015-10-01/service-2.json
+botocore/data/glacier/2012-06-01/examples-1.json
botocore/data/glacier/2012-06-01/paginators-1.json
botocore/data/glacier/2012-06-01/service-2.json
+botocore/data/glacier/2012-06-01/waiters-2.json
+botocore/data/greengrass/2017-06-07/service-2.json
+botocore/data/health/2016-08-04/examples-1.json
botocore/data/health/2016-08-04/paginators-1.json
botocore/data/health/2016-08-04/service-2.json
+botocore/data/iam/2010-05-08/examples-1.json
botocore/data/iam/2010-05-08/paginators-1.json
botocore/data/iam/2010-05-08/service-2.json
botocore/data/iam/2010-05-08/waiters-2.json
botocore/data/importexport/2010-06-01/paginators-1.json
botocore/data/importexport/2010-06-01/service-2.json
botocore/data/inspector/2015-08-18/service-2.json
+botocore/data/inspector/2016-02-16/examples-1.json
+botocore/data/inspector/2016-02-16/paginators-1.json
botocore/data/inspector/2016-02-16/service-2.json
botocore/data/iot-data/2015-05-28/service-2.json
+botocore/data/iot/2015-05-28/examples-1.json
+botocore/data/iot/2015-05-28/paginators-1.json
botocore/data/iot/2015-05-28/service-2.json
+botocore/data/kinesis/2013-12-02/examples-1.json
botocore/data/kinesis/2013-12-02/paginators-1.json
botocore/data/kinesis/2013-12-02/service-2.json
botocore/data/kinesis/2013-12-02/waiters-2.json
+botocore/data/kinesisanalytics/2015-08-14/examples-1.json
+botocore/data/kinesisanalytics/2015-08-14/paginators-1.json
botocore/data/kinesisanalytics/2015-08-14/service-2.json
+botocore/data/kms/2014-11-01/examples-1.json
botocore/data/kms/2014-11-01/paginators-1.json
botocore/data/kms/2014-11-01/service-2.json
botocore/data/lambda/2014-11-11/service-2.json
+botocore/data/lambda/2015-03-31/examples-1.json
botocore/data/lambda/2015-03-31/paginators-1.json
botocore/data/lambda/2015-03-31/service-2.json
+botocore/data/lex-models/2017-04-19/paginators-1.json
+botocore/data/lex-models/2017-04-19/service-2.json
+botocore/data/lex-runtime/2016-11-28/paginators-1.json
+botocore/data/lex-runtime/2016-11-28/service-2.json
+botocore/data/lightsail/2016-11-28/examples-1.json
botocore/data/lightsail/2016-11-28/paginators-1.json
botocore/data/lightsail/2016-11-28/service-2.json
+botocore/data/logs/2014-03-28/examples-1.json
botocore/data/logs/2014-03-28/paginators-1.json
botocore/data/logs/2014-03-28/service-2.json
+botocore/data/machinelearning/2014-12-12/examples-1.json
botocore/data/machinelearning/2014-12-12/paginators-1.json
botocore/data/machinelearning/2014-12-12/service-2.json
botocore/data/machinelearning/2014-12-12/waiters-2.json
+botocore/data/marketplace-entitlement/2017-01-11/paginators-1.json
+botocore/data/marketplace-entitlement/2017-01-11/service-2.json
+botocore/data/marketplacecommerceanalytics/2015-07-01/examples-1.json
+botocore/data/marketplacecommerceanalytics/2015-07-01/paginators-1.json
botocore/data/marketplacecommerceanalytics/2015-07-01/service-2.json
+botocore/data/meteringmarketplace/2016-01-14/examples-1.json
botocore/data/meteringmarketplace/2016-01-14/service-2.json
+botocore/data/mturk/2017-01-17/paginators-1.json
+botocore/data/mturk/2017-01-17/service-2.json
+botocore/data/opsworks/2013-02-18/examples-1.json
+botocore/data/opsworks/2013-02-18/paginators-1.json
botocore/data/opsworks/2013-02-18/service-2.json
botocore/data/opsworks/2013-02-18/waiters-2.json
+botocore/data/opsworkscm/2016-11-01/examples-1.json
+botocore/data/opsworkscm/2016-11-01/paginators-1.json
botocore/data/opsworkscm/2016-11-01/service-2.json
botocore/data/opsworkscm/2016-11-01/waiters-2.json
+botocore/data/organizations/2016-11-28/paginators-1.json
+botocore/data/organizations/2016-11-28/service-2.json
+botocore/data/pinpoint/2016-12-01/examples-1.json
botocore/data/pinpoint/2016-12-01/service-2.json
+botocore/data/polly/2016-06-10/examples-1.json
+botocore/data/polly/2016-06-10/paginators-1.json
botocore/data/polly/2016-06-10/service-2.json
botocore/data/rds/2014-09-01/paginators-1.json
botocore/data/rds/2014-09-01/service-2.json
botocore/data/rds/2014-09-01/waiters-2.json
+botocore/data/rds/2014-10-31/examples-1.json
botocore/data/rds/2014-10-31/paginators-1.json
botocore/data/rds/2014-10-31/service-2.json
botocore/data/rds/2014-10-31/service-2.sdk-extras.json
botocore/data/rds/2014-10-31/waiters-2.json
+botocore/data/redshift/2012-12-01/examples-1.json
botocore/data/redshift/2012-12-01/paginators-1.json
botocore/data/redshift/2012-12-01/service-2.json
botocore/data/redshift/2012-12-01/waiters-2.json
+botocore/data/rekognition/2016-06-27/examples-1.json
+botocore/data/rekognition/2016-06-27/paginators-1.json
botocore/data/rekognition/2016-06-27/service-2.json
+botocore/data/resourcegroupstaggingapi/2017-01-26/paginators-1.json
+botocore/data/resourcegroupstaggingapi/2017-01-26/service-2.json
+botocore/data/route53/2013-04-01/examples-1.json
botocore/data/route53/2013-04-01/paginators-1.json
botocore/data/route53/2013-04-01/service-2.json
botocore/data/route53/2013-04-01/waiters-2.json
botocore/data/route53domains/2014-05-15/paginators-1.json
botocore/data/route53domains/2014-05-15/service-2.json
+botocore/data/s3/2006-03-01/examples-1.json
botocore/data/s3/2006-03-01/paginators-1.json
botocore/data/s3/2006-03-01/service-2.json
botocore/data/s3/2006-03-01/waiters-2.json
botocore/data/sdb/2009-04-15/paginators-1.json
botocore/data/sdb/2009-04-15/service-2.json
+botocore/data/servicecatalog/2015-12-10/examples-1.json
+botocore/data/servicecatalog/2015-12-10/paginators-1.json
botocore/data/servicecatalog/2015-12-10/service-2.json
+botocore/data/ses/2010-12-01/examples-1.json
botocore/data/ses/2010-12-01/paginators-1.json
botocore/data/ses/2010-12-01/service-2.json
botocore/data/ses/2010-12-01/waiters-2.json
+botocore/data/shield/2016-06-02/examples-1.json
botocore/data/shield/2016-06-02/service-2.json
+botocore/data/sms/2016-10-24/examples-1.json
+botocore/data/sms/2016-10-24/paginators-1.json
botocore/data/sms/2016-10-24/service-2.json
+botocore/data/snowball/2016-06-30/examples-1.json
+botocore/data/snowball/2016-06-30/paginators-1.json
botocore/data/snowball/2016-06-30/service-2.json
+botocore/data/sns/2010-03-31/examples-1.json
botocore/data/sns/2010-03-31/paginators-1.json
botocore/data/sns/2010-03-31/service-2.json
botocore/data/sqs/2012-11-05/examples-1.json
+botocore/data/sqs/2012-11-05/paginators-1.json
botocore/data/sqs/2012-11-05/service-2.json
+botocore/data/ssm/2014-11-06/examples-1.json
botocore/data/ssm/2014-11-06/paginators-1.json
botocore/data/ssm/2014-11-06/service-2.json
+botocore/data/stepfunctions/2016-11-23/examples-1.json
+botocore/data/stepfunctions/2016-11-23/paginators-1.json
botocore/data/stepfunctions/2016-11-23/service-2.json
+botocore/data/storagegateway/2013-06-30/examples-1.json
botocore/data/storagegateway/2013-06-30/paginators-1.json
botocore/data/storagegateway/2013-06-30/service-2.json
+botocore/data/sts/2011-06-15/examples-1.json
+botocore/data/sts/2011-06-15/paginators-1.json
botocore/data/sts/2011-06-15/service-2.json
+botocore/data/support/2013-04-15/examples-1.json
botocore/data/support/2013-04-15/paginators-1.json
botocore/data/support/2013-04-15/service-2.json
botocore/data/swf/2012-01-25/paginators-1.json
botocore/data/swf/2012-01-25/service-2.json
+botocore/data/waf-regional/2016-11-28/examples-1.json
+botocore/data/waf-regional/2016-11-28/paginators-1.json
botocore/data/waf-regional/2016-11-28/service-2.json
+botocore/data/waf/2015-08-24/examples-1.json
botocore/data/waf/2015-08-24/paginators-1.json
botocore/data/waf/2015-08-24/service-2.json
+botocore/data/workdocs/2016-05-01/paginators-1.json
+botocore/data/workdocs/2016-05-01/service-2.json
+botocore/data/workspaces/2015-04-08/examples-1.json
+botocore/data/workspaces/2015-04-08/paginators-1.json
botocore/data/workspaces/2015-04-08/service-2.json
+botocore/data/xray/2016-04-12/examples-1.json
+botocore/data/xray/2016-04-12/paginators-1.json
botocore/data/xray/2016-04-12/service-2.json
botocore/docs/__init__.py
botocore/docs/client.py
@@ -445,13 +586,16 @@ tests/functional/test_client_class_names.py
tests/functional/test_client_metadata.py
tests/functional/test_cloudformation.py
tests/functional/test_cloudsearchdomain.py
+tests/functional/test_cognito_idp.py
tests/functional/test_credentials.py
tests/functional/test_ec2.py
tests/functional/test_endpoints.py
tests/functional/test_iot_data.py
+tests/functional/test_lex.py
tests/functional/test_loaders.py
tests/functional/test_machinelearning.py
tests/functional/test_model_completeness.py
+tests/functional/test_mturk.py
tests/functional/test_paginate.py
tests/functional/test_paginator_config.py
tests/functional/test_public_apis.py
@@ -459,6 +603,7 @@ tests/functional/test_rds.py
tests/functional/test_regions.py
tests/functional/test_s3.py
tests/functional/test_session.py
+tests/functional/test_six_imports.py
tests/functional/test_stub.py
tests/functional/test_waiter_config.py
tests/functional/docs/__init__.py
@@ -466,7 +611,9 @@ tests/functional/docs/test_alias.py
tests/functional/docs/test_autoscaling.py
tests/functional/docs/test_ec2.py
tests/functional/docs/test_glacier.py
+tests/functional/docs/test_lex.py
tests/functional/docs/test_s3.py
+tests/functional/docs/test_shared_example_config.py
tests/functional/docs/test_streaming_body.py
tests/functional/leak/__init__.py
tests/functional/leak/test_resource_leaks.py
diff --git a/botocore/__init__.py b/botocore/__init__.py
index 9cff539..f54c557 100644
--- a/botocore/__init__.py
+++ b/botocore/__init__.py
@@ -16,7 +16,7 @@ import os
import re
import logging
-__version__ = '1.5.7'
+__version__ = '1.5.75'
class NullHandler(logging.Handler):
@@ -45,6 +45,8 @@ _xform_cache = {
('DescribeStorediSCSIVolumes', '-'): 'describe-stored-iscsi-volumes',
('CreateStorediSCSIVolume', '_'): 'create_stored_iscsi_volume',
('CreateStorediSCSIVolume', '-'): 'create-stored-iscsi-volume',
+ ('ListHITsForQualificationType', '_'): 'list_hits_for_qualification_type',
+ ('ListHITsForQualificationType', '-'): 'list-hits-for-qualification-type',
}
# The items in this dict represent partial renames to apply globally to all
# services which might have a matching argument or operation. This way a
diff --git a/botocore/args.py b/botocore/args.py
index 54f4290..9e69a53 100644
--- a/botocore/args.py
+++ b/botocore/args.py
@@ -52,9 +52,16 @@ class ClientArgsCreator(object):
s3_config = final_args['s3_config']
partition = endpoint_config['metadata'].get('partition', None)
+ signing_region = endpoint_config['signing_region']
+ endpoint_region_name = endpoint_config['region_name']
+ if signing_region is None and endpoint_region_name is None:
+ signing_region, endpoint_region_name = \
+ self._get_default_s3_region(service_name, endpoint_bridge)
+ config_kwargs['region_name'] = endpoint_region_name
+
event_emitter = copy.copy(self._event_emitter)
signer = RequestSigner(
- service_name, endpoint_config['signing_region'],
+ service_name, signing_region,
endpoint_config['signing_name'],
endpoint_config['signature_version'],
credentials, event_emitter)
@@ -64,7 +71,7 @@ class ClientArgsCreator(object):
endpoint_creator = EndpointCreator(event_emitter)
endpoint = endpoint_creator.create_endpoint(
- service_model, region_name=endpoint_config['region_name'],
+ service_model, region_name=endpoint_region_name,
endpoint_url=endpoint_config['endpoint_url'], verify=verify,
response_parser_factory=self._response_parser_factory,
max_pool_connections=new_config.max_pool_connections,
@@ -187,3 +194,12 @@ class ClientArgsCreator(object):
else:
config_copy[key] = False
return config_copy
+
+ def _get_default_s3_region(self, service_name, endpoint_bridge):
+ # If a user is providing a custom URL, the endpoint resolver will
+ # refuse to infer a signing region. If we want to default to s3v4,
+ # we have to account for this.
+ if service_name == 's3':
+ endpoint = endpoint_bridge.resolve('s3')
+ return endpoint['signing_region'], endpoint['region_name']
+ return None, None
diff --git a/botocore/auth.py b/botocore/auth.py
index f3fd117..7478580 100644
--- a/botocore/auth.py
+++ b/botocore/auth.py
@@ -33,6 +33,7 @@ from botocore.compat import encodebytes
from botocore.compat import six
from botocore.compat import json
from botocore.compat import MD5_AVAILABLE
+from botocore.compat import ensure_unicode
logger = logging.getLogger(__name__)
@@ -50,6 +51,7 @@ SIGNED_HEADERS_BLACKLIST = [
'user-agent',
'x-amzn-trace-id',
]
+UNSIGNED_PAYLOAD = 'UNSIGNED-PAYLOAD'
class BaseSigner(object):
@@ -227,17 +229,29 @@ class SigV4Auth(BaseSigner):
headers = []
sorted_header_names = sorted(set(headers_to_sign))
for key in sorted_header_names:
- value = ','.join(v.strip() for v in
+ value = ','.join(self._header_value(v) for v in
sorted(headers_to_sign.get_all(key)))
- headers.append('%s:%s' % (key, value))
+ headers.append('%s:%s' % (key, ensure_unicode(value)))
return '\n'.join(headers)
+ def _header_value(self, value):
+ # From the sigv4 docs:
+ # Lowercase(HeaderName) + ':' + Trimall(HeaderValue)
+ #
+ # The Trimall function removes excess white space before and after
+ # values, and converts sequential spaces to a single space.
+ return ' '.join(value.split())
+
def signed_headers(self, headers_to_sign):
l = ['%s' % n.lower().strip() for n in set(headers_to_sign)]
l = sorted(l)
return ';'.join(l)
def payload(self, request):
+ if not self._should_sha256_sign_payload(request):
+ # When payload signing is disabled, we use this static string in
+ # place of the payload checksum.
+ return UNSIGNED_PAYLOAD
if request.body and hasattr(request.body, 'seek'):
position = request.body.tell()
read_chunksize = functools.partial(request.body.read,
@@ -255,6 +269,16 @@ class SigV4Auth(BaseSigner):
else:
return EMPTY_SHA256_HASH
+ def _should_sha256_sign_payload(self, request):
+ # Payloads will always be signed over insecure connections.
+ if not request.url.startswith('https'):
+ return True
+
+ # Certain operations may have payload signing disabled by default.
+ # Since we don't have access to the operation model, we pass in this
+ # bit of metadata through the request context.
+ return request.context.get('payload_signing_enabled', True)
+
def canonical_request(self, request):
cr = [request.method.upper()]
path = self._normalize_url_path(urlsplit(request.url).path)
@@ -346,6 +370,11 @@ class SigV4Auth(BaseSigner):
del request.headers['X-Amz-Security-Token']
request.headers['X-Amz-Security-Token'] = self.credentials.token
+ if not request.context.get('payload_signing_enabled', True):
+ if 'X-Amz-Content-SHA256' in request.headers:
+ del request.headers['X-Amz-Content-SHA256']
+ request.headers['X-Amz-Content-SHA256'] = UNSIGNED_PAYLOAD
+
def _set_necessary_date_headers(self, request):
# The spec allows for either the Date _or_ the X-Amz-Date value to be
# used so we check both. If there's a Date header, we use the date
@@ -383,10 +412,7 @@ class S3SigV4Auth(SigV4Auth):
if 'X-Amz-Content-SHA256' in request.headers:
del request.headers['X-Amz-Content-SHA256']
- if self._should_sha256_sign_payload(request):
- request.headers['X-Amz-Content-SHA256'] = self.payload(request)
- else:
- request.headers['X-Amz-Content-SHA256'] = 'UNSIGNED-PAYLOAD'
+ request.headers['X-Amz-Content-SHA256'] = self.payload(request)
def _should_sha256_sign_payload(self, request):
# S3 allows optional body signing, so to minimize the performance
@@ -400,15 +426,27 @@ class S3SigV4Auth(SigV4Auth):
if s3_config is None:
s3_config = {}
+ # The explicit configuration takes precedence over any implicit
+ # configuration.
sign_payload = s3_config.get('payload_signing_enabled', None)
if sign_payload is not None:
return sign_payload
- if 'Content-MD5' in request.headers and 'https' in request.url and \
- request.context.get('has_streaming_input', False):
+ # We require that both content-md5 be present and https be enabled
+ # to implicitly disable body signing. The combination of TLS and
+ # content-md5 is sufficiently secure and durable for us to be
+ # confident in the request without body signing.
+ if not request.url.startswith('https') or \
+ 'Content-MD5' not in request.headers:
+ return True
+
+ # If the input is streaming we disable body signing by default.
+ if request.context.get('has_streaming_input', False):
return False
- return True
+ # If the S3-specific checks had no results, delegate to the generic
+ # checks.
+ return super(S3SigV4Auth, self)._should_sha256_sign_payload(request)
def _normalize_url_path(self, path):
# For S3, we do not normalize the path.
@@ -514,7 +552,7 @@ class S3SigV4QueryAuth(SigV4QueryAuth):
# "You don't include a payload hash in the Canonical Request, because
# when you create a presigned URL, you don't know anything about the
# payload. Instead, you use a constant string "UNSIGNED-PAYLOAD".
- return "UNSIGNED-PAYLOAD"
+ return UNSIGNED_PAYLOAD
class S3SigV4PostAuth(SigV4Auth):
diff --git a/botocore/awsrequest.py b/botocore/awsrequest.py
index acd5092..c26ebc0 100644
--- a/botocore/awsrequest.py
+++ b/botocore/awsrequest.py
@@ -19,7 +19,8 @@ import socket
import inspect
from botocore.compat import six
-from botocore.compat import HTTPHeaders, HTTPResponse, urlunsplit, urlsplit
+from botocore.compat import HTTPHeaders, HTTPResponse, urlunsplit, urlsplit,\
+ urlparse
from botocore.exceptions import UnseekableStreamError
from botocore.utils import percent_encode_sequence
from botocore.vendored.requests import models
diff --git a/botocore/client.py b/botocore/client.py
index 592ef17..e7a81c5 100644
--- a/botocore/client.py
+++ b/botocore/client.py
@@ -33,6 +33,7 @@ from botocore.utils import switch_to_virtual_host_style
from botocore.utils import S3_ACCELERATE_WHITELIST
from botocore.args import ClientArgsCreator
from botocore.compat import urlsplit
+from botocore import UNSIGNED
# Keep this imported. There's pre-existing code that uses
# "from botocore.client import Config".
from botocore.config import Config
@@ -69,7 +70,9 @@ class ClientCreator(object):
service_model, region_name, is_secure, endpoint_url,
verify, credentials, scoped_config, client_config, endpoint_bridge)
service_client = cls(**client_args)
- self._register_s3_events(service_client, endpoint_bridge, endpoint_url)
+ self._register_s3_events(
+ service_client, endpoint_bridge, endpoint_url, client_config,
+ scoped_config)
return service_client
def create_client_class(self, service_name, api_version=None):
@@ -116,7 +119,8 @@ class ClientCreator(object):
self._event_emitter.register('needs-retry.%s' % endpoint_prefix,
... 111129 lines suppressed ...
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/python-modules/packages/python-botocore.git
More information about the Python-modules-commits
mailing list