aws-sdk-core 2.6.1 → 2.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (242) hide show
  1. checksums.yaml +4 -4
  2. data/apis/acm/2015-12-08/api-2.json +93 -4
  3. data/apis/acm/2015-12-08/paginators-1.json +2 -2
  4. data/apis/apigateway/2015-07-09/api-2.json +640 -30
  5. data/apis/application-autoscaling/2016-02-06/api-2.json +5 -2
  6. data/apis/appstream/2016-12-01/api-2.json +820 -0
  7. data/apis/appstream/2016-12-01/examples-1.json +5 -0
  8. data/apis/appstream/2016-12-01/waiters-2.json +55 -0
  9. data/apis/autoscaling/2011-01-01/api-2.json +1 -0
  10. data/apis/autoscaling/2011-01-01/resources-1.json +12 -1
  11. data/apis/batch/2016-08-10/api-2.json +885 -0
  12. data/apis/batch/2016-08-10/examples-1.json +589 -0
  13. data/apis/budgets/2016-10-20/api-2.json +696 -0
  14. data/apis/budgets/2016-10-20/examples-1.json +5 -0
  15. data/apis/cloudformation/2010-05-15/api-2.json +138 -12
  16. data/apis/cloudformation/2010-05-15/examples-1.json +153 -0
  17. data/apis/cloudformation/2010-05-15/resources-1.json +10 -1
  18. data/apis/cloudformation/2010-05-15/waiters-2.json +18 -96
  19. data/apis/cloudfront/2016-01-28/api-2.json +1 -0
  20. data/apis/cloudfront/2016-08-01/api-2.json +1 -0
  21. data/apis/cloudfront/2016-08-20/api-2.json +1 -0
  22. data/apis/cloudfront/2016-09-07/api-2.json +1 -0
  23. data/apis/cloudfront/2016-09-29/api-2.json +2599 -0
  24. data/apis/cloudfront/2016-09-29/examples-1.json +5 -0
  25. data/apis/cloudfront/2016-09-29/paginators-1.json +32 -0
  26. data/apis/cloudfront/2016-09-29/waiters-2.json +47 -0
  27. data/apis/cloudfront/2016-11-25/api-2.json +2665 -0
  28. data/apis/cloudfront/2016-11-25/examples-1.json +5 -0
  29. data/apis/cloudfront/2016-11-25/paginators-1.json +32 -0
  30. data/apis/cloudfront/2016-11-25/waiters-2.json +47 -0
  31. data/apis/cloudhsm/2014-05-30/api-2.json +2 -1
  32. data/apis/cloudsearch/2013-01-01/api-2.json +2 -1
  33. data/apis/cloudsearchdomain/2013-01-01/api-2.json +2 -1
  34. data/apis/cloudtrail/2013-11-01/api-2.json +109 -3
  35. data/apis/cloudtrail/2013-11-01/paginators-1.json +6 -0
  36. data/apis/codebuild/2016-10-06/api-2.json +702 -0
  37. data/apis/codebuild/2016-10-06/examples-1.json +5 -0
  38. data/apis/codecommit/2015-04-13/api-2.json +2 -1
  39. data/apis/codedeploy/2014-10-06/api-2.json +138 -17
  40. data/apis/codepipeline/2015-07-09/api-2.json +3 -2
  41. data/apis/cognito-identity/2014-06-30/api-2.json +84 -5
  42. data/apis/cognito-idp/2016-04-18/api-2.json +472 -10
  43. data/apis/cognito-sync/2014-06-30/api-2.json +2 -1
  44. data/apis/config/2014-11-12/api-2.json +40 -9
  45. data/apis/config/2014-11-12/paginators-1.json +2 -2
  46. data/apis/cur/2017-01-06/api-2.json +226 -0
  47. data/apis/cur/2017-01-06/examples-1.json +5 -0
  48. data/apis/cur/2017-01-06/paginators-1.json +9 -0
  49. data/apis/datapipeline/2012-10-29/api-2.json +2 -1
  50. data/apis/devicefarm/2015-06-23/api-2.json +2 -1
  51. data/apis/devicefarm/2015-06-23/examples-1.json +1237 -0
  52. data/apis/directconnect/2012-10-25/api-2.json +257 -10
  53. data/apis/discovery/2015-11-01/api-2.json +316 -5
  54. data/apis/dms/2016-01-01/api-2.json +45 -9
  55. data/apis/ds/2015-04-16/api-2.json +144 -1
  56. data/apis/dynamodb/2011-12-05/api-2.json +802 -0
  57. data/apis/dynamodb/2011-12-05/examples-1.json +5 -0
  58. data/apis/dynamodb/2011-12-05/paginators-1.json +26 -0
  59. data/apis/dynamodb/2011-12-05/waiters-2.json +35 -0
  60. data/apis/dynamodb/2012-08-10/api-2.json +115 -1
  61. data/apis/dynamodb/2012-08-10/examples-1.json +623 -0
  62. data/apis/dynamodb/2012-08-10/paginators-1.json +4 -4
  63. data/apis/ec2/2015-10-01/api-2.json +1 -0
  64. data/apis/ec2/2016-04-01/api-2.json +1 -0
  65. data/apis/ec2/2016-09-15/api-2.json +14415 -0
  66. data/apis/ec2/2016-09-15/examples-1.json +3740 -0
  67. data/apis/ec2/2016-09-15/paginators-1.json +138 -0
  68. data/apis/ec2/2016-09-15/resources-1.json +2582 -0
  69. data/apis/ec2/2016-09-15/waiters-2.json +593 -0
  70. data/apis/ec2/2016-11-15/api-2.json +15037 -0
  71. data/apis/ec2/2016-11-15/examples-1.json +3740 -0
  72. data/apis/ec2/2016-11-15/paginators-1.json +138 -0
  73. data/apis/ec2/2016-11-15/resources-1.json +2582 -0
  74. data/apis/ec2/2016-11-15/waiters-2.json +593 -0
  75. data/apis/ecr/2015-09-21/api-2.json +88 -4
  76. data/apis/ecr/2015-09-21/paginators-1.json +12 -6
  77. data/apis/ecs/2014-11-13/api-2.json +183 -9
  78. data/apis/elasticache/2015-02-02/api-2.json +57 -9
  79. data/apis/elasticache/2015-02-02/examples-1.json +2963 -0
  80. data/apis/elasticbeanstalk/2010-12-01/api-2.json +155 -6
  81. data/apis/elasticfilesystem/2015-02-01/api-2.json +2 -1
  82. data/apis/elasticfilesystem/2015-02-01/examples-1.json +217 -0
  83. data/apis/elasticloadbalancing/2012-06-01/api-2.json +1 -0
  84. data/apis/elasticloadbalancingv2/2015-12-01/api-2.json +1 -0
  85. data/apis/elasticmapreduce/2009-03-31/api-2.json +449 -5
  86. data/apis/elastictranscoder/2012-09-25/api-2.json +44 -13
  87. data/apis/elastictranscoder/2012-09-25/examples-1.json +5 -0
  88. data/apis/email/2010-12-01/api-2.json +425 -4
  89. data/apis/es/2015-01-01/api-2.json +1 -0
  90. data/apis/events/2015-10-07/api-2.json +1 -0
  91. data/apis/firehose/2015-08-04/api-2.json +151 -4
  92. data/apis/firehose/2015-08-04/examples-1.json +5 -0
  93. data/apis/gamelift/2015-10-01/api-2.json +367 -787
  94. data/apis/gamelift/2015-10-01/examples-1.json +2 -2
  95. data/apis/glacier/2012-06-01/api-2.json +369 -779
  96. data/apis/glacier/2012-06-01/examples-1.json +806 -0
  97. data/apis/glacier/2012-06-01/paginators-1.json +5 -5
  98. data/apis/health/2016-08-04/api-2.json +547 -0
  99. data/apis/health/2016-08-04/examples-1.json +5 -0
  100. data/apis/health/2016-08-04/paginators-1.json +31 -0
  101. data/apis/iam/2010-05-08/api-2.json +209 -0
  102. data/apis/iam/2010-05-08/examples-1.json +1186 -0
  103. data/apis/importexport/2010-06-01/api-2.json +1 -0
  104. data/apis/inspector/2016-02-16/api-2.json +2 -1
  105. data/apis/inspector/2016-02-16/examples-1.json +1135 -0
  106. data/apis/iot/2015-05-28/api-2.json +16 -0
  107. data/apis/iot-data/2015-05-28/api-2.json +1 -0
  108. data/apis/kinesis/2013-12-02/api-2.json +80 -12
  109. data/apis/kinesisanalytics/2015-08-14/api-2.json +7 -2
  110. data/apis/kms/2014-11-01/api-2.json +4 -2
  111. data/apis/kms/2014-11-01/examples-1.json +810 -0
  112. data/apis/lambda/2014-11-11/api-2.json +1 -0
  113. data/apis/lambda/2015-03-31/api-2.json +162 -9
  114. data/apis/lambda/2015-03-31/examples-1.json +609 -0
  115. data/apis/lightsail/2016-11-28/api-2.json +2137 -0
  116. data/apis/lightsail/2016-11-28/examples-1.json +5 -0
  117. data/apis/logs/2014-03-28/api-2.json +113 -6
  118. data/apis/machinelearning/2014-12-12/api-2.json +1 -0
  119. data/apis/marketplacecommerceanalytics/2015-07-01/api-2.json +5 -2
  120. data/apis/meteringmarketplace/2016-01-14/api-2.json +136 -0
  121. data/apis/monitoring/2010-08-01/api-2.json +27 -6
  122. data/apis/opsworks/2013-02-18/api-2.json +1 -0
  123. data/apis/opsworkscm/2016-11-01/api-2.json +712 -0
  124. data/apis/opsworkscm/2016-11-01/examples-1.json +5 -0
  125. data/apis/pinpoint/2016-12-01/api-2.json +2753 -0
  126. data/apis/pinpoint/2016-12-01/examples-1.json +5 -0
  127. data/apis/polly/2016-06-10/api-2.json +504 -0
  128. data/apis/polly/2016-06-10/examples-1.json +171 -0
  129. data/apis/rds/2013-01-10/api-2.json +2902 -0
  130. data/apis/rds/2013-01-10/examples-1.json +5 -0
  131. data/apis/rds/2013-01-10/paginators-1.json +97 -0
  132. data/apis/rds/2013-02-12/api-2.json +3058 -0
  133. data/apis/rds/2013-02-12/examples-1.json +5 -0
  134. data/apis/rds/2013-02-12/paginators-1.json +110 -0
  135. data/apis/rds/2013-09-09/api-2.json +3159 -0
  136. data/apis/rds/2013-09-09/examples-1.json +5 -0
  137. data/apis/rds/2013-09-09/paginators-1.json +110 -0
  138. data/apis/rds/2013-09-09/waiters-2.json +97 -0
  139. data/apis/rds/2014-09-01/api-2.json +3272 -0
  140. data/apis/rds/2014-09-01/examples-1.json +5 -0
  141. data/apis/rds/2014-09-01/paginators-1.json +4 -0
  142. data/apis/rds/2014-10-31/api-2.json +144 -11
  143. data/apis/rds/2014-10-31/examples-1.json +332 -4
  144. data/apis/rds/2014-10-31/paginators-1.json +18 -18
  145. data/apis/rds/2014-10-31/resources-1.json +1 -1
  146. data/apis/redshift/2012-12-01/api-2.json +10 -3
  147. data/apis/rekognition/2016-06-27/api-2.json +836 -0
  148. data/apis/rekognition/2016-06-27/examples-1.json +651 -0
  149. data/apis/rekognition/2016-06-27/paginators-1.json +16 -0
  150. data/apis/route53/2013-04-01/api-2.json +186 -219
  151. data/apis/route53/2013-04-01/paginators-1.json +9 -9
  152. data/apis/route53domains/2014-05-15/api-2.json +1 -0
  153. data/apis/s3/2006-03-01/api-2.json +871 -20
  154. data/apis/sdb/2009-04-15/api-2.json +1 -0
  155. data/apis/servicecatalog/2015-12-10/api-2.json +1214 -29
  156. data/apis/shield/2016-06-02/api-2.json +494 -0
  157. data/apis/shield/2016-06-02/examples-1.json +5 -0
  158. data/apis/sms/2016-10-24/api-2.json +612 -0
  159. data/apis/sms/2016-10-24/examples-1.json +5 -0
  160. data/apis/sms/2016-10-24/paginators-1.json +28 -0
  161. data/apis/snowball/2016-06-30/api-2.json +283 -11
  162. data/apis/snowball/2016-06-30/examples-1.json +437 -0
  163. data/apis/sns/2010-03-31/api-2.json +1 -0
  164. data/apis/sqs/2012-11-05/api-2.json +74 -38
  165. data/apis/sqs/2012-11-05/examples-1.json +0 -39
  166. data/apis/sqs/2012-11-05/resources-1.json +232 -0
  167. data/apis/ssm/2014-11-06/api-2.json +4036 -536
  168. data/apis/states/2016-11-23/api-2.json +1021 -0
  169. data/apis/states/2016-11-23/examples-1.json +5 -0
  170. data/apis/states/2016-11-23/paginators-1.json +28 -0
  171. data/apis/storagegateway/2013-06-30/api-2.json +269 -6
  172. data/apis/storagegateway/2013-06-30/examples-1.json +1376 -0
  173. data/apis/streams.dynamodb/2012-08-10/api-2.json +2 -1
  174. data/apis/streams.dynamodb/2012-08-10/examples-1.json +207 -0
  175. data/apis/sts/2011-06-15/api-2.json +1 -0
  176. data/apis/sts/2011-06-15/examples-1.json +201 -0
  177. data/apis/support/2013-04-15/api-2.json +1 -0
  178. data/apis/swf/2012-01-25/api-2.json +1 -0
  179. data/apis/waf/2015-08-24/api-2.json +12 -11
  180. data/apis/waf/2015-08-24/examples-1.json +1012 -0
  181. data/apis/waf-regional/2016-11-28/api-2.json +2090 -0
  182. data/apis/waf-regional/2016-11-28/examples-1.json +1017 -0
  183. data/apis/workspaces/2015-04-08/api-2.json +1 -0
  184. data/apis/xray/2016-04-12/api-2.json +491 -0
  185. data/apis/xray/2016-04-12/examples-1.json +5 -0
  186. data/endpoints.json +781 -392
  187. data/lib/aws-sdk-core/api/customizations.rb +16 -0
  188. data/lib/aws-sdk-core/api/docs/builder.rb +2 -1
  189. data/lib/aws-sdk-core/api/docs/client_type_documenter.rb +9 -0
  190. data/lib/aws-sdk-core/api/docs/crosslink.rb +43 -0
  191. data/lib/aws-sdk-core/api/docs/operation_documenter.rb +11 -2
  192. data/lib/aws-sdk-core/appstream.rb +6 -0
  193. data/lib/aws-sdk-core/batch.rb +5 -0
  194. data/lib/aws-sdk-core/budgets.rb +5 -0
  195. data/lib/aws-sdk-core/client.rb +1 -0
  196. data/lib/aws-sdk-core/client_waiters.rb +5 -5
  197. data/lib/aws-sdk-core/cloudfront/url_signer.rb +1 -1
  198. data/lib/aws-sdk-core/cloudfront.rb +5 -5
  199. data/lib/aws-sdk-core/codebuild.rb +5 -0
  200. data/lib/aws-sdk-core/costandusagereportservice.rb +6 -0
  201. data/lib/aws-sdk-core/credential_provider_chain.rb +3 -3
  202. data/lib/aws-sdk-core/cur.rb +6 -0
  203. data/lib/aws-sdk-core/ec2.rb +6 -6
  204. data/lib/aws-sdk-core/elastictranscoder.rb +1 -0
  205. data/lib/aws-sdk-core/firehose.rb +1 -0
  206. data/lib/aws-sdk-core/glacier.rb +1 -0
  207. data/lib/aws-sdk-core/health.rb +6 -0
  208. data/lib/aws-sdk-core/instance_profile_credentials.rb +1 -1
  209. data/lib/aws-sdk-core/lightsail.rb +5 -0
  210. data/lib/aws-sdk-core/opsworkscm.rb +5 -0
  211. data/lib/aws-sdk-core/partitions/region.rb +0 -12
  212. data/lib/aws-sdk-core/partitions/service.rb +1 -11
  213. data/lib/aws-sdk-core/pinpoint.rb +5 -0
  214. data/lib/aws-sdk-core/plugins/ec2_copy_encrypted_snapshot.rb +24 -55
  215. data/lib/aws-sdk-core/plugins/idempotency_token.rb +37 -0
  216. data/lib/aws-sdk-core/plugins/rds_cross_region_copying.rb +64 -0
  217. data/lib/aws-sdk-core/plugins/request_signer.rb +4 -0
  218. data/lib/aws-sdk-core/plugins/retry_errors.rb +1 -0
  219. data/lib/aws-sdk-core/plugins/s3_accelerate.rb +18 -1
  220. data/lib/aws-sdk-core/plugins/s3_bucket_dns.rb +1 -1
  221. data/lib/aws-sdk-core/plugins/s3_dualstack.rb +6 -9
  222. data/lib/aws-sdk-core/plugins/sqs_md5s.rb +1 -1
  223. data/lib/aws-sdk-core/polly/presigner.rb +70 -0
  224. data/lib/aws-sdk-core/polly.rb +13 -0
  225. data/lib/aws-sdk-core/rekognition.rb +6 -0
  226. data/lib/aws-sdk-core/rest/request/endpoint.rb +11 -66
  227. data/lib/aws-sdk-core/rest/request/querystring_builder.rb +90 -0
  228. data/lib/aws-sdk-core/shield.rb +5 -0
  229. data/lib/aws-sdk-core/signers/v4.rb +2 -1
  230. data/lib/aws-sdk-core/sms.rb +6 -0
  231. data/lib/aws-sdk-core/sqs.rb +1 -0
  232. data/lib/aws-sdk-core/states.rb +6 -0
  233. data/lib/aws-sdk-core/version.rb +1 -1
  234. data/lib/aws-sdk-core/wafregional.rb +5 -0
  235. data/lib/aws-sdk-core/xray.rb +5 -0
  236. data/lib/aws-sdk-core.rb +20 -0
  237. data/lib/seahorse/client/net_http/connection_pool.rb +11 -7
  238. data/lib/seahorse/client/net_http/handler.rb +5 -2
  239. data/lib/seahorse/client/plugin_list.rb +3 -1
  240. data/lib/seahorse/client/response.rb +9 -20
  241. data/service-models.json +66 -2
  242. metadata +115 -2
