[Python-modules-commits] [python-botocore] 01/04: New upstream version 1.5.7
Takaki Taniguchi
takaki at moszumanska.debian.org
Thu Feb 2 08:39:07 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 a73c3c192a2842cd282fd5f1aff254e2bf88a6d5
Author: TANIGUCHI Takaki <takaki at asis.media-as.org>
Date: Thu Feb 2 17:27:08 2017 +0900
New upstream version 1.5.7
---
LICENSE.txt | 2 +-
PKG-INFO | 5 +-
botocore.egg-info/PKG-INFO | 5 +-
botocore.egg-info/SOURCES.txt | 35 +
botocore.egg-info/requires.txt | 2 +-
botocore/__init__.py | 18 +-
botocore/args.py | 6 +-
botocore/auth.py | 30 +-
botocore/awsrequest.py | 7 +-
botocore/client.py | 24 +-
botocore/configloader.py | 23 +-
botocore/credentials.py | 15 +-
botocore/data/acm/2015-12-08/service-2.json | 80 +-
botocore/data/apigateway/2015-07-09/service-2.json | 868 +-
.../2016-02-06/service-2.json | 135 +-
botocore/data/appstream/2016-12-01/service-2.json | 1230 ++
.../data/autoscaling/2011-01-01/service-2.json | 1 +
botocore/data/batch/2016-08-10/service-2.json | 1428 ++
botocore/data/budgets/2016-10-20/service-2.json | 3 +-
.../data/clouddirectory/2016-05-10/service-2.json | 3930 ++++
.../data/cloudformation/2010-05-15/service-2.json | 69 +-
.../data/cloudformation/2010-05-15/waiters-2.json | 26 +
.../data/cloudfront/2016-11-25/paginators-1.json | 32 +
botocore/data/cloudfront/2016-11-25/service-2.json | 3577 ++++
botocore/data/cloudfront/2016-11-25/waiters-2.json | 47 +
botocore/data/cloudhsm/2014-05-30/service-2.json | 3 +-
.../data/cloudsearch/2013-01-01/service-2.json | 3 +-
.../cloudsearchdomain/2013-01-01/service-2.json | 3 +-
botocore/data/cloudtrail/2013-11-01/service-2.json | 169 +-
botocore/data/cloudwatch/2010-08-01/service-2.json | 284 +-
botocore/data/codebuild/2016-10-06/service-2.json | 1090 ++
botocore/data/codecommit/2015-04-13/service-2.json | 319 +-
botocore/data/codedeploy/2014-10-06/service-2.json | 440 +-
.../data/codepipeline/2015-07-09/service-2.json | 15 +-
.../cognito-identity/2014-06-30/service-2.json | 272 +-
.../data/cognito-idp/2016-04-18/service-2.json | 613 +-
.../data/cognito-sync/2014-06-30/service-2.json | 3 +-
botocore/data/config/2014-11-12/paginators-1.json | 39 +
botocore/data/config/2014-11-12/service-2.json | 81 +-
botocore/data/cur/2017-01-06/service-2.json | 263 +
.../data/datapipeline/2012-10-29/service-2.json | 3 +-
botocore/data/devicefarm/2015-06-23/service-2.json | 3 +-
.../data/directconnect/2012-10-25/service-2.json | 155 +-
botocore/data/discovery/2015-11-01/service-2.json | 560 +-
botocore/data/dms/2016-01-01/service-2.json | 118 +-
botocore/data/ds/2015-04-16/service-2.json | 230 +-
botocore/data/dynamodb/2012-08-10/service-2.json | 626 +-
.../data/dynamodbstreams/2012-08-10/service-2.json | 3 +-
botocore/data/ec2/2016-11-15/examples-1.json | 3740 ++++
botocore/data/ec2/2016-11-15/paginators-1.json | 63 +
botocore/data/ec2/2016-11-15/service-2.json | 18675 +++++++++++++++++++
botocore/data/ec2/2016-11-15/waiters-2.json | 575 +
botocore/data/ecr/2015-09-21/service-2.json | 43 +-
botocore/data/ecs/2014-11-13/service-2.json | 409 +-
botocore/data/efs/2015-02-01/service-2.json | 6 +-
.../data/elasticache/2015-02-02/service-2.json | 19 +-
.../elasticbeanstalk/2010-12-01/service-2.json | 344 +-
.../elastictranscoder/2012-09-25/service-2.json | 285 +-
botocore/data/elb/2012-06-01/service-2.json | 1 +
botocore/data/elbv2/2015-12-01/service-2.json | 242 +-
botocore/data/emr/2009-03-31/service-2.json | 601 +-
botocore/data/endpoints.json | 1210 +-
botocore/data/es/2015-01-01/service-2.json | 1 +
botocore/data/events/2015-10-07/service-2.json | 1 +
botocore/data/firehose/2015-08-04/service-2.json | 459 +-
botocore/data/gamelift/2015-10-01/service-2.json | 169 +-
botocore/data/glacier/2012-06-01/service-2.json | 2101 +--
botocore/data/health/2016-08-04/paginators-1.json | 28 +
botocore/data/health/2016-08-04/service-2.json | 823 +
botocore/data/iam/2010-05-08/service-2.json | 651 +-
.../data/importexport/2010-06-01/service-2.json | 1 +
botocore/data/inspector/2016-02-16/service-2.json | 10 +-
botocore/data/iot-data/2015-05-28/service-2.json | 1 +
botocore/data/iot/2015-05-28/service-2.json | 1 +
botocore/data/kinesis/2013-12-02/service-2.json | 159 +-
.../kinesisanalytics/2015-08-14/service-2.json | 1 +
botocore/data/kms/2014-11-01/service-2.json | 55 +-
botocore/data/lambda/2015-03-31/service-2.json | 262 +-
.../data/lightsail/2016-11-28/paginators-1.json | 54 +
botocore/data/lightsail/2016-11-28/service-2.json | 3059 +++
botocore/data/logs/2014-03-28/service-2.json | 728 +-
.../data/machinelearning/2014-12-12/service-2.json | 1 +
.../2015-07-01/service-2.json | 13 +-
.../meteringmarketplace/2016-01-14/service-2.json | 200 +-
botocore/data/opsworks/2013-02-18/service-2.json | 1 +
botocore/data/opsworkscm/2016-11-01/service-2.json | 1077 ++
botocore/data/opsworkscm/2016-11-01/waiters-2.json | 25 +
botocore/data/pinpoint/2016-12-01/service-2.json | 3216 ++++
botocore/data/polly/2016-06-10/service-2.json | 622 +
botocore/data/rds/2014-10-31/service-2.json | 114 +-
.../data/rds/2014-10-31/service-2.sdk-extras.json | 23 +
botocore/data/redshift/2012-12-01/service-2.json | 1 +
.../data/rekognition/2016-06-27/service-2.json | 1206 ++
botocore/data/route53/2013-04-01/service-2.json | 623 +-
.../data/route53domains/2014-05-15/service-2.json | 1 +
botocore/data/s3/2006-03-01/service-2.json | 1053 +-
botocore/data/sdb/2009-04-15/service-2.json | 1 +
.../data/servicecatalog/2015-12-10/service-2.json | 2133 ++-
botocore/data/ses/2010-12-01/service-2.json | 1 +
botocore/data/shield/2016-06-02/service-2.json | 682 +
botocore/data/sms/2016-10-24/service-2.json | 1 +
botocore/data/snowball/2016-06-30/service-2.json | 505 +-
botocore/data/sns/2010-03-31/service-2.json | 1 +
botocore/data/sqs/2012-11-05/service-2.json | 331 +-
botocore/data/ssm/2014-11-06/service-2.json | 8088 ++++++--
.../data/stepfunctions/2016-11-23/service-2.json | 1412 ++
.../data/storagegateway/2013-06-30/service-2.json | 574 +-
botocore/data/sts/2011-06-15/service-2.json | 19 +-
botocore/data/support/2013-04-15/service-2.json | 1 +
botocore/data/swf/2012-01-25/service-2.json | 1 +
.../2016-11-28}/service-2.json | 227 +-
botocore/data/waf/2015-08-24/paginators-1.json | 46 +
botocore/data/waf/2015-08-24/service-2.json | 63 +-
botocore/data/workspaces/2015-04-08/service-2.json | 1 +
botocore/data/xray/2016-04-12/service-2.json | 867 +
botocore/docs/bcdoc/style.py | 6 +
botocore/docs/docstring.py | 2 +-
botocore/docs/method.py | 16 +-
botocore/docs/params.py | 9 +
botocore/docs/service.py | 3 +-
botocore/errorfactory.py | 95 +
botocore/handlers.py | 91 +-
botocore/loaders.py | 66 +-
botocore/model.py | 23 +-
botocore/paginate.py | 7 +-
botocore/parsers.py | 28 +-
botocore/session.py | 16 +-
botocore/utils.py | 30 +-
docs/source/conf.py | 4 +-
requirements.txt | 2 +-
setup.cfg | 1 -
setup.py | 3 +
tests/functional/__init__.py | 37 +
tests/functional/docs/test_ec2.py | 6 +
tests/functional/test_ec2.py | 70 +
tests/functional/test_endpoints.py | 60 +
tests/functional/test_rds.py | 69 +
tests/functional/test_s3.py | 6 +-
tests/integration/test_apigateway.py | 23 +-
tests/integration/test_client.py | 36 +-
tests/integration/test_s3.py | 134 +-
tests/unit/auth/test_signers.py | 55 +
tests/unit/cfg/aws_config_nested | 1 +
tests/unit/cfg/aws_third_config | 8 +
tests/unit/docs/__init__.py | 6 +-
tests/unit/docs/bcdoc/test_style.py | 14 +
tests/unit/docs/test_method.py | 6 +
tests/unit/test_args.py | 11 +-
tests/unit/test_client.py | 177 +-
tests/unit/test_configloader.py | 38 +-
tests/unit/test_errorfactory.py | 133 +
tests/unit/test_handlers.py | 236 +-
tests/unit/test_idempotency.py | 39 +
tests/unit/test_loaders.py | 153 +-
tests/unit/test_model.py | 15 +-
tests/unit/test_paginate.py | 48 +
tests/unit/test_parsers.py | 200 +-
tests/unit/test_session.py | 14 +
tests/unit/test_utils.py | 140 +
159 files changed, 71014 insertions(+), 5923 deletions(-)
diff --git a/LICENSE.txt b/LICENSE.txt
index ab7da47..4c00dd5 100644
--- a/LICENSE.txt
+++ b/LICENSE.txt
@@ -1,4 +1,4 @@
-Copyright 2012-2014 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+Copyright 2012-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.
Licensed under the Apache License, Version 2.0 (the "License"). You
may not use this file except in compliance with the License. A copy of
diff --git a/PKG-INFO b/PKG-INFO
index 3cfbf88..8a14a39 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: botocore
-Version: 1.4.70
+Version: 1.5.7
Summary: Low-level, data-driven core of boto 3.
Home-page: https://github.com/boto/botocore
Author: Amazon Web Services
@@ -30,8 +30,11 @@ Classifier: Intended Audience :: System Administrators
Classifier: Natural Language :: English
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python
+Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
+Classifier: Programming Language :: Python :: 3.5
+Classifier: Programming Language :: Python :: 3.6
diff --git a/botocore.egg-info/PKG-INFO b/botocore.egg-info/PKG-INFO
index 3cfbf88..8a14a39 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.4.70
+Version: 1.5.7
Summary: Low-level, data-driven core of boto 3.
Home-page: https://github.com/boto/botocore
Author: Amazon Web Services
@@ -30,8 +30,11 @@ Classifier: Intended Audience :: System Administrators
Classifier: Natural Language :: English
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python
+Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
+Classifier: Programming Language :: Python :: 3.5
+Classifier: Programming Language :: Python :: 3.6
diff --git a/botocore.egg-info/SOURCES.txt b/botocore.egg-info/SOURCES.txt
index 9d98c49..81b500d 100644
--- a/botocore.egg-info/SOURCES.txt
+++ b/botocore.egg-info/SOURCES.txt
@@ -14,6 +14,7 @@ botocore/config.py
botocore/configloader.py
botocore/credentials.py
botocore/endpoint.py
+botocore/errorfactory.py
botocore/exceptions.py
botocore/handlers.py
botocore/hooks.py
@@ -45,9 +46,12 @@ 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/paginators-1.json
botocore/data/application-autoscaling/2016-02-06/service-2.json
+botocore/data/appstream/2016-12-01/service-2.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/service-2.json
botocore/data/budgets/2016-10-20/service-2.json
+botocore/data/clouddirectory/2016-05-10/service-2.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
@@ -87,6 +91,9 @@ 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/paginators-1.json
+botocore/data/cloudfront/2016-11-25/service-2.json
+botocore/data/cloudfront/2016-11-25/waiters-2.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/service-2.json
@@ -94,6 +101,7 @@ botocore/data/cloudsearchdomain/2013-01-01/service-2.json
botocore/data/cloudtrail/2013-11-01/service-2.json
botocore/data/cloudwatch/2010-08-01/paginators-1.json
botocore/data/cloudwatch/2010-08-01/service-2.json
+botocore/data/codebuild/2016-10-06/service-2.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/service-2.json
@@ -102,7 +110,9 @@ botocore/data/codepipeline/2015-07-09/service-2.json
botocore/data/cognito-identity/2014-06-30/service-2.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/paginators-1.json
botocore/data/config/2014-11-12/service-2.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/devicefarm/2015-06-23/paginators-1.json
@@ -137,6 +147,10 @@ botocore/data/ec2/2016-09-15/examples-1.json
botocore/data/ec2/2016-09-15/paginators-1.json
botocore/data/ec2/2016-09-15/service-2.json
botocore/data/ec2/2016-09-15/waiters-2.json
+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/paginators-1.json
botocore/data/ecr/2015-09-21/service-2.json
botocore/data/ecs/2014-11-13/paginators-1.json
@@ -169,6 +183,8 @@ botocore/data/firehose/2015-08-04/service-2.json
botocore/data/gamelift/2015-10-01/service-2.json
botocore/data/glacier/2012-06-01/paginators-1.json
botocore/data/glacier/2012-06-01/service-2.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/paginators-1.json
botocore/data/iam/2010-05-08/service-2.json
botocore/data/iam/2010-05-08/waiters-2.json
@@ -187,6 +203,8 @@ botocore/data/kms/2014-11-01/service-2.json
botocore/data/lambda/2014-11-11/service-2.json
botocore/data/lambda/2015-03-31/paginators-1.json
botocore/data/lambda/2015-03-31/service-2.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/paginators-1.json
botocore/data/logs/2014-03-28/service-2.json
botocore/data/machinelearning/2014-12-12/paginators-1.json
@@ -196,15 +214,21 @@ botocore/data/marketplacecommerceanalytics/2015-07-01/service-2.json
botocore/data/meteringmarketplace/2016-01-14/service-2.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/service-2.json
+botocore/data/opsworkscm/2016-11-01/waiters-2.json
+botocore/data/pinpoint/2016-12-01/service-2.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/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/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/service-2.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
@@ -219,6 +243,7 @@ botocore/data/servicecatalog/2015-12-10/service-2.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/service-2.json
botocore/data/sms/2016-10-24/service-2.json
botocore/data/snowball/2016-06-30/service-2.json
botocore/data/sns/2010-03-31/paginators-1.json
@@ -227,6 +252,7 @@ botocore/data/sqs/2012-11-05/examples-1.json
botocore/data/sqs/2012-11-05/service-2.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/service-2.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/service-2.json
@@ -234,8 +260,11 @@ 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/service-2.json
+botocore/data/waf/2015-08-24/paginators-1.json
botocore/data/waf/2015-08-24/service-2.json
botocore/data/workspaces/2015-04-08/service-2.json
+botocore/data/xray/2016-04-12/service-2.json
botocore/docs/__init__.py
botocore/docs/client.py
botocore/docs/docstring.py
@@ -417,6 +446,8 @@ tests/functional/test_client_metadata.py
tests/functional/test_cloudformation.py
tests/functional/test_cloudsearchdomain.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_loaders.py
tests/functional/test_machinelearning.py
@@ -424,6 +455,7 @@ tests/functional/test_model_completeness.py
tests/functional/test_paginate.py
tests/functional/test_paginator_config.py
tests/functional/test_public_apis.py
+tests/functional/test_rds.py
tests/functional/test_regions.py
tests/functional/test_s3.py
tests/functional/test_session.py
@@ -468,9 +500,11 @@ tests/unit/test_compat.py
tests/unit/test_configloader.py
tests/unit/test_credentials.py
tests/unit/test_endpoint.py
+tests/unit/test_errorfactory.py
tests/unit/test_exceptions.py
tests/unit/test_handlers.py
tests/unit/test_hooks.py
+tests/unit/test_idempotency.py
tests/unit/test_loaders.py
tests/unit/test_model.py
tests/unit/test_paginate.py
@@ -649,6 +683,7 @@ tests/unit/cfg/aws_config_nested_bad
tests/unit/cfg/aws_config_nocreds
tests/unit/cfg/aws_config_other
tests/unit/cfg/aws_credentials
+tests/unit/cfg/aws_third_config
tests/unit/cfg/boto_config
tests/unit/cfg/boto_config_empty
tests/unit/cfg/foo_config
diff --git a/botocore.egg-info/requires.txt b/botocore.egg-info/requires.txt
index 5b7544d..20cc9ba 100644
--- a/botocore.egg-info/requires.txt
+++ b/botocore.egg-info/requires.txt
@@ -4,4 +4,4 @@ docutils>=0.10
[:python_version=="2.6"]
ordereddict==1.1
-simplejson==3.3.0
\ No newline at end of file
+simplejson==3.3.0
diff --git a/botocore/__init__.py b/botocore/__init__.py
index 05a10b3..9cff539 100644
--- a/botocore/__init__.py
+++ b/botocore/__init__.py
@@ -16,7 +16,7 @@ import os
import re
import logging
-__version__ = '1.4.70'
+__version__ = '1.5.7'
class NullHandler(logging.Handler):
@@ -46,6 +46,14 @@ _xform_cache = {
('CreateStorediSCSIVolume', '_'): 'create_stored_iscsi_volume',
('CreateStorediSCSIVolume', '-'): 'create-stored-iscsi-volume',
}
+# 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
+# common mis-translation can be fixed without having to call out each
+# individual case.
+_partial_renames = {
+ 'ipv-6': 'ipv6',
+ 'ipv_6': 'ipv6',
+}
ScalarTypes = ('string', 'integer', 'boolean', 'timestamp', 'float', 'double')
BOTOCORE_ROOT = os.path.dirname(os.path.abspath(__file__))
@@ -54,7 +62,8 @@ BOTOCORE_ROOT = os.path.dirname(os.path.abspath(__file__))
UNSIGNED = object()
-def xform_name(name, sep='_', _xform_cache=_xform_cache):
+def xform_name(name, sep='_', _xform_cache=_xform_cache,
+ partial_renames=_partial_renames):
"""Convert camel case to a "pythonic" name.
If the name contains the ``sep`` character, then it is
@@ -75,5 +84,10 @@ def xform_name(name, sep='_', _xform_cache=_xform_cache):
s1 = _first_cap_regex.sub(r'\1' + sep + r'\2', name)
s2 = _number_cap_regex.sub(r'\1' + sep + r'\2', s1)
transformed = _end_cap_regex.sub(r'\1' + sep + r'\2', s2).lower()
+
+ # Do partial renames
+ for old, new in partial_renames.items():
+ if old in transformed:
+ transformed = transformed.replace(old, new)
_xform_cache[key] = transformed
return _xform_cache[key]
diff --git a/botocore/args.py b/botocore/args.py
index da6383f..54f4290 100644
--- a/botocore/args.py
+++ b/botocore/args.py
@@ -30,11 +30,12 @@ logger = logging.getLogger(__name__)
class ClientArgsCreator(object):
def __init__(self, event_emitter, user_agent, response_parser_factory,
- loader):
+ loader, exceptions_factory):
self._event_emitter = event_emitter
self._user_agent = user_agent
self._response_parser_factory = response_parser_factory
self._loader = loader
+ self._exceptions_factory = exceptions_factory
def get_client_args(self, service_model, region_name, is_secure,
endpoint_url, verify, credentials, scoped_config,
@@ -81,7 +82,8 @@ class ClientArgsCreator(object):
'service_model': service_model,
'loader': self._loader,
'client_config': new_config,
- 'partition': partition
+ 'partition': partition,
+ 'exceptions_factory': self._exceptions_factory
}
def compute_client_args(self, service_model, client_config,
diff --git a/botocore/auth.py b/botocore/auth.py
index a1ecb24..f3fd117 100644
--- a/botocore/auth.py
+++ b/botocore/auth.py
@@ -22,6 +22,7 @@ from operator import itemgetter
import functools
import time
import calendar
+import json
from botocore.exceptions import NoCredentialsError
from botocore.utils import normalize_url_path, percent_encode_sequence
@@ -46,7 +47,8 @@ ISO8601 = '%Y-%m-%dT%H:%M:%SZ'
SIGV4_TIMESTAMP = '%Y%m%dT%H%M%SZ'
SIGNED_HEADERS_BLACKLIST = [
'expect',
- 'user-agent'
+ 'user-agent',
+ 'x-amzn-trace-id',
]
@@ -443,7 +445,8 @@ class SigV4QueryAuth(SigV4Auth):
# have repeated keys so we know we have single element lists which we
# can convert back to scalar values.
query_dict = dict(
- [(k, v[0]) for k, v in parse_qs(url_parts.query).items()])
+ [(k, v[0]) for k, v in
+ parse_qs(url_parts.query, keep_blank_values=True).items()])
# The spec is particular about this. It *has* to be:
# https://<endpoint>?<operation params>&<auth params>
# You can't mix the two types of params together, i.e just keep doing
@@ -452,11 +455,9 @@ class SigV4QueryAuth(SigV4Auth):
# percent_encode_sequence(new_query_params)
operation_params = ''
if request.data:
- # We also need to move the body params into the query string.
- # request.data will be populated, for example, with query services
- # which normally form encode the params into the body.
- # This means that request.data is a dict() of the operation params.
- query_dict.update(request.data)
+ # We also need to move the body params into the query string. To
+ # do this, we first have to convert it to a dict.
+ query_dict.update(self._get_body_as_dict(request))
request.data = ''
if query_dict:
operation_params = percent_encode_sequence(query_dict) + '&'
@@ -474,6 +475,18 @@ class SigV4QueryAuth(SigV4Auth):
new_url_parts = (p[0], p[1], p[2], new_query_string, p[4])
request.url = urlunsplit(new_url_parts)
+ def _get_body_as_dict(self, request):
+ # For query services, request.data is form-encoded and is already a
+ # dict, but for other services such as rest-json it could be a json
+ # string or bytes. In those cases we attempt to load the data as a
+ # dict.
+ data = request.data
+ if isinstance(data, six.binary_type):
+ data = json.loads(data.decode('utf-8'))
+ elif isinstance(data, six.string_types):
+ data = json.loads(data)
+ return data
+
def _inject_signature_to_request(self, request, signature):
# Rather than calculating an "Authorization" header, for the query
# param quth, we just append an 'X-Amz-Signature' param to the end
@@ -562,7 +575,8 @@ class HmacV1Auth(BaseSigner):
'response-cache-control', 'response-content-disposition',
'response-content-encoding', 'delete', 'lifecycle',
'tagging', 'restore', 'storageClass', 'notification',
- 'replication', 'requestPayment']
+ 'replication', 'requestPayment', 'analytics', 'metrics',
+ 'inventory']
def __init__(self, credentials, service_name=None, region_name=None):
self.credentials = credentials
diff --git a/botocore/awsrequest.py b/botocore/awsrequest.py
index a667bb5..acd5092 100644
--- a/botocore/awsrequest.py
+++ b/botocore/awsrequest.py
@@ -118,7 +118,7 @@ class AWSHTTPConnection(HTTPConnection):
if line in (b'\r\n', b'\n', b''):
break
- def _send_request(self, method, url, body, headers):
+ def _send_request(self, method, url, body, headers, *args, **kwargs):
self._response_received = False
if headers.get('Expect', b'') == b'100-continue':
self._expect_header_set = True
@@ -126,7 +126,7 @@ class AWSHTTPConnection(HTTPConnection):
self._expect_header_set = False
self.response_class = self._original_response_cls
rval = HTTPConnection._send_request(
- self, method, url, body, headers)
+ self, method, url, body, headers, *args, **kwargs)
self._expect_header_set = False
return rval
@@ -143,7 +143,7 @@ class AWSHTTPConnection(HTTPConnection):
msg = b"\r\n".join(bytes_buffer)
return msg
- def _send_output(self, message_body=None):
+ def _send_output(self, message_body=None, *args, **kwargs):
self._buffer.extend((b"", b""))
msg = self._convert_to_bytes(self._buffer)
del self._buffer[:]
@@ -449,5 +449,6 @@ class AWSPreparedRequest(models.PreparedRequest):
if 'Transfer-Encoding' in self.headers:
self.headers.pop('Transfer-Encoding')
+
HTTPSConnectionPool.ConnectionCls = AWSHTTPSConnection
HTTPConnectionPool.ConnectionCls = AWSHTTPConnection
diff --git a/botocore/client.py b/botocore/client.py
index 33de501..592ef17 100644
--- a/botocore/client.py
+++ b/botocore/client.py
@@ -45,7 +45,7 @@ class ClientCreator(object):
"""Creates client objects for a service."""
def __init__(self, loader, endpoint_resolver, user_agent, event_emitter,
retry_handler_factory, retry_config_translator,
- response_parser_factory=None):
+ response_parser_factory=None, exceptions_factory=None):
self._loader = loader
self._endpoint_resolver = endpoint_resolver
self._user_agent = user_agent
@@ -53,6 +53,7 @@ class ClientCreator(object):
self._retry_handler_factory = retry_handler_factory
self._retry_config_translator = retry_config_translator
self._response_parser_factory = response_parser_factory
+ self._exceptions_factory = exceptions_factory
def create_client(self, service_name, region_name, is_secure=True,
endpoint_url=None, verify=None,
@@ -216,7 +217,8 @@ class ClientCreator(object):
scoped_config, client_config, endpoint_bridge):
args_creator = ClientArgsCreator(
self._event_emitter, self._user_agent,
- self._response_parser_factory, self._loader)
+ self._response_parser_factory, self._loader,
+ self._exceptions_factory)
return args_creator.get_client_args(
service_model, region_name, is_secure, endpoint_url,
verify, credentials, scoped_config, client_config, endpoint_bridge)
@@ -479,7 +481,7 @@ class BaseClient(object):
def __init__(self, serializer, endpoint, response_parser,
event_emitter, request_signer, service_model, loader,
- client_config, partition):
+ client_config, partition, exceptions_factory):
self._serializer = serializer
self._endpoint = endpoint
self._response_parser = response_parser
@@ -490,6 +492,8 @@ class BaseClient(object):
self.meta = ClientMeta(event_emitter, self._client_config,
endpoint.host, service_model,
self._PY_TO_OP_NAME, partition)
+ self._exceptions_factory = exceptions_factory
+ self._exceptions = None
self._register_handlers()
def _register_handlers(self):
@@ -534,7 +538,9 @@ class BaseClient(object):
)
if http.status_code >= 300:
- raise ClientError(parsed_response, operation_name)
+ error_code = parsed_response.get("Error", {}).get("Code")
+ error_class = self.exceptions.from_code(error_code)
+ raise error_class(parsed_response, operation_name)
else:
return parsed_response
@@ -688,6 +694,16 @@ class BaseClient(object):
# which are the keys in the dict.
return [xform_name(name) for name in model.waiter_names]
+ @property
+ def exceptions(self):
+ if self._exceptions is None:
+ self._exceptions = self._load_exceptions()
+ return self._exceptions
+
+ def _load_exceptions(self):
+ return self._exceptions_factory.create_client_exceptions(
+ self._service_model)
+
class ClientMeta(object):
"""Holds additional client methods.
diff --git a/botocore/configloader.py b/botocore/configloader.py
index c9ba330..24d07b1 100644
--- a/botocore/configloader.py
+++ b/botocore/configloader.py
@@ -106,11 +106,30 @@ def load_config(config_filename):
return build_profile_map(parsed)
-def raw_config_parse(config_filename):
+def raw_config_parse(config_filename, parse_subsections=True):
"""Returns the parsed INI config contents.
Each section name is a top level key.
+ :param config_filename: The name of the INI file to parse
+
+ :param parse_subsections: If True, parse indented blocks as
+ subsections that represent their own configuration dictionary.
+ For example, if the config file had the contents::
+
+ s3 =
+ signature_version = s3v4
+ addressing_style = path
+
+ The resulting ``raw_config_parse`` would be::
+
+ {'s3': {'signature_version': 's3v4', 'addressing_style': 'path'}}
+
+ If False, do not try to parse subsections and return the indented
+ block as its literal value::
+
+ {'s3': '\nsignature_version = s3v4\naddressing_style = path'}
+
:returns: A dict with keys for each profile found in the config
file and the value of each key being a dict containing name
value pairs found in that profile.
@@ -134,7 +153,7 @@ def raw_config_parse(config_filename):
config[section] = {}
for option in cp.options(section):
config_value = cp.get(section, option)
- if config_value.startswith('\n'):
+ if parse_subsections and config_value.startswith('\n'):
# Then we need to parse the inner contents as
# hierarchical. We support a single level
# of nesting for now.
diff --git a/botocore/credentials.py b/botocore/credentials.py
index cf8788f..1572e70 100644
--- a/botocore/credentials.py
+++ b/botocore/credentials.py
@@ -100,7 +100,6 @@ def create_credential_resolver(session):
# EnvProvider does not return credentials, which is what we want
# in this scenario.
providers.remove(env_provider)
- else:
logger.debug('Skipping environment variable credential check'
' because profile name was explicitly set.')
@@ -245,6 +244,10 @@ class RefreshableCredentials(Credentials):
@property
def access_key(self):
+ """Warning: Using this property can lead to race conditions if you
+ access another property subsequently along the refresh boundary.
+ Please use get_frozen_credentials instead.
+ """
self._refresh()
return self._access_key
@@ -254,6 +257,10 @@ class RefreshableCredentials(Credentials):
@property
def secret_key(self):
+ """Warning: Using this property can lead to race conditions if you
+ access another property subsequently along the refresh boundary.
+ Please use get_frozen_credentials instead.
+ """
self._refresh()
return self._secret_key
@@ -263,6 +270,10 @@ class RefreshableCredentials(Credentials):
@property
def token(self):
+ """Warning: Using this property can lead to race conditions if you
+ access another property subsequently along the refresh boundary.
+ Please use get_frozen_credentials instead.
+ """
self._refresh()
return self._token
@@ -477,7 +488,7 @@ class InstanceMetadataProvider(CredentialProvider):
metadata = fetcher.retrieve_iam_role_credentials()
if not metadata:
return None
- logger.info('Found credentials from IAM Role: %s',
+ logger.debug('Found credentials from IAM Role: %s',
metadata['role_name'])
# We manually set the data here, since we already made the request &
# have it. When the expiry is hit, the credentials will auto-refresh
diff --git a/botocore/data/acm/2015-12-08/service-2.json b/botocore/data/acm/2015-12-08/service-2.json
index a43e411..c10cbce 100644
--- a/botocore/data/acm/2015-12-08/service-2.json
+++ b/botocore/data/acm/2015-12-08/service-2.json
@@ -8,7 +8,8 @@
"serviceAbbreviation":"ACM",
"serviceFullName":"AWS Certificate Manager",
"signatureVersion":"v4",
- "targetPrefix":"CertificateManager"
+ "targetPrefix":"CertificateManager",
+ "uid":"acm-2015-12-08"
},
"operations":{
"AddTagsToCertificate":{
@@ -52,7 +53,7 @@
{"shape":"ResourceNotFoundException"},
{"shape":"InvalidArnException"}
],
- "documentation":"<p>Returns a list of the fields contained in the specified ACM Certificate. For example, this action returns the certificate status, a flag that indicates whether the certificate is associated with any other AWS service, and the date at which the certificate request was created. You specify the ACM Certificate on input by its Amazon Resource Name (ARN).</p>"
+ "documentation":"<p>Returns detailed metadata about the specified ACM Certificate.</p>"
},
"GetCertificate":{
"name":"GetCertificate",
@@ -105,7 +106,7 @@
{"shape":"ResourceNotFoundException"},
{"shape":"InvalidArnException"}
],
- "documentation":"<p>Lists the tags that have been applied to the ACM Certificate. Use the certificate ARN to specify the certificate. To add a tag to an ACM Certificate, use the <a>AddTagsToCertificate</a> action. To delete a tag, use the <a>RemoveTagsFromCertificate</a> action.</p>"
+ "documentation":"<p>Lists the tags that have been applied to the ACM Certificate. Use the certificate's Amazon Resource Name (ARN) to specify the certificate. To add a tag to an ACM Certificate, use the <a>AddTagsToCertificate</a> action. To delete a tag, use the <a>RemoveTagsFromCertificate</a> action.</p>"
},
"RemoveTagsFromCertificate":{
"name":"RemoveTagsFromCertificate",
@@ -214,7 +215,7 @@
},
"DomainValidationOptions":{
"shape":"DomainValidationList",
- "documentation":"<p>Contains information about the email address or addresses used for domain validation. This field exists only when the certificate type is <code>AMAZON_ISSUED</code>.</p>"
+ "documentation":"<p>Contains information about the initial validation of each domain name that occurs as a result of the <a>RequestCertificate</a> request. This field exists only when the certificate type is <code>AMAZON_ISSUED</code>.</p>"
},
"Serial":{
"shape":"String",
@@ -279,9 +280,13 @@
"Type":{
"shape":"CertificateType",
"documentation":"<p>The source of the certificate. For certificates provided by ACM, this value is <code>AMAZON_ISSUED</code>. For certificates that you imported with <a>ImportCertificate</a>, this value is <code>IMPORTED</code>. ACM does not provide <a href=\"http://docs.aws.amazon.com/acm/latest/userguide/acm-renewal.html\">managed renewal</a> for imported certificates. For more information about the differences between certificates that you import and those that ACM provides [...]
+ },
+ "RenewalSummary":{
+ "shape":"RenewalSummary",
+ "documentation":"<p>Contains information about the status of ACM's <a href=\"http://docs.aws.amazon.com/acm/latest/userguide/acm-renewal.html\">managed renewal</a> for the certificate. This field exists only when the certificate type is <code>AMAZON_ISSUED</code>.</p>"
}
},
- "documentation":"<p>Contains detailed metadata about an ACM Certificate. This structure is returned in the response to a <a>DescribeCertificate</a> request.</p>"
+ "documentation":"<p>Contains metadata about an ACM certificate. This structure is returned in the response to a <a>DescribeCertificate</a> request.</p>"
},
"CertificateStatus":{
"type":"string",
@@ -340,7 +345,7 @@
"members":{
"CertificateArn":{
"shape":"Arn",
- "documentation":"<p>String that contains an ACM Certificate ARN. The ARN must be of the form:</p> <p> <code>arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012</code> </p> <p>For more information about ARNs, see <a href=\"http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">Amazon Resource Names (ARNs) and AWS Service Namespaces</a>.</p>"
+ "documentation":"<p>The Amazon Resource Name (ARN) of the ACM Certificate. The ARN must have the following form:</p> <p> <code>arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012</code> </p> <p>For more information about ARNs, see <a href=\"http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">Amazon Resource Names (ARNs) and AWS Service Namespaces</a>.</p>"
}
}
},
@@ -349,7 +354,7 @@
"members":{
"Certificate":{
"shape":"CertificateDetail",
- "documentation":"<p>Contains a <a>CertificateDetail</a> structure that lists the fields of an ACM Certificate.</p>"
+ "documentation":"<p>Metadata about an ACM certificate.</p>"
}
}
},
@@ -365,24 +370,36 @@
"min":1,
"pattern":"^(\\*\\.)?(((?!-)[A-Za-z0-9-]{0,62}[A-Za-z0-9])\\.)+((?!-)[A-Za-z0-9-]{1,62}[A-Za-z0-9])$"
},
+ "DomainStatus":{
+ "type":"string",
+ "enum":[
+ "PENDING_VALIDATION",
+ "SUCCESS",
+ "FAILED"
+ ]
+ },
"DomainValidation":{
"type":"structure",
"required":["DomainName"],
"members":{
"DomainName":{
"shape":"DomainNameString",
- "documentation":"<p>Fully Qualified Domain Name (FQDN) of the form <code>www.example.com or </code> <code>example.com</code>.</p>"
+ "documentation":"<p>A fully qualified domain name (FQDN) in the certificate. For example, <code>www.example.com</code> or <code>example.com</code>.</p>"
},
"ValidationEmails":{
"shape":"ValidationEmailList",
- "documentation":"<p>A list of contact address for the domain registrant.</p>"
+ "documentation":"<p>A list of email addresses that ACM used to send domain validation emails.</p>"
},
"ValidationDomain":{
"shape":"DomainNameString",
- "documentation":"<p>The base validation domain that acts as the suffix of the email addresses that are used to send the emails.</p>"
+ "documentation":"<p>The domain name that ACM used to send domain validation emails.</p>"
+ },
+ "ValidationStatus":{
+ "shape":"DomainStatus",
+ "documentation":"<p>The validation status of the domain name.</p>"
}
},
- "documentation":"<p>Structure that contains the domain name, the base validation domain to which validation email is sent, and the email addresses used to validate the domain identity.</p>"
+ "documentation":"<p>Contains information about the validation of each domain name in the certificate.</p>"
},
"DomainValidationList":{
"type":"list",
@@ -399,14 +416,14 @@
"members":{
"DomainName":{
"shape":"DomainNameString",
- "documentation":"<p>Fully Qualified Domain Name (FQDN) of the certificate being requested.</p>"
+ "documentation":"<p>A fully qualified domain name (FQDN) in the certificate request.</p>"
},
"ValidationDomain":{
"shape":"DomainNameString",
- "documentation":"<p>The domain to which validation email is sent. This is the base validation domain that will act as the suffix of the email addresses. This must be the same as the <code>DomainName</code> value or a superdomain of the <code>DomainName</code> value. For example, if you requested a certificate for <code>site.subdomain.example.com</code> and specify a <b>ValidationDomain</b> of <code>subdomain.example.com</code>, ACM sends email to the domain registrant, technica [...]
+ "documentation":"<p>The domain name that you want ACM to use to send you validation emails. This domain name is the suffix of the email addresses that you want ACM to use. This must be the same as the <code>DomainName</code> value or a superdomain of the <code>DomainName</code> value. For example, if you request a certificate for <code>testing.example.com</code>, you can specify <code>example.com</code> for this value. In that case, ACM sends domain validation emails to the fol [...]
}
},
- "documentation":"<p>This structure is used in the request object of the <a>RequestCertificate</a> action.</p>"
+ "documentation":"<p>Contains information about the domain names that you want ACM to use to send you emails to validate your ownership of the domain.</p>"
},
"DomainValidationOptionList":{
"type":"list",
@@ -575,7 +592,7 @@
"members":{
"CertificateArn":{
"shape":"Arn",
- "documentation":"<p>String that contains the ARN of the ACM Certificate for which you want to list the tags. This must be of the form:</p> <p> <code>arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012</code> </p> <p>For more information about ARNs, see <a href=\"http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">Amazon Resource Names (ARNs) and AWS Service Namespaces</a>.</p>"
+ "documentation":"<p>String that contains the ARN of the ACM Certificate for which you want to list the tags. This has the following form:</p> <p> <code>arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012</code> </p> <p>For more information about ARNs, see <a href=\"http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">Amazon Resource Names (ARNs) and AWS Service Namespaces</a>.</p>"
}
}
},
@@ -622,13 +639,40 @@
}
}
},
+ "RenewalStatus":{
+ "type":"string",
+ "enum":[
+ "PENDING_AUTO_RENEWAL",
+ "PENDING_VALIDATION",
+ "SUCCESS",
+ "FAILED"
+ ]
+ },
+ "RenewalSummary":{
+ "type":"structure",
+ "required":[
+ "RenewalStatus",
+ "DomainValidationOptions"
+ ],
+ "members":{
+ "RenewalStatus":{
+ "shape":"RenewalStatus",
+ "documentation":"<p>The status of ACM's <a href=\"http://docs.aws.amazon.com/acm/latest/userguide/acm-renewal.html\">managed renewal</a> of the certificate.</p>"
+ },
+ "DomainValidationOptions":{
+ "shape":"DomainValidationList",
+ "documentation":"<p>Contains information about the validation of each domain name in the certificate, as it pertains to ACM's <a href=\"http://docs.aws.amazon.com/acm/latest/userguide/acm-renewal.html\">managed renewal</a>. This is different from the initial validation that occurs as a result of the <a>RequestCertificate</a> request. This field exists only when the certificate type is <code>AMAZON_ISSUED</code>.</p>"
+ }
+ },
+ "documentation":"<p>Contains information about the status of ACM's <a href=\"http://docs.aws.amazon.com/acm/latest/userguide/acm-renewal.html\">managed renewal</a> for the certificate. This structure exists only when the certificate type is <code>AMAZON_ISSUED</code>.</p>"
+ },
"RequestCertificateRequest":{
"type":"structure",
"required":["DomainName"],
"members":{
"DomainName":{
"shape":"DomainNameString",
- "documentation":"<p>Fully qualified domain name (FQDN), such as www.example.com, of the site you want to secure with an ACM Certificate. Use an asterisk (*) to create a wildcard certificate that protects several sites in the same domain. For example, *.example.com protects www.example.com, site.example.com, and images.example.com.</p>"
+ "documentation":"<p>Fully qualified domain name (FQDN), such as www.example.com, of the site that you want to secure with an ACM Certificate. Use an asterisk (*) to create a wildcard certificate that protects several sites in the same domain. For example, *.example.com protects www.example.com, site.example.com, and images.example.com.</p>"
},
"SubjectAlternativeNames":{
"shape":"DomainList",
@@ -640,7 +684,7 @@
},
"DomainValidationOptions":{
"shape":"DomainValidationOptionList",
- "documentation":"<p>The base validation domain that will act as the suffix of the email addresses that are used to send the emails. This must be the same as the <code>Domain</code> value or a superdomain of the <code>Domain</code> value. For example, if you requested a certificate for <code>test.example.com</code> and specify <b>DomainValidationOptions</b> of <code>example.com</code>, ACM sends email to the domain registrant, technical contact, and administrative contact in WHO [...]
+ "documentation":"<p>The domain name that you want ACM to use to send you emails to validate your ownership of the domain.</p>"
}
}
},
@@ -675,7 +719,7 @@
},
"Domain":{
"shape":"DomainNameString",
- "documentation":"<p>The Fully Qualified Domain Name (FQDN) of the certificate that needs to be validated.</p>"
+ "documentation":"<p>The fully qualified domain name (FQDN) of the certificate that needs to be validated.</p>"
},
"ValidationDomain":{
"shape":"DomainNameString",
diff --git a/botocore/data/apigateway/2015-07-09/service-2.json b/botocore/data/apigateway/2015-07-09/service-2.json
index 8441676..43ce77e 100755
--- a/botocore/data/apigateway/2015-07-09/service-2.json
+++ b/botocore/data/apigateway/2015-07-09/service-2.json
@@ -5,7 +5,8 @@
"endpointPrefix":"apigateway",
"protocol":"rest-json",
"serviceFullName":"Amazon API Gateway",
- "signatureVersion":"v4"
+ "signatureVersion":"v4",
+ "uid":"apigateway-2015-07-09"
},
"operations":{
"CreateApiKey":{
@@ -83,6 +84,42 @@
],
"documentation":"<p>Creates a <a>Deployment</a> resource, which makes a specified <a>RestApi</a> callable over the internet.</p>"
},
+ "CreateDocumentationPart":{
+ "name":"CreateDocumentationPart",
+ "http":{
+ "method":"POST",
+ "requestUri":"/restapis/{restapi_id}/documentation/parts",
+ "responseCode":201
+ },
+ "input":{"shape":"CreateDocumentationPartRequest"},
... 94467 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