@@ -8,6 +8,7 @@ module Aws
8
8
  class S3Dualstack < Seahorse::Client::Plugin
9
9
 
10
10
  option(:use_dualstack_endpoint, false)
11
+ option(:use_accelerate_endpoint, false)
11
12
 
12
13
  def add_handlers(handlers, config)
13
14
  handlers.add(OptionHandler, step: :initialize)
@@ -27,12 +28,12 @@ module Aws
27
28
  # @api private
28
29
  class DualstackHandler < Seahorse::Client::Handler
29
30
  def call(context)
30
- use_dualstack_endpoint(context) if context[:use_dualstack_endpoint]
31
+ apply_dualstack_endpoint(context) if use_dualstack_endpoint?(context)
31
32
  @handler.call(context)
32
33
  end
33
34
 
34
35
  private
35
- def use_dualstack_endpoint(context)
36
+ def apply_dualstack_endpoint(context)
36
37
  bucket_name = context.params[:bucket]
37
38
  region = context.config.region
38
39
  force_path_style = context.config.force_path_style
@@ -55,16 +56,12 @@ module Aws
55
56
  bucket_name && S3BucketDns.dns_compatible?(bucket_name, ssl) &&
56
57
  !context.config.force_path_style
57
58
  end
58
- end
59
59
 
60
- def after_initialize(client)
61
- cfg = client.config
62
- if cfg.use_accelerate_endpoint && cfg.use_dualstack_endpoint
63
- msg = "Use of the :use_accelerate_endpoint and :use_dualstack_endpoint"\
64
- " options together is not currently supported."
65
- raise ArgumentError, msg
60
+ def use_dualstack_endpoint?(context)
61
+ context[:use_dualstack_endpoint] && !context[:use_accelerate_endpoint]
66
62
  end
67
63
  end
64
+
68
65
  end
69
66
  end
70
67
  end
@@ -77,7 +77,7 @@ module Aws
77
77
  returned_md5 = response.md5_of_message_attributes
78
78
  if returned_md5 != calculated_md5
79
79
  error_message = mismatch_error_message(
80
- 'message atributes',
80
+ 'message attributes',
81
81
  calculated_md5,
82
82
  returned_md5,
83
83
  response)
@@ -0,0 +1,70 @@
1
+ require 'aws-sigv4'
2
+
3
+ module Aws
4
+ module Polly
5
+
6
+ # Allows you to create presigned URLs for `synthesize_speech`
7
+ #
8
+ # Example Use:
9
+ #
10
+ # signer = Aws::Polly::Presigner.new
11
+ # url = signer.synthesize_speech_presigned_url(
12
+ # output_format: 'mp3',
13
+ # text: 'Hello World',
14
+ # voice_id: 'Ewa'
15
+ # )
16
+ #
17
+ class Presigner
18
+
19
+ # @option options [required, Credentials] :credentials
20
+ # You need provide an object that responds to `#credentials`
21
+ # returning another object that responds to `#access_key_id`, `#secret_access_key`,
22
+ # and `#session_token`.
23
+ #
24
+ # For example, you could provide an instance of following classes:
25
+ # * `Aws::Credentials`
26
+ # * `Aws::SharedCredentials`
27
+ # * `Aws::InstanceProfileCredentials`
28
+ # * `Aws::AssumeRoleCredentials`
29
+ # * `Aws::ECSCredentials`
30
+ #
31
+ # @option options [required, string] :region
32
+ # The region name, e.g. 'us-west-2'
33
+ def initialize(options = {})
34
+ @credentials = options.fetch(:credentials)
35
+ @region = options.fetch(:region)
36
+ end
37
+
38
+ # @param [Hash] params parameter inputs for synthesize_speech operation
39
+ def synthesize_speech_presigned_url(params = {})
40
+ input_shape = Client.api.operation(:synthesize_speech).input.shape
41
+ sign_but_dont_send(input_shape, params)
42
+ end
43
+
44
+ private
45
+
46
+ def sign_but_dont_send(input_shape, params)
47
+ parts = []
48
+ input_shape.members.each do |name, ref|
49
+ parts << [ ref, params[name] ] unless params[name].nil?
50
+ end
51
+ query = Aws::Rest::Request::QuerystringBuilder.new.build(parts)
52
+
53
+ signer = Aws::Sigv4::Signer.new(
54
+ service: 'polly',
55
+ region: @region,
56
+ credentials_provider: @credentials
57
+ )
58
+ url = Aws::EndpointProvider.resolve(signer.region, 'polly')
59
+ url += "/v1/speech?#{query}"
60
+ pre_signed_url = signer.presign_url(
61
+ http_method: 'GET',
62
+ url: url,
63
+ body: '',
64
+ expires_in: 900
65
+ ).to_s
66
+ end
67
+ end
68
+
69
+ end
70
+ end
@@ -0,0 +1,13 @@
1
+ Aws.add_service(:Polly, {
2
+ api: "#{Aws::API_DIR}/polly/2016-06-10/api-2.json",
3
+ docs: "#{Aws::API_DIR}/polly/2016-06-10/docs-2.json",
4
+ examples: "#{Aws::API_DIR}/polly/2016-06-10/examples-1.json",
5
+ })
6
+
7
+ module Aws
8
+ module Polly
9
+
10
+ autoload :Presigner, 'aws-sdk-core/polly/presigner'
11
+
12
+ end
13
+ end
@@ -0,0 +1,6 @@
1
+ Aws.add_service(:Rekognition, {
2
+ api: "#{Aws::API_DIR}/rekognition/2016-06-27/api-2.json",
3
+ docs: "#{Aws::API_DIR}/rekognition/2016-06-27/docs-2.json",
4
+ examples: "#{Aws::API_DIR}/rekognition/2016-06-27/examples-1.json",
5
+ paginators: "#{Aws::API_DIR}/rekognition/2016-06-27/paginators-1.json",
6
+ })
@@ -5,15 +5,13 @@ module Aws
5
5
  module Request
6
6
  class Endpoint
7
7
 
8
- include Seahorse::Model::Shapes
9
-
10
8
  # @param [Seahorse::Model::Shapes::ShapeRef] rules
11
9
  # @param [String] request_uri_pattern
12
10
  def initialize(rules, request_uri_pattern)
13
11
  @rules = rules
14
12
  request_uri_pattern.split('?').tap do |path_part, query_part|
15
13
  @path_pattern = path_part
16
- @query_pattern = query_part
14
+ @query_prefix = query_part
17
15
  end
18
16
  end
19
17
 
@@ -31,7 +29,7 @@ module Aws
31
29
 
32
30
  def apply_path_params(uri, params)
33
31
  path = uri.path.sub(/\/$/, '') + @path_pattern.split('?')[0]
34
- uri.path = path.gsub(/{\w+\+?}/) do |placeholder|
32
+ uri.path = path.gsub(/{.+?}/) do |placeholder|
35
33
  param_value_for_placeholder(placeholder, params)
36
34
  end
37
35
  end
@@ -50,70 +48,17 @@ module Aws
50
48
  end
51
49
 
52
50
  def apply_querystring_params(uri, params)
53
- parts = []
54
- parts << @query_pattern if @query_pattern
55
- @rules.shape.members.each do |member_name, member|
56
- if member.location == 'querystring' && !params[member_name].nil?
57
- case member.shape
58
-
59
- # supported scalar types
60
- when StringShape, BooleanShape, FloatShape, IntegerShape, StringShape
61
- param_name = member.location_name
62
- param_value = params[member_name]
63
- parts << "#{param_name}=#{escape(param_value.to_s)}"
64
-
65
- # map of strings or map of string-list
66
- when MapShape
67
- if StringShape === member.shape.value.shape
68
- parts += query_map_of_string(params[member_name])
69
- elsif ListShape === member.shape.value.shape
70
- parts += query_map_of_string_list(params[member_name])
71
- else
72
- msg = "only map of string and string list supported"
73
- raise NotImplementedError, msg
74
- end
75
-
76
- when ListShape
77
- if StringShape === member.shape.member.shape
78
- parts += list_of_strings(member.location_name, params[member_name])
79
- else
80
- msg = "Only list of strings supported, got "
81
- msg << member.shape.member.shape.class.name
82
- raise NotImplementedError, msg
83
- end
84
-
85
- # unsupported querystring shape
86
- else
87
- raise NotImplementedError
88
- end
89
-
90
- end
91
- end
92
- uri.query = parts.empty? ? nil : parts.join('&')
93
- end
94
-
95
- def query_map_of_string(hash)
96
- list = []
97
- hash.each_pair do |key, value|
98
- list << "#{escape(key)}=#{escape(value)}"
99
- end
100
- list
101
- end
102
-
103
- def query_map_of_string_list(hash)
104
- list = []
105
- hash.each_pair do |key, values|
106
- values.each do |value|
107
- list << "#{escape(key)}=#{escape(value)}"
51
+ # collect params that are supposed to be part of the query string
52
+ parts = @rules.shape.members.inject([]) do |parts, (member_name, member_ref)|
53
+ if member_ref.location == 'querystring' && !params[member_name].nil?
54
+ parts << [member_ref, params[member_name]]
108
55
  end
56
+ parts
109
57
  end
110
- list
111
- end
112
-
113
- def list_of_strings(name, values)
114
- values.map do |value|
115
- "#{name}=#{escape(value)}"
116
- end
58
+ querystring = QuerystringBuilder.new.build(parts)
59
+ querystring = [@query_prefix, querystring == '' ? nil : querystring].compact.join('&')
60
+ querystring = nil if querystring == ''
61
+ uri.query = querystring
117
62
  end
118
63
 
119
64
  def escape(string)
@@ -0,0 +1,90 @@
1
+ module Aws
2
+ module Rest
3
+ module Request
4
+ class QuerystringBuilder
5
+
6
+ include Seahorse::Model::Shapes
7
+
8
+ # Provide shape references and param values:
9
+ #
10
+ # [
11
+ # [shape_ref1, 123],
12
+ # [shape_ref2, "text"]
13
+ # ]
14
+ #
15
+ # Returns a querystring:
16
+ #
17
+ # "Count=123&Words=text"
18
+ #
19
+ # @param [Array<Array<Seahorse::Model::ShapeRef, Object>>] params An array of
20
+ # model shape references and request parameter value pairs.
21
+ #
22
+ # @return [String] Returns a built querystring
23
+ def build(params)
24
+ params.map do |(shape_ref, param_value)|
25
+ build_part(shape_ref, param_value)
26
+ end.join('&')
27
+ end
28
+
29
+ private
30
+
31
+ def build_part(shape_ref, param_value)
32
+ case shape_ref.shape
33
+ # supported scalar types
34
+ when StringShape, BooleanShape, FloatShape, IntegerShape, StringShape
35
+ param_name = shape_ref.location_name
36
+ "#{param_name}=#{escape(param_value.to_s)}"
37
+ when MapShape
38
+ if StringShape === shape_ref.shape.value.shape
39
+ query_map_of_string(param_value)
40
+ elsif ListShape === shape_ref.shape.value.shape
41
+ query_map_of_string_list(param_value)
42
+ else
43
+ msg = "only map of string and string list supported"
44
+ raise NotImplementedError, msg
45
+ end
46
+ when ListShape
47
+ if StringShape === shape_ref.shape.member.shape
48
+ list_of_strings(shape_ref.location_name, param_value)
49
+ else
50
+ msg = "Only list of strings supported, got "
51
+ msg << shape_ref.shape.member.shape.class.name
52
+ raise NotImplementedError, msg
53
+ end
54
+ else
55
+ raise NotImplementedError
56
+ end
57
+ end
58
+
59
+ def query_map_of_string(hash)
60
+ list = []
61
+ hash.each_pair do |key, value|
62
+ list << "#{escape(key)}=#{escape(value)}"
63
+ end
64
+ list
65
+ end
66
+
67
+ def query_map_of_string_list(hash)
68
+ list = []
69
+ hash.each_pair do |key, values|
70
+ values.each do |value|
71
+ list << "#{escape(key)}=#{escape(value)}"
72
+ end
73
+ end
74
+ list
75
+ end
76
+
77
+ def list_of_strings(name, values)
78
+ values.map do |value|
79
+ "#{name}=#{escape(value)}"
80
+ end
81
+ end
82
+
83
+ def escape(string)
84
+ Seahorse::Util.uri_escape(string)
85
+ end
86
+
87
+ end
88
+ end
89
+ end
90
+ end
@@ -0,0 +1,5 @@
1
+ Aws.add_service(:Shield, {
2
+ api: "#{Aws::API_DIR}/shield/2016-06-02/api-2.json",
3
+ docs: "#{Aws::API_DIR}/shield/2016-06-02/docs-2.json",
4
+ examples: "#{Aws::API_DIR}/shield/2016-06-02/examples-1.json",
5
+ })
@@ -22,7 +22,8 @@ module Aws
22
22
  'proxy-authorization',
23
23
  'from',
24
24
  'referer',
25
- 'user-agent'
25
+ 'user-agent',
26
+ 'x-amzn-trace-id'
26
27
  ]
27
28
 
28
29
  def self.sign(context)
@@ -0,0 +1,6 @@
1
+ Aws.add_service(:SMS, {
2
+ api: "#{Aws::API_DIR}/sms/2016-10-24/api-2.json",
3
+ docs: "#{Aws::API_DIR}/sms/2016-10-24/docs-2.json",
4
+ examples: "#{Aws::API_DIR}/sms/2016-10-24/examples-1.json",
5
+ paginators: "#{Aws::API_DIR}/sms/2016-10-24/paginators-1.json",
6
+ })
@@ -3,4 +3,5 @@ Aws.add_service(:SQS, {
3
3
  docs: "#{Aws::API_DIR}/sqs/2012-11-05/docs-2.json",
4
4
  examples: "#{Aws::API_DIR}/sqs/2012-11-05/examples-1.json",
5
5
  paginators: "#{Aws::API_DIR}/sqs/2012-11-05/paginators-1.json",
6
+ resources: "#{Aws::API_DIR}/sqs/2012-11-05/resources-1.json",
6
7
  })
@@ -0,0 +1,6 @@
1
+ Aws.add_service(:States, {
2
+ api: "#{Aws::API_DIR}/states/2016-11-23/api-2.json",
3
+ docs: "#{Aws::API_DIR}/states/2016-11-23/docs-2.json",
4
+ examples: "#{Aws::API_DIR}/states/2016-11-23/examples-1.json",
5
+ paginators: "#{Aws::API_DIR}/states/2016-11-23/paginators-1.json",
6
+ })
@@ -1,3 +1,3 @@
1
1
  module Aws
2
- VERSION = '2.6.1'
2
+ VERSION = '2.7.0'
3
3
  end
@@ -0,0 +1,5 @@
1
+ Aws.add_service(:WAFRegional, {
2
+ api: "#{Aws::API_DIR}/waf-regional/2016-11-28/api-2.json",
3
+ docs: "#{Aws::API_DIR}/waf-regional/2016-11-28/docs-2.json",
4
+ examples: "#{Aws::API_DIR}/waf-regional/2016-11-28/examples-1.json",
5
+ })
@@ -0,0 +1,5 @@
1
+ Aws.add_service(:XRay, {
2
+ api: "#{Aws::API_DIR}/xray/2016-04-12/api-2.json",
3
+ docs: "#{Aws::API_DIR}/xray/2016-04-12/docs-2.json",
4
+ examples: "#{Aws::API_DIR}/xray/2016-04-12/examples-1.json",
5
+ })
data/lib/aws-sdk-core.rb CHANGED
@@ -23,7 +23,11 @@ module Aws
23
23
  APIGateway
24
24
  ApplicationAutoScaling
25
25
  ApplicationDiscoveryService
26
+ AppStream
26
27
  AutoScaling
28
+ Batch
29
+ Budgets
30
+ CodeBuild
27
31
  CloudFormation
28
32
  CloudFront
29
33
  CloudHSM
@@ -40,6 +44,7 @@ module Aws
40
44
  CognitoIdentityProvider
41
45
  CognitoSync
42
46
  ConfigService
47
+ CostandUsageReportService
43
48
  DatabaseMigrationService
44
49
  DataPipeline
45
50
  DeviceFarm
@@ -61,6 +66,7 @@ module Aws
61
66
  Firehose
62
67
  GameLift
63
68
  Glacier
69
+ Health
64
70
  IAM
65
71
  ImportExport
66
72
  Inspector
@@ -71,28 +77,38 @@ module Aws
71
77
  KMS
72
78
  Lambda
73
79
  LambdaPreview
80
+ Lightsail
74
81
  MachineLearning
75
82
  MarketplaceCommerceAnalytics
76
83
  MarketplaceMetering
77
84
  OpsWorks
85
+ OpsWorksCM
86
+ Pinpoint
87
+ Polly
78
88
  RDS
89
+ Rekognition
79
90
  Redshift
80
91
  Route53
81
92
  Route53Domains
82
93
  S3
83
94
  ServiceCatalog
84
95
  SES
96
+ Shield
85
97
  SimpleDB
98
+ SMS
86
99
  SNS
87
100
  Snowball
88
101
  SQS
89
102
  SSM
103
+ States
90
104
  StorageGateway
91
105
  STS
92
106
  Support
93
107
  SWF
94
108
  WAF
109
+ WAFRegional
95
110
  WorkSpaces
111
+ XRay
96
112
  )
97
113
  # end services
98
114
 
@@ -143,6 +159,7 @@ module Aws
143
159
  module Docs
144
160
  autoload :Builder, 'aws-sdk-core/api/docs/builder'
145
161
  autoload :ClientTypeDocumenter, 'aws-sdk-core/api/docs/client_type_documenter'
162
+ autoload :Crosslink, 'aws-sdk-core/api/docs/crosslink'
146
163
  autoload :DocstringProvider, 'aws-sdk-core/api/docs/docstring_provider'
147
164
  autoload :NullDocstringProvider, 'aws-sdk-core/api/docs/docstring_provider'
148
165
  autoload :OperationDocumenter, 'aws-sdk-core/api/docs/operation_documenter'
@@ -173,10 +190,12 @@ module Aws
173
190
  autoload :GlacierChecksums, 'aws-sdk-core/plugins/glacier_checksums'
174
191
  autoload :GlobalConfiguration, 'aws-sdk-core/plugins/global_configuration'
175
192
  autoload :HelpfulSocketErrors, 'aws-sdk-core/plugins/helpful_socket_errors'
193
+ autoload :IdempotencyToken, 'aws-sdk-core/plugins/idempotency_token'
176
194
  autoload :Logging, 'aws-sdk-core/plugins/logging'
177
195
  autoload :MachineLearningPredictEndpoint, 'aws-sdk-core/plugins/machine_learning_predict_endpoint'
178
196
  autoload :ParamConverter, 'aws-sdk-core/plugins/param_converter'
179
197
  autoload :ParamValidator, 'aws-sdk-core/plugins/param_validator'
198
+ autoload :RDSCrossRegionCopying, 'aws-sdk-core/plugins/rds_cross_region_copying'
180
199
  autoload :RegionalEndpoint, 'aws-sdk-core/plugins/regional_endpoint'
181
200
  autoload :ResponsePaging, 'aws-sdk-core/plugins/response_paging'
182
201
  autoload :RequestSigner, 'aws-sdk-core/plugins/request_signer'
@@ -228,6 +247,7 @@ module Aws
228
247
  autoload :Builder, 'aws-sdk-core/rest/request/builder'
229
248
  autoload :Endpoint, 'aws-sdk-core/rest/request/endpoint'
230
249
  autoload :Headers, 'aws-sdk-core/rest/request/headers'
250
+ autoload :QuerystringBuilder, 'aws-sdk-core/rest/request/querystring_builder'
231
251
  end
232
252
  module Response
233
253
  autoload :Body, 'aws-sdk-core/rest/response/body'
@@ -36,10 +36,7 @@ module Seahorse
36
36
  instance_variable_set("@#{opt_name}", value)
37
37
  end
38
38
  @pool_mutex = Mutex.new
39
- @pool = Hash.new do |pool, endpoint|
40
- pool[endpoint] = []
41
- pool[endpoint]
42
- end
39
+ @pool = {}
43
40
  end
44
41
 
45
42
  OPTIONS.keys.each do |attr_name|
@@ -86,7 +83,9 @@ module Seahorse
86
83
  # attempt to recycle an already open session
87
84
  @pool_mutex.synchronize do
88
85
  _clean
89
- session = @pool[endpoint].shift
86
+ if @pool.key?(endpoint)
87
+ session = @pool[endpoint].shift
88
+ end
90
89
  end
91
90
 
92
91
  begin
@@ -100,7 +99,10 @@ module Seahorse
100
99
  raise
101
100
  else
102
101
  # No error raised? Good, check the session into the pool.
103
- @pool_mutex.synchronize { @pool[endpoint] << session }
102
+ @pool_mutex.synchronize do
103
+ @pool[endpoint] = [] unless @pool.key?(endpoint)
104
+ @pool[endpoint] << session
105
+ end
104
106
  end
105
107
  nil
106
108
  end
@@ -214,7 +216,9 @@ module Seahorse
214
216
  # @return [Array<ConnectionPool>] Returns a list of of the
215
217
  # constructed connection pools.
216
218
  def pools
217
- @pools.values
219
+ @pools_mutex.synchronize do
220
+ @pools.values
221
+ end
218
222
  end
219
223
 
220
224
  private
@@ -30,7 +30,10 @@ module Seahorse
30
30
  end
31
31
 
32
32
  # @api private
33
- DNS_ERROR_MESSAGE = 'getaddrinfo: nodename nor servname provided, or not known'
33
+ DNS_ERROR_MESSAGES = [
34
+ 'getaddrinfo: nodename nor servname provided, or not known', # MacOS
35
+ 'getaddrinfo: Name or service not known' # GNU
36
+ ]
34
37
 
35
38
  # Raised when a {Handler} cannot construct a `Net::HTTP::Request`
36
39
  # from the given http verb.
@@ -52,7 +55,7 @@ module Seahorse
52
55
  private
53
56
 
54
57
  def error_message(req, error)
55
- if error.is_a?(SocketError) && error.message == DNS_ERROR_MESSAGE
58
+ if error.is_a?(SocketError) && DNS_ERROR_MESSAGES.include?(error.message)
56
59
  host = req.endpoint.host
57
60
  "unable to connect to `#{host}`; SocketError: #{error.message}"
58
61
  else
@@ -87,7 +87,9 @@ module Seahorse
87
87
  @canonical_name = plugin.name || plugin.object_id
88
88
  @plugin = plugin
89
89
  when Symbol, String
90
- @canonical_name, @gem_name = plugin.to_s.split('.').reverse
90
+ words = plugin.to_s.split('.')
91
+ @canonical_name = words.pop
92
+ @gem_name = words.empty? ? nil : words.join('.')
91
93
  @plugin = nil
92
94
  else
93
95
  @canonical_name = plugin.object_id
@@ -1,6 +1,8 @@
1
+ require 'delegate'
2
+
1
3
  module Seahorse
2
4
  module Client
3
- class Response
5
+ class Response < Delegator
4
6
 
5
7
  # @option options [RequestContext] :context (nil)
6
8
  # @option options [Integer] :status_code (nil)
@@ -63,29 +65,16 @@ module Seahorse
63
65
  self
64
66
  end
65
67
 
68
+ # Necessary to define as a subclass of Delegator
66
69
  # @api private
67
- def inspect
68
- @data.inspect
69
- end
70
-
71
- # @api private
72
- def pretty_print(q)
73
- @data.pretty_print(q)
70
+ def __getobj__
71
+ @data
74
72
  end
75
73
 
74
+ # Necessary to define as a subclass of Delegator
76
75
  # @api private
77
- def respond_to?(*args)
78
- @data.respond_to?(args.first, false) || super
79
- end
80
-
81
- private
82
-
83
- def method_missing(*args, &block)
84
- if @data.respond_to?(args.first, false)
85
- @data.send(*args, &block)
86
- else
87
- super
88
- end
76
+ def __setobj__(obj)
77
+ @data = obj
89
78
  end
90
79
 
91
80
  end