aws-sdk-core 2.3.23 → 3.89.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (496) hide show
  1. checksums.yaml +5 -5
  2. data/VERSION +1 -0
  3. data/ca-bundle.crt +3615 -3541
  4. data/lib/aws-sdk-core.rb +106 -404
  5. data/lib/aws-sdk-core/arn.rb +77 -0
  6. data/lib/aws-sdk-core/arn_parser.rb +38 -0
  7. data/lib/aws-sdk-core/assume_role_web_identity_credentials.rb +101 -0
  8. data/lib/aws-sdk-core/async_client_stubs.rb +80 -0
  9. data/lib/aws-sdk-core/binary.rb +6 -0
  10. data/lib/aws-sdk-core/binary/decode_handler.rb +56 -0
  11. data/lib/aws-sdk-core/binary/encode_handler.rb +32 -0
  12. data/lib/aws-sdk-core/binary/event_builder.rb +122 -0
  13. data/lib/aws-sdk-core/binary/event_parser.rb +134 -0
  14. data/lib/aws-sdk-core/binary/event_stream_decoder.rb +62 -0
  15. data/lib/aws-sdk-core/binary/event_stream_encoder.rb +53 -0
  16. data/lib/aws-sdk-core/client_side_monitoring/publisher.rb +49 -0
  17. data/lib/aws-sdk-core/client_side_monitoring/request_metrics.rb +197 -0
  18. data/lib/aws-sdk-core/client_stubs.rb +73 -10
  19. data/lib/aws-sdk-core/credential_provider.rb +0 -29
  20. data/lib/aws-sdk-core/credential_provider_chain.rb +56 -6
  21. data/lib/aws-sdk-core/deprecations.rb +16 -10
  22. data/lib/aws-sdk-core/ecs_credentials.rb +14 -10
  23. data/lib/aws-sdk-core/endpoint_cache.rb +191 -0
  24. data/lib/aws-sdk-core/errors.rb +221 -11
  25. data/lib/aws-sdk-core/event_emitter.rb +62 -0
  26. data/lib/aws-sdk-core/ini_parser.rb +41 -0
  27. data/lib/aws-sdk-core/instance_profile_credentials.rb +133 -42
  28. data/lib/aws-sdk-core/json.rb +9 -10
  29. data/lib/aws-sdk-core/json/builder.rb +4 -2
  30. data/lib/aws-sdk-core/json/error_handler.rb +19 -2
  31. data/lib/aws-sdk-core/json/handler.rb +22 -3
  32. data/lib/aws-sdk-core/json/parser.rb +1 -1
  33. data/lib/aws-sdk-core/log/formatter.rb +7 -1
  34. data/lib/aws-sdk-core/log/param_filter.rb +4 -3
  35. data/lib/aws-sdk-core/pageable_response.rb +1 -0
  36. data/lib/aws-sdk-core/pager.rb +30 -25
  37. data/lib/aws-sdk-core/param_converter.rb +3 -3
  38. data/lib/aws-sdk-core/param_validator.rb +60 -26
  39. data/lib/aws-sdk-core/plugins/api_key.rb +52 -0
  40. data/lib/aws-sdk-core/plugins/apig_authorizer_token.rb +30 -0
  41. data/lib/aws-sdk-core/plugins/apig_credentials_configuration.rb +34 -0
  42. data/lib/aws-sdk-core/plugins/apig_user_agent.rb +37 -0
  43. data/lib/aws-sdk-core/plugins/client_metrics_plugin.rb +280 -0
  44. data/lib/aws-sdk-core/plugins/client_metrics_send_plugin.rb +84 -0
  45. data/lib/aws-sdk-core/plugins/credentials_configuration.rb +62 -0
  46. data/lib/aws-sdk-core/plugins/endpoint_discovery.rb +160 -0
  47. data/lib/aws-sdk-core/plugins/endpoint_pattern.rb +63 -0
  48. data/lib/aws-sdk-core/plugins/event_stream_configuration.rb +30 -0
  49. data/lib/aws-sdk-core/plugins/global_configuration.rb +19 -10
  50. data/lib/aws-sdk-core/plugins/helpful_socket_errors.rb +41 -0
  51. data/lib/aws-sdk-core/plugins/idempotency_token.rb +36 -0
  52. data/lib/aws-sdk-core/plugins/invocation_id.rb +33 -0
  53. data/lib/aws-sdk-core/plugins/jsonvalue_converter.rb +29 -0
  54. data/lib/aws-sdk-core/plugins/logging.rb +18 -18
  55. data/lib/aws-sdk-core/plugins/param_converter.rb +9 -5
  56. data/lib/aws-sdk-core/plugins/param_validator.rb +8 -5
  57. data/lib/aws-sdk-core/plugins/protocols/api_gateway.rb +10 -0
  58. data/lib/aws-sdk-core/plugins/protocols/ec2.rb +2 -1
  59. data/lib/aws-sdk-core/plugins/protocols/json_rpc.rb +13 -12
  60. data/lib/aws-sdk-core/plugins/protocols/query.rb +2 -2
  61. data/lib/aws-sdk-core/plugins/regional_endpoint.rb +48 -19
  62. data/lib/aws-sdk-core/plugins/response_paging.rb +5 -18
  63. data/lib/aws-sdk-core/plugins/retry_errors.rb +102 -24
  64. data/lib/aws-sdk-core/plugins/signature_v2.rb +51 -0
  65. data/lib/aws-sdk-core/plugins/signature_v4.rb +141 -0
  66. data/lib/aws-sdk-core/plugins/stub_responses.rb +35 -18
  67. data/lib/aws-sdk-core/plugins/transfer_encoding.rb +53 -0
  68. data/lib/aws-sdk-core/plugins/user_agent.rb +23 -10
  69. data/lib/aws-sdk-core/process_credentials.rb +80 -0
  70. data/lib/aws-sdk-core/query.rb +5 -0
  71. data/lib/aws-sdk-core/query/ec2_param_builder.rb +9 -3
  72. data/lib/aws-sdk-core/query/handler.rb +20 -16
  73. data/lib/aws-sdk-core/query/param_builder.rb +10 -4
  74. data/lib/aws-sdk-core/refreshing_credentials.rb +1 -1
  75. data/lib/aws-sdk-core/resources/collection.rb +121 -0
  76. data/lib/aws-sdk-core/rest.rb +10 -0
  77. data/lib/aws-sdk-core/rest/handler.rb +1 -0
  78. data/lib/aws-sdk-core/rest/request/builder.rb +2 -1
  79. data/lib/aws-sdk-core/rest/request/endpoint.rb +11 -66
  80. data/lib/aws-sdk-core/rest/request/headers.rb +20 -1
  81. data/lib/aws-sdk-core/rest/request/querystring_builder.rb +103 -0
  82. data/lib/aws-sdk-core/rest/response/body.rb +14 -1
  83. data/lib/aws-sdk-core/rest/response/headers.rb +9 -0
  84. data/lib/aws-sdk-core/rest/response/parser.rb +18 -14
  85. data/lib/aws-sdk-core/shared_config.rb +451 -0
  86. data/lib/aws-sdk-core/shared_credentials.rb +16 -53
  87. data/lib/aws-sdk-core/structure.rb +22 -13
  88. data/lib/aws-sdk-core/stubbing/data_applicator.rb +1 -1
  89. data/lib/aws-sdk-core/stubbing/empty_stub.rb +10 -3
  90. data/lib/aws-sdk-core/stubbing/protocols/api_gateway.rb +8 -0
  91. data/lib/aws-sdk-core/stubbing/protocols/ec2.rb +1 -1
  92. data/lib/aws-sdk-core/stubbing/protocols/rest.rb +99 -1
  93. data/lib/aws-sdk-core/stubbing/protocols/rest_json.rb +5 -1
  94. data/lib/aws-sdk-core/stubbing/protocols/rest_xml.rb +9 -5
  95. data/lib/aws-sdk-core/stubbing/stub_data.rb +16 -3
  96. data/lib/aws-sdk-core/util.rb +66 -0
  97. data/lib/aws-sdk-core/waiters.rb +3 -0
  98. data/lib/aws-sdk-core/waiters/poller.rb +5 -7
  99. data/lib/aws-sdk-core/waiters/waiter.rb +3 -2
  100. data/lib/aws-sdk-core/xml.rb +9 -0
  101. data/lib/aws-sdk-core/xml/builder.rb +11 -5
  102. data/lib/aws-sdk-core/xml/error_handler.rb +27 -5
  103. data/lib/aws-sdk-core/xml/parser.rb +1 -11
  104. data/lib/aws-sdk-core/xml/parser/engines/ox.rb +5 -1
  105. data/lib/aws-sdk-core/xml/parser/frame.rb +6 -6
  106. data/lib/aws-sdk-sts.rb +45 -0
  107. data/lib/aws-sdk-sts/client.rb +2156 -0
  108. data/lib/aws-sdk-sts/client_api.rb +336 -0
  109. data/lib/aws-sdk-sts/customizations.rb +2 -0
  110. data/lib/aws-sdk-sts/errors.rb +142 -0
  111. data/lib/aws-sdk-sts/plugins/sts_regional_endpoints.rb +32 -0
  112. data/lib/aws-sdk-sts/presigner.rb +67 -0
  113. data/lib/aws-sdk-sts/resource.rb +23 -0
  114. data/lib/aws-sdk-sts/types.rb +1504 -0
  115. data/lib/seahorse.rb +60 -60
  116. data/lib/seahorse/client/async_base.rb +50 -0
  117. data/lib/seahorse/client/async_response.rb +62 -0
  118. data/lib/seahorse/client/base.rb +5 -9
  119. data/lib/seahorse/client/configuration.rb +10 -2
  120. data/lib/seahorse/client/events.rb +1 -1
  121. data/lib/seahorse/client/h2/connection.rb +246 -0
  122. data/lib/seahorse/client/h2/handler.rb +151 -0
  123. data/lib/seahorse/client/handler_list_entry.rb +2 -2
  124. data/lib/seahorse/client/http/async_response.rb +42 -0
  125. data/lib/seahorse/client/http/response.rb +13 -8
  126. data/lib/seahorse/client/logging/formatter.rb +7 -1
  127. data/lib/seahorse/client/logging/handler.rb +2 -0
  128. data/lib/seahorse/client/net_http/connection_pool.rb +46 -28
  129. data/lib/seahorse/client/net_http/handler.rb +17 -3
  130. data/lib/seahorse/client/net_http/patches.rb +9 -1
  131. data/lib/seahorse/client/networking_error.rb +28 -0
  132. data/lib/seahorse/client/plugin.rb +67 -6
  133. data/lib/seahorse/client/plugin_list.rb +3 -1
  134. data/lib/seahorse/client/plugins/content_length.rb +7 -2
  135. data/lib/seahorse/client/plugins/endpoint.rb +14 -10
  136. data/lib/seahorse/client/plugins/h2.rb +64 -0
  137. data/lib/seahorse/client/plugins/logging.rb +17 -19
  138. data/lib/seahorse/client/plugins/net_http.rb +23 -15
  139. data/lib/seahorse/client/plugins/raise_response_errors.rb +4 -4
  140. data/lib/seahorse/client/plugins/response_target.rb +10 -1
  141. data/lib/seahorse/client/request_context.rb +5 -0
  142. data/lib/seahorse/client/response.rb +9 -20
  143. data/lib/seahorse/model/api.rb +37 -0
  144. data/lib/seahorse/model/authorizer.rb +21 -0
  145. data/lib/seahorse/model/operation.rb +20 -0
  146. data/lib/seahorse/model/shapes.rb +44 -2
  147. data/lib/seahorse/util.rb +1 -21
  148. metadata +127 -360
  149. data/apis/acm/2015-12-08/api-2.json +0 -495
  150. data/apis/acm/2015-12-08/examples-1.json +0 -5
  151. data/apis/acm/2015-12-08/paginators-1.json +0 -10
  152. data/apis/apigateway/2015-07-09/api-2.json +0 -3347
  153. data/apis/apigateway/2015-07-09/examples-1.json +0 -5
  154. data/apis/apigateway/2015-07-09/paginators-1.json +0 -52
  155. data/apis/application-autoscaling/2016-02-06/api-2.json +0 -502
  156. data/apis/application-autoscaling/2016-02-06/examples-1.json +0 -5
  157. data/apis/application-autoscaling/2016-02-06/paginators-1.json +0 -22
  158. data/apis/autoscaling/2011-01-01/api-2.json +0 -2038
  159. data/apis/autoscaling/2011-01-01/examples-1.json +0 -5
  160. data/apis/autoscaling/2011-01-01/paginators-1.json +0 -52
  161. data/apis/autoscaling/2011-01-01/resources-1.json +0 -1613
  162. data/apis/autoscaling/2011-01-01/waiters-2.json +0 -62
  163. data/apis/cloudformation/2010-05-15/api-2.json +0 -1299
  164. data/apis/cloudformation/2010-05-15/examples-1.json +0 -5
  165. data/apis/cloudformation/2010-05-15/paginators-1.json +0 -27
  166. data/apis/cloudformation/2010-05-15/resources-1.json +0 -202
  167. data/apis/cloudformation/2010-05-15/waiters-2.json +0 -235
  168. data/apis/cloudfront/2016-01-28/api-2.json +0 -2218
  169. data/apis/cloudfront/2016-01-28/examples-1.json +0 -5
  170. data/apis/cloudfront/2016-01-28/paginators-1.json +0 -32
  171. data/apis/cloudfront/2016-01-28/waiters-2.json +0 -47
  172. data/apis/cloudhsm/2014-05-30/api-2.json +0 -877
  173. data/apis/cloudhsm/2014-05-30/examples-1.json +0 -5
  174. data/apis/cloudsearch/2013-01-01/api-2.json +0 -2001
  175. data/apis/cloudsearch/2013-01-01/paginators-1.json +0 -20
  176. data/apis/cloudsearchdomain/2013-01-01/api-2.json +0 -373
  177. data/apis/cloudsearchdomain/2013-01-01/examples-1.json +0 -5
  178. data/apis/cloudtrail/2013-11-01/api-2.json +0 -801
  179. data/apis/cloudtrail/2013-11-01/examples-1.json +0 -5
  180. data/apis/cloudtrail/2013-11-01/paginators-1.json +0 -7
  181. data/apis/codecommit/2015-04-13/api-2.json +0 -916
  182. data/apis/codecommit/2015-04-13/examples-1.json +0 -5
  183. data/apis/codecommit/2015-04-13/paginators-1.json +0 -14
  184. data/apis/codedeploy/2014-10-06/api-2.json +0 -1954
  185. data/apis/codedeploy/2014-10-06/examples-1.json +0 -5
  186. data/apis/codedeploy/2014-10-06/paginators-1.json +0 -34
  187. data/apis/codepipeline/2015-07-09/api-2.json +0 -1633
  188. data/apis/codepipeline/2015-07-09/examples-1.json +0 -902
  189. data/apis/cognito-identity/2014-06-30/api-2.json +0 -859
  190. data/apis/cognito-identity/2014-06-30/examples-1.json +0 -5
  191. data/apis/cognito-idp/2016-04-18/api-2.json +0 -1657
  192. data/apis/cognito-idp/2016-04-18/examples-1.json +0 -5
  193. data/apis/cognito-sync/2014-06-30/api-2.json +0 -1874
  194. data/apis/config/2014-11-12/api-2.json +0 -1303
  195. data/apis/config/2014-11-12/examples-1.json +0 -5
  196. data/apis/config/2014-11-12/paginators-1.json +0 -10
  197. data/apis/datapipeline/2012-10-29/api-2.json +0 -1167
  198. data/apis/datapipeline/2012-10-29/paginators-1.json +0 -26
  199. data/apis/devicefarm/2015-06-23/api-2.json +0 -1819
  200. data/apis/devicefarm/2015-06-23/examples-1.json +0 -5
  201. data/apis/devicefarm/2015-06-23/paginators-1.json +0 -74
  202. data/apis/directconnect/2012-10-25/api-2.json +0 -793
  203. data/apis/directconnect/2012-10-25/examples-1.json +0 -5
  204. data/apis/directconnect/2012-10-25/paginators-1.json +0 -22
  205. data/apis/discovery/2015-11-01/api-2.json +0 -556
  206. data/apis/discovery/2015-11-01/examples-1.json +0 -5
  207. data/apis/dms/2016-01-01/api-2.json +0 -1469
  208. data/apis/dms/2016-01-01/examples-1.json +0 -5
  209. data/apis/ds/2015-04-16/api-2.json +0 -1674
  210. data/apis/ds/2015-04-16/examples-1.json +0 -5
  211. data/apis/dynamodb/2012-08-10/api-2.json +0 -1200
  212. data/apis/dynamodb/2012-08-10/examples-1.json +0 -5
  213. data/apis/dynamodb/2012-08-10/paginators-1.json +0 -26
  214. data/apis/dynamodb/2012-08-10/resources-1.json +0 -136
  215. data/apis/dynamodb/2012-08-10/waiters-2.json +0 -35
  216. data/apis/ec2/2015-10-01/api-2.json +0 -13759
  217. data/apis/ec2/2015-10-01/examples-1.json +0 -5
  218. data/apis/ec2/2015-10-01/paginators-1.json +0 -138
  219. data/apis/ec2/2015-10-01/resources-1.json +0 -2582
  220. data/apis/ec2/2015-10-01/waiters-2.json +0 -593
  221. data/apis/ec2/2016-04-01/api-2.json +0 -13842
  222. data/apis/ec2/2016-04-01/examples-1.json +0 -5
  223. data/apis/ec2/2016-04-01/paginators-1.json +0 -138
  224. data/apis/ec2/2016-04-01/resources-1.json +0 -2582
  225. data/apis/ec2/2016-04-01/waiters-2.json +0 -593
  226. data/apis/ecr/2015-09-21/api-2.json +0 -849
  227. data/apis/ecr/2015-09-21/examples-1.json +0 -5
  228. data/apis/ecs/2014-11-13/api-2.json +0 -1396
  229. data/apis/ecs/2014-11-13/examples-1.json +0 -5
  230. data/apis/ecs/2014-11-13/paginators-1.json +0 -40
  231. data/apis/ecs/2014-11-13/waiters-2.json +0 -93
  232. data/apis/elasticache/2015-02-02/api-2.json +0 -2426
  233. data/apis/elasticache/2015-02-02/examples-1.json +0 -5
  234. data/apis/elasticache/2015-02-02/paginators-1.json +0 -76
  235. data/apis/elasticache/2015-02-02/waiters-2.json +0 -143
  236. data/apis/elasticbeanstalk/2010-12-01/api-2.json +0 -1894
  237. data/apis/elasticbeanstalk/2010-12-01/examples-1.json +0 -1109
  238. data/apis/elasticbeanstalk/2010-12-01/paginators-1.json +0 -25
  239. data/apis/elasticfilesystem/2015-02-01/api-2.json +0 -713
  240. data/apis/elasticfilesystem/2015-02-01/examples-1.json +0 -5
  241. data/apis/elasticloadbalancing/2012-06-01/api-2.json +0 -2145
  242. data/apis/elasticloadbalancing/2012-06-01/paginators-1.json +0 -18
  243. data/apis/elasticloadbalancing/2012-06-01/waiters-2.json +0 -49
  244. data/apis/elasticmapreduce/2009-03-31/api-2.json +0 -1341
  245. data/apis/elasticmapreduce/2009-03-31/examples-1.json +0 -5
  246. data/apis/elasticmapreduce/2009-03-31/paginators-1.json +0 -32
  247. data/apis/elasticmapreduce/2009-03-31/waiters-2.json +0 -67
  248. data/apis/elastictranscoder/2012-09-25/api-2.json +0 -1807
  249. data/apis/elastictranscoder/2012-09-25/paginators-1.json +0 -24
  250. data/apis/elastictranscoder/2012-09-25/waiters-2.json +0 -30
  251. data/apis/email/2010-12-01/api-2.json +0 -1791
  252. data/apis/email/2010-12-01/examples-1.json +0 -5
  253. data/apis/email/2010-12-01/paginators-1.json +0 -13
  254. data/apis/email/2010-12-01/waiters-2.json +0 -18
  255. data/apis/es/2015-01-01/api-2.json +0 -764
  256. data/apis/events/2015-10-07/api-2.json +0 -643
  257. data/apis/events/2015-10-07/examples-1.json +0 -5
  258. data/apis/firehose/2015-08-04/api-2.json +0 -719
  259. data/apis/gamelift/2015-10-01/api-2.json +0 -2307
  260. data/apis/gamelift/2015-10-01/examples-1.json +0 -5
  261. data/apis/glacier/2012-06-01/api-2.json +0 -2144
  262. data/apis/glacier/2012-06-01/paginators-1.json +0 -28
  263. data/apis/glacier/2012-06-01/resources-1.json +0 -563
  264. data/apis/glacier/2012-06-01/waiters-2.json +0 -39
  265. data/apis/iam/2010-05-08/api-2.json +0 -4514
  266. data/apis/iam/2010-05-08/examples-1.json +0 -5
  267. data/apis/iam/2010-05-08/paginators-1.json +0 -198
  268. data/apis/iam/2010-05-08/resources-1.json +0 -1740
  269. data/apis/iam/2010-05-08/waiters-2.json +0 -39
  270. data/apis/importexport/2010-06-01/api-2.json +0 -666
  271. data/apis/importexport/2010-06-01/paginators-1.json +0 -11
  272. data/apis/inspector/2016-02-16/api-2.json +0 -1964
  273. data/apis/inspector/2016-02-16/examples-1.json +0 -5
  274. data/apis/iot-data/2015-05-28/api-2.json +0 -263
  275. data/apis/iot/2015-05-28/api-2.json +0 -3800
  276. data/apis/iot/2015-05-28/examples-1.json +0 -5
  277. data/apis/kinesis/2013-12-02/api-2.json +0 -822
  278. data/apis/kinesis/2013-12-02/examples-1.json +0 -5
  279. data/apis/kinesis/2013-12-02/paginators-1.json +0 -18
  280. data/apis/kinesis/2013-12-02/waiters-2.json +0 -18
  281. data/apis/kms/2014-11-01/api-2.json +0 -1209
  282. data/apis/kms/2014-11-01/examples-1.json +0 -5
  283. data/apis/kms/2014-11-01/paginators-1.json +0 -32
  284. data/apis/lambda/2014-11-11/api-2.json +0 -667
  285. data/apis/lambda/2014-11-11/paginators-1.json +0 -16
  286. data/apis/lambda/2015-03-31/api-2.json +0 -1342
  287. data/apis/lambda/2015-03-31/examples-1.json +0 -5
  288. data/apis/lambda/2015-03-31/paginators-1.json +0 -16
  289. data/apis/logs/2014-03-28/api-2.json +0 -1138
  290. data/apis/logs/2014-03-28/examples-1.json +0 -5
  291. data/apis/logs/2014-03-28/paginators-1.json +0 -49
  292. data/apis/machinelearning/2014-12-12/api-2.json +0 -1947
  293. data/apis/machinelearning/2014-12-12/paginators-1.json +0 -28
  294. data/apis/machinelearning/2014-12-12/waiters-2.json +0 -81
  295. data/apis/marketplacecommerceanalytics/2015-07-01/api-2.json +0 -120
  296. data/apis/marketplacecommerceanalytics/2015-07-01/examples-1.json +0 -5
  297. data/apis/meteringmarketplace/2016-01-14/api-2.json +0 -127
  298. data/apis/meteringmarketplace/2016-01-14/examples-1.json +0 -5
  299. data/apis/monitoring/2010-08-01/api-2.json +0 -790
  300. data/apis/monitoring/2010-08-01/examples-1.json +0 -5
  301. data/apis/monitoring/2010-08-01/paginators-1.json +0 -24
  302. data/apis/monitoring/2010-08-01/resources-1.json +0 -346
  303. data/apis/monitoring/2010-08-01/waiters-2.json +0 -18
  304. data/apis/opsworks/2013-02-18/api-2.json +0 -2606
  305. data/apis/opsworks/2013-02-18/examples-1.json +0 -5
  306. data/apis/opsworks/2013-02-18/paginators-1.json +0 -55
  307. data/apis/opsworks/2013-02-18/resources-1.json +0 -173
  308. data/apis/opsworks/2013-02-18/waiters-2.json +0 -295
  309. data/apis/rds/2014-10-31/api-2.json +0 -4757
  310. data/apis/rds/2014-10-31/examples-1.json +0 -5
  311. data/apis/rds/2014-10-31/paginators-1.json +0 -110
  312. data/apis/rds/2014-10-31/resources-1.json +0 -3272
  313. data/apis/rds/2014-10-31/waiters-2.json +0 -102
  314. data/apis/redshift/2012-12-01/api-2.json +0 -3768
  315. data/apis/redshift/2012-12-01/examples-1.json +0 -5
  316. data/apis/redshift/2012-12-01/paginators-1.json +0 -94
  317. data/apis/redshift/2012-12-01/waiters-2.json +0 -97
  318. data/apis/route53/2013-04-01/api-2.json +0 -3245
  319. data/apis/route53/2013-04-01/examples-1.json +0 -5
  320. data/apis/route53/2013-04-01/paginators-1.json +0 -33
  321. data/apis/route53/2013-04-01/waiters-2.json +0 -18
  322. data/apis/route53domains/2014-05-15/api-2.json +0 -1197
  323. data/apis/route53domains/2014-05-15/paginators-1.json +0 -17
  324. data/apis/s3/2006-03-01/api-2.json +0 -4517
  325. data/apis/s3/2006-03-01/examples-1.json +0 -5
  326. data/apis/s3/2006-03-01/paginators-1.json +0 -66
  327. data/apis/s3/2006-03-01/resources-1.json +0 -1176
  328. data/apis/s3/2006-03-01/waiters-2.json +0 -73
  329. data/apis/sdb/2009-04-15/api-2.json +0 -954
  330. data/apis/sdb/2009-04-15/paginators-1.json +0 -15
  331. data/apis/servicecatalog/2015-12-10/api-2.json +0 -749
  332. data/apis/servicecatalog/2015-12-10/examples-1.json +0 -5
  333. data/apis/sns/2010-03-31/api-2.json +0 -1139
  334. data/apis/sns/2010-03-31/paginators-1.json +0 -29
  335. data/apis/sns/2010-03-31/resources-1.json +0 -327
  336. data/apis/sqs/2012-11-05/api-2.json +0 -950
  337. data/apis/sqs/2012-11-05/examples-1.json +0 -44
  338. data/apis/sqs/2012-11-05/paginators-1.json +0 -7
  339. data/apis/ssm/2014-11-06/api-2.json +0 -1742
  340. data/apis/ssm/2014-11-06/examples-1.json +0 -5
  341. data/apis/ssm/2014-11-06/paginators-1.json +0 -34
  342. data/apis/storagegateway/2013-06-30/api-2.json +0 -2275
  343. data/apis/storagegateway/2013-06-30/examples-1.json +0 -5
  344. data/apis/storagegateway/2013-06-30/paginators-1.json +0 -52
  345. data/apis/streams.dynamodb/2012-08-10/api-2.json +0 -397
  346. data/apis/streams.dynamodb/2012-08-10/examples-1.json +0 -5
  347. data/apis/sts/2011-06-15/api-2.json +0 -521
  348. data/apis/sts/2011-06-15/examples-1.json +0 -5
  349. data/apis/support/2013-04-15/api-2.json +0 -869
  350. data/apis/support/2013-04-15/paginators-1.json +0 -25
  351. data/apis/swf/2012-01-25/api-2.json +0 -2838
  352. data/apis/swf/2012-01-25/paginators-1.json +0 -46
  353. data/apis/waf/2015-08-24/api-2.json +0 -1959
  354. data/apis/waf/2015-08-24/examples-1.json +0 -5
  355. data/apis/workspaces/2015-04-08/api-2.json +0 -632
  356. data/apis/workspaces/2015-04-08/examples-1.json +0 -5
  357. data/apis/workspaces/2015-04-08/paginators-1.json +0 -20
  358. data/bin/aws.rb +0 -180
  359. data/endpoints.json +0 -1460
  360. data/lib/aws-sdk-core/acm.rb +0 -6
  361. data/lib/aws-sdk-core/api/builder.rb +0 -106
  362. data/lib/aws-sdk-core/api/customizations.rb +0 -217
  363. data/lib/aws-sdk-core/api/docs/builder.rb +0 -220
  364. data/lib/aws-sdk-core/api/docs/client_type_documenter.rb +0 -109
  365. data/lib/aws-sdk-core/api/docs/docstring_provider.rb +0 -75
  366. data/lib/aws-sdk-core/api/docs/operation_documenter.rb +0 -138
  367. data/lib/aws-sdk-core/api/docs/param_formatter.rb +0 -163
  368. data/lib/aws-sdk-core/api/docs/request_syntax_example.rb +0 -22
  369. data/lib/aws-sdk-core/api/docs/response_structure_example.rb +0 -91
  370. data/lib/aws-sdk-core/api/docs/shared_example.rb +0 -100
  371. data/lib/aws-sdk-core/api/docs/utils.rb +0 -133
  372. data/lib/aws-sdk-core/api/shape_map.rb +0 -142
  373. data/lib/aws-sdk-core/apigateway.rb +0 -6
  374. data/lib/aws-sdk-core/applicationautoscaling.rb +0 -6
  375. data/lib/aws-sdk-core/applicationdiscoveryservice.rb +0 -5
  376. data/lib/aws-sdk-core/autoscaling.rb +0 -8
  377. data/lib/aws-sdk-core/checksums.rb +0 -51
  378. data/lib/aws-sdk-core/client.rb +0 -67
  379. data/lib/aws-sdk-core/client_waiters.rb +0 -120
  380. data/lib/aws-sdk-core/cloudformation.rb +0 -8
  381. data/lib/aws-sdk-core/cloudfront.rb +0 -15
  382. data/lib/aws-sdk-core/cloudfront/url_signer.rb +0 -167
  383. data/lib/aws-sdk-core/cloudhsm.rb +0 -5
  384. data/lib/aws-sdk-core/cloudsearch.rb +0 -5
  385. data/lib/aws-sdk-core/cloudsearchdomain.rb +0 -5
  386. data/lib/aws-sdk-core/cloudtrail.rb +0 -6
  387. data/lib/aws-sdk-core/cloudwatch.rb +0 -8
  388. data/lib/aws-sdk-core/cloudwatchevents.rb +0 -5
  389. data/lib/aws-sdk-core/cloudwatchlogs.rb +0 -6
  390. data/lib/aws-sdk-core/codecommit.rb +0 -6
  391. data/lib/aws-sdk-core/codedeploy.rb +0 -6
  392. data/lib/aws-sdk-core/codepipeline.rb +0 -5
  393. data/lib/aws-sdk-core/cognitoidentity.rb +0 -5
  394. data/lib/aws-sdk-core/cognitoidentityprovider.rb +0 -5
  395. data/lib/aws-sdk-core/cognitosync.rb +0 -4
  396. data/lib/aws-sdk-core/configservice.rb +0 -6
  397. data/lib/aws-sdk-core/databasemigrationservice.rb +0 -5
  398. data/lib/aws-sdk-core/datapipeline.rb +0 -5
  399. data/lib/aws-sdk-core/devicefarm.rb +0 -6
  400. data/lib/aws-sdk-core/directconnect.rb +0 -6
  401. data/lib/aws-sdk-core/directoryservice.rb +0 -5
  402. data/lib/aws-sdk-core/dynamodb.rb +0 -40
  403. data/lib/aws-sdk-core/dynamodb/attribute_value.rb +0 -108
  404. data/lib/aws-sdk-core/dynamodbstreams.rb +0 -5
  405. data/lib/aws-sdk-core/ec2.rb +0 -8
  406. data/lib/aws-sdk-core/ecr.rb +0 -5
  407. data/lib/aws-sdk-core/ecs.rb +0 -7
  408. data/lib/aws-sdk-core/efs.rb +0 -5
  409. data/lib/aws-sdk-core/elasticache.rb +0 -7
  410. data/lib/aws-sdk-core/elasticbeanstalk.rb +0 -6
  411. data/lib/aws-sdk-core/elasticloadbalancing.rb +0 -6
  412. data/lib/aws-sdk-core/elasticsearchservice.rb +0 -4
  413. data/lib/aws-sdk-core/elastictranscoder.rb +0 -6
  414. data/lib/aws-sdk-core/empty_structure.rb +0 -3
  415. data/lib/aws-sdk-core/emr.rb +0 -7
  416. data/lib/aws-sdk-core/endpoint_provider.rb +0 -95
  417. data/lib/aws-sdk-core/firehose.rb +0 -4
  418. data/lib/aws-sdk-core/gamelift.rb +0 -5
  419. data/lib/aws-sdk-core/glacier.rb +0 -7
  420. data/lib/aws-sdk-core/iam.rb +0 -8
  421. data/lib/aws-sdk-core/importexport.rb +0 -5
  422. data/lib/aws-sdk-core/inspector.rb +0 -5
  423. data/lib/aws-sdk-core/iot.rb +0 -5
  424. data/lib/aws-sdk-core/iotdataplane.rb +0 -4
  425. data/lib/aws-sdk-core/kinesis.rb +0 -7
  426. data/lib/aws-sdk-core/kms.rb +0 -6
  427. data/lib/aws-sdk-core/lambda.rb +0 -6
  428. data/lib/aws-sdk-core/lambdapreview.rb +0 -5
  429. data/lib/aws-sdk-core/machinelearning.rb +0 -6
  430. data/lib/aws-sdk-core/marketplacecommerceanalytics.rb +0 -5
  431. data/lib/aws-sdk-core/marketplacemetering.rb +0 -5
  432. data/lib/aws-sdk-core/opsworks.rb +0 -8
  433. data/lib/aws-sdk-core/partitions.rb +0 -174
  434. data/lib/aws-sdk-core/partitions/partition.rb +0 -95
  435. data/lib/aws-sdk-core/partitions/partition_list.rb +0 -60
  436. data/lib/aws-sdk-core/partitions/region.rb +0 -78
  437. data/lib/aws-sdk-core/partitions/service.rb +0 -84
  438. data/lib/aws-sdk-core/plugins/api_gateway_header.rb +0 -19
  439. data/lib/aws-sdk-core/plugins/csd_conditional_signing.rb +0 -30
  440. data/lib/aws-sdk-core/plugins/dynamodb_crc32_validation.rb +0 -52
  441. data/lib/aws-sdk-core/plugins/dynamodb_extended_retries.rb +0 -22
  442. data/lib/aws-sdk-core/plugins/dynamodb_simple_attributes.rb +0 -209
  443. data/lib/aws-sdk-core/plugins/ec2_copy_encrypted_snapshot.rb +0 -87
  444. data/lib/aws-sdk-core/plugins/ec2_region_validation.rb +0 -17
  445. data/lib/aws-sdk-core/plugins/glacier_account_id.rb +0 -19
  446. data/lib/aws-sdk-core/plugins/glacier_api_version.rb +0 -19
  447. data/lib/aws-sdk-core/plugins/glacier_checksums.rb +0 -87
  448. data/lib/aws-sdk-core/plugins/machine_learning_predict_endpoint.rb +0 -20
  449. data/lib/aws-sdk-core/plugins/request_signer.rb +0 -138
  450. data/lib/aws-sdk-core/plugins/route_53_id_fix.rb +0 -55
  451. data/lib/aws-sdk-core/plugins/s3_accelerate.rb +0 -73
  452. data/lib/aws-sdk-core/plugins/s3_bucket_dns.rb +0 -86
  453. data/lib/aws-sdk-core/plugins/s3_bucket_name_restrictions.rb +0 -21
  454. data/lib/aws-sdk-core/plugins/s3_expect_100_continue.rb +0 -27
  455. data/lib/aws-sdk-core/plugins/s3_get_bucket_location_fix.rb +0 -21
  456. data/lib/aws-sdk-core/plugins/s3_http_200_errors.rb +0 -45
  457. data/lib/aws-sdk-core/plugins/s3_location_constraint.rb +0 -31
  458. data/lib/aws-sdk-core/plugins/s3_md5s.rb +0 -50
  459. data/lib/aws-sdk-core/plugins/s3_redirects.rb +0 -37
  460. data/lib/aws-sdk-core/plugins/s3_request_signer.rb +0 -166
  461. data/lib/aws-sdk-core/plugins/s3_sse_cpk.rb +0 -64
  462. data/lib/aws-sdk-core/plugins/s3_url_encoded_keys.rb +0 -92
  463. data/lib/aws-sdk-core/plugins/sqs_md5s.rb +0 -162
  464. data/lib/aws-sdk-core/plugins/sqs_queue_urls.rb +0 -34
  465. data/lib/aws-sdk-core/plugins/swf_read_timeouts.rb +0 -23
  466. data/lib/aws-sdk-core/rds.rb +0 -8
  467. data/lib/aws-sdk-core/redshift.rb +0 -7
  468. data/lib/aws-sdk-core/route53.rb +0 -7
  469. data/lib/aws-sdk-core/route53domains.rb +0 -5
  470. data/lib/aws-sdk-core/s3.rb +0 -26
  471. data/lib/aws-sdk-core/s3/bucket_region_cache.rb +0 -75
  472. data/lib/aws-sdk-core/s3/presigner.rb +0 -113
  473. data/lib/aws-sdk-core/service.rb +0 -4
  474. data/lib/aws-sdk-core/servicecatalog.rb +0 -5
  475. data/lib/aws-sdk-core/ses.rb +0 -7
  476. data/lib/aws-sdk-core/signers/base.rb +0 -31
  477. data/lib/aws-sdk-core/signers/s3.rb +0 -184
  478. data/lib/aws-sdk-core/signers/v2.rb +0 -51
  479. data/lib/aws-sdk-core/signers/v3.rb +0 -34
  480. data/lib/aws-sdk-core/signers/v4.rb +0 -233
  481. data/lib/aws-sdk-core/simpledb.rb +0 -5
  482. data/lib/aws-sdk-core/sns.rb +0 -6
  483. data/lib/aws-sdk-core/sqs.rb +0 -6
  484. data/lib/aws-sdk-core/ssm.rb +0 -6
  485. data/lib/aws-sdk-core/storagegateway.rb +0 -6
  486. data/lib/aws-sdk-core/sts.rb +0 -5
  487. data/lib/aws-sdk-core/support.rb +0 -5
  488. data/lib/aws-sdk-core/swf.rb +0 -5
  489. data/lib/aws-sdk-core/tree_hash.rb +0 -69
  490. data/lib/aws-sdk-core/version.rb +0 -3
  491. data/lib/aws-sdk-core/waf.rb +0 -5
  492. data/lib/aws-sdk-core/waiters/null_provider.rb +0 -12
  493. data/lib/aws-sdk-core/waiters/provider.rb +0 -35
  494. data/lib/aws-sdk-core/workspaces.rb +0 -6
  495. data/lib/seahorse/client/plugins/restful_bindings.rb +0 -127
  496. data/service-models.json +0 -285
@@ -0,0 +1,33 @@
1
+ require 'securerandom'
2
+
3
+ module Aws
4
+ module Plugins
5
+
6
+ # @api private
7
+ class InvocationId < Seahorse::Client::Plugin
8
+
9
+ # @api private
10
+ class Handler < Seahorse::Client::Handler
11
+
12
+ def call(context)
13
+ apply_invocation_id(context)
14
+ @handler.call(context)
15
+ end
16
+
17
+ private
18
+
19
+ def apply_invocation_id(context)
20
+ context.http_request.headers['amz-sdk-invocation-id'] = SecureRandom.uuid
21
+ if context[:input_event_emitter]
22
+ # only used for eventstreaming at input
23
+ context.http_request.headers['x-amz-content-sha256'] = 'STREAMING-AWS4-HMAC-SHA256-EVENTS'
24
+ end
25
+ end
26
+
27
+ end
28
+
29
+ handler(Handler, step: :initialize)
30
+
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,29 @@
1
+ module Aws
2
+ module Plugins
3
+
4
+ # Converts input value to JSON Syntax for members with jsonvalue trait
5
+ class JsonvalueConverter < Seahorse::Client::Plugin
6
+
7
+ # @api private
8
+ class Handler < Seahorse::Client::Handler
9
+
10
+ def call(context)
11
+ context.operation.input.shape.members.each do |m, ref|
12
+ if ref['jsonvalue']
13
+ param_value = context.params[m]
14
+ unless param_value.respond_to?(:to_json)
15
+ raise ArgumentError, "The value of params[#{m}] is not JSON serializable."
16
+ end
17
+ context.params[m] = param_value.to_json
18
+ end
19
+ end
20
+ @handler.call(context)
21
+ end
22
+
23
+ end
24
+
25
+ handler(Handler, step: :initialize)
26
+ end
27
+
28
+ end
29
+ end
@@ -1,28 +1,28 @@
1
1
  module Aws
2
2
  module Plugins
3
-
4
- # Enables logging for all requests. This plugin allows you to configure
5
- # your logging device, the log format and the level to log messages at.
6
- #
7
3
  # @see Log::Formatter
8
- #
9
- # @seahorse.client.option [Logger] :logger (nil) The Logger instance
10
- # to send log messages to. If this option is not set, logging
11
- # will be disabled.
12
- #
13
- # @seahorse.client.option [Symbol] :log_level (:info) The log level
14
- # to send messages to the logger at.
15
- #
16
- # @seahorse.client.option [Logging::LogFormatter] :log_formatter The log
17
- # formatter. Defaults to {Seahorse::Client::Logging::Formatter.default}.
18
- #
4
+ # @api private
19
5
  class Logging < Seahorse::Client::Plugin
20
6
 
21
- option(:logger)
7
+ option(:logger,
8
+ doc_type: 'Logger',
9
+ docstring: <<-DOCS
10
+ The Logger instance to send log messages to. If this option
11
+ is not set, logging will be disabled.
12
+ DOCS
13
+ )
22
14
 
23
- option(:log_level, :info)
15
+ option(:log_level,
16
+ default: :info,
17
+ doc_type: Symbol,
18
+ docstring: 'The log level to send messages to the `:logger` at.'
19
+ )
24
20
 
25
- option(:log_formatter) do |config|
21
+ option(:log_formatter,
22
+ doc_type: 'Aws::Log::Formatter',
23
+ doc_default: literal('Aws::Log::Formatter.default'),
24
+ docstring: 'The log formatter.'
25
+ ) do |config|
26
26
  Log::Formatter.default if config.logger
27
27
  end
28
28
 
@@ -1,12 +1,16 @@
1
1
  module Aws
2
2
  module Plugins
3
-
4
- # @seahorse.client.option [Boolean] :convert_params (true)
5
- # When `true`, an attempt is made to coerce request parameters
6
- # into the required types.
3
+ # @api private
7
4
  class ParamConverter < Seahorse::Client::Plugin
8
5
 
9
- option(:convert_params, true)
6
+ option(:convert_params,
7
+ default: true,
8
+ doc_type: 'Boolean',
9
+ docstring: <<-DOCS
10
+ When `true`, an attempt is made to coerce request parameters into
11
+ the required types.
12
+ DOCS
13
+ )
10
14
 
11
15
  def add_handlers(handlers, config)
12
16
  handlers.add(Handler, step: :initialize) if config.convert_params
@@ -1,12 +1,15 @@
1
1
  module Aws
2
2
  module Plugins
3
-
4
- # @seahorse.client.option [Boolean] :validate_params (true)
5
- # When `true`, request parameters are validated before
6
- # sending the request.
3
+ # @api private
7
4
  class ParamValidator < Seahorse::Client::Plugin
8
5
 
9
- option(:validate_params, true)
6
+ option(:validate_params,
7
+ default: true,
8
+ doc_type: 'Boolean',
9
+ docstring: <<-DOCS)
10
+ When `true`, request parameters are validated before
11
+ sending the request.
12
+ DOCS
10
13
 
11
14
  def add_handlers(handlers, config)
12
15
  if config.validate_params
@@ -0,0 +1,10 @@
1
+ module Aws
2
+ module Plugins
3
+ module Protocols
4
+ class ApiGateway < Seahorse::Client::Plugin
5
+ handler(Rest::Handler)
6
+ handler(Json::ErrorHandler, step: :sign)
7
+ end
8
+ end
9
+ end
10
+ end
@@ -1,3 +1,5 @@
1
+ require_relative '../../query'
2
+
1
3
  module Aws
2
4
  module Plugins
3
5
  module Protocols
@@ -26,7 +28,6 @@ module Aws
26
28
  end
27
29
 
28
30
  handler(Handler)
29
-
30
31
  handler(Xml::ErrorHandler, step: :sign)
31
32
 
32
33
  end
@@ -1,20 +1,21 @@
1
1
  module Aws
2
2
  module Plugins
3
3
  module Protocols
4
-
5
- # @seahorse.client.option [Boolean] :simple_json (false)
6
- # Disables request parameter conversion, validation, and formatting.
7
- # Also disable response data type conversions. This option is useful
8
- # when you want to ensure the highest level of performance by
9
- # avoiding overhead of walking request parameters and response data
10
- # structures.
11
- #
12
- # When `:simple_json` is enabled, the request parameters hash must
13
- # be formatted exactly as the DynamoDB API expects.
14
- #
15
4
  class JsonRpc < Seahorse::Client::Plugin
16
5
 
17
- option(:simple_json, false)
6
+ option(:simple_json,
7
+ default: false,
8
+ doc_type: 'Boolean',
9
+ docstring: <<-DOCS)
10
+ Disables request parameter conversion, validation, and formatting.
11
+ Also disable response data type conversions. This option is useful
12
+ when you want to ensure the highest level of performance by
13
+ avoiding overhead of walking request parameters and response data
14
+ structures.
15
+
16
+ When `:simple_json` is enabled, the request parameters hash must
17
+ be formatted exactly as the DynamoDB API expects.
18
+ DOCS
18
19
 
19
20
  option(:validate_params) { |config| !config.simple_json }
20
21
 
@@ -1,11 +1,11 @@
1
+ require_relative '../../query'
2
+
1
3
  module Aws
2
4
  module Plugins
3
5
  module Protocols
4
6
  class Query < Seahorse::Client::Plugin
5
-
6
7
  handler(Aws::Query::Handler)
7
8
  handler(Xml::ErrorHandler, step: :sign)
8
-
9
9
  end
10
10
  end
11
11
  end
@@ -1,38 +1,67 @@
1
1
  module Aws
2
2
  module Plugins
3
-
4
- # @seahorse.client.option [required, String] :region
5
- # The AWS region to connect to. The region is used to construct
6
- # the client endpoint. Defaults to `ENV['AWS_REGION']`.
7
- # Also checks `AMAZON_REGION` and `AWS_DEFAULT_REGION`.
8
- #
9
- # @seahorse.client.option [String] :endpoint A default endpoint is
10
- # constructed from the `:region`.
11
- #
3
+ # @api private
12
4
  class RegionalEndpoint < Seahorse::Client::Plugin
13
5
 
14
6
  # raised when region is not configured
15
7
  MISSING_REGION = 'missing required configuration option :region'
16
8
 
17
- option(:region) {
18
- keys = %w(AWS_REGION AMAZON_REGION AWS_DEFAULT_REGION)
19
- ENV.values_at(*keys).compact.first
20
- }
9
+ option(:profile)
10
+
11
+ option(:region,
12
+ required: true,
13
+ doc_type: String,
14
+ docstring: <<-DOCS) do |cfg|
15
+ The AWS region to connect to. The configured `:region` is
16
+ used to determine the service `:endpoint`. When not passed,
17
+ a default `:region` is search for in the following locations:
18
+
19
+ * `Aws.config[:region]`
20
+ * `ENV['AWS_REGION']`
21
+ * `ENV['AMAZON_REGION']`
22
+ * `ENV['AWS_DEFAULT_REGION']`
23
+ * `~/.aws/credentials`
24
+ * `~/.aws/config`
25
+ DOCS
26
+ resolve_region(cfg)
27
+ end
21
28
 
22
- option(:endpoint) do |cfg|
23
- if endpoint_prefix = cfg.api.metadata['endpointPrefix']
24
- EndpointProvider.resolve(cfg.region, endpoint_prefix)
29
+ option(:regional_endpoint, false)
30
+
31
+ option(:endpoint, doc_type: String, docstring: <<-DOCS) do |cfg|
32
+ The client endpoint is normally constructed from the `:region`
33
+ option. You should only configure an `:endpoint` when connecting
34
+ to test endpoints. This should be avalid HTTP(S) URI.
35
+ DOCS
36
+ endpoint_prefix = cfg.api.metadata['endpointPrefix']
37
+ if cfg.region && endpoint_prefix
38
+ if cfg.respond_to?(:sts_regional_endpoints)
39
+ sts_regional = cfg.sts_regional_endpoints
40
+ end
41
+ Aws::Partitions::EndpointProvider.resolve(
42
+ cfg.region,
43
+ endpoint_prefix,
44
+ sts_regional
45
+ )
25
46
  end
26
47
  end
27
48
 
28
49
  def after_initialize(client)
29
50
  if client.config.region.nil? or client.config.region == ''
30
- msg = "missing region; use :region option or "
31
- msg << "export region name to ENV['AWS_REGION']"
32
- raise Errors::MissingRegionError, msg
51
+ raise Errors::MissingRegionError
33
52
  end
34
53
  end
35
54
 
55
+ private
56
+
57
+ def self.resolve_region(cfg)
58
+ keys = %w(AWS_REGION AMAZON_REGION AWS_DEFAULT_REGION)
59
+ env_region = ENV.values_at(*keys).compact.first
60
+ env_region = nil if env_region == ''
61
+ cfg_region = Aws.shared_config.region(profile: cfg.profile)
62
+ env_region || cfg_region
63
+ end
64
+
36
65
  end
37
66
  end
38
67
  end
@@ -1,35 +1,22 @@
1
1
  module Aws
2
2
  module Plugins
3
+ # @api private
3
4
  class ResponsePaging < Seahorse::Client::Plugin
4
5
 
5
- def add_handlers(handlers, config)
6
- handlers.add(Handler,
7
- operations: pageable_operations(config),
8
- step: :initialize,
9
- priority: 90)
10
- end
11
-
12
- private
13
-
14
- def pageable_operations(config)
15
- config.api.operations.inject([]) do |pageable, (name, operation)|
16
- pageable << name if operation[:pager]
17
- pageable
18
- end
19
- end
20
-
21
- # @api private
22
6
  class Handler < Seahorse::Client::Handler
23
7
 
24
8
  def call(context)
25
9
  context[:original_params] = context.params
26
10
  resp = @handler.call(context)
27
11
  resp.extend(PageableResponse)
28
- resp.pager = context.operation[:pager]
12
+ resp.pager = context.operation[:pager] || Aws::Pager::NullPager.new
29
13
  resp
30
14
  end
31
15
 
32
16
  end
17
+
18
+ handle(Handler, step: :initialize, priority: 90)
19
+
33
20
  end
34
21
  end
35
22
  end
@@ -2,18 +2,67 @@ require 'set'
2
2
 
3
3
  module Aws
4
4
  module Plugins
5
-
6
- # @seahorse.client.option [Integer] :retry_limit (3)
7
- # The maximum number of times to retry failed requests. Only
8
- # ~ 500 level server errors and certain ~ 400 level client errors
9
- # are retried. Generally, these are throttling errors, data
10
- # checksum errors, networking errors, timeout errors and auth
11
- # errors from expired credentials.
5
+ # @api private
12
6
  class RetryErrors < Seahorse::Client::Plugin
13
7
 
14
- option(:retry_limit, 3)
8
+ EQUAL_JITTER = lambda { |delay| (delay / 2) + Kernel.rand(0..(delay/2))}
9
+ FULL_JITTER = lambda { |delay| Kernel.rand(0..delay) }
10
+ NO_JITTER = lambda { |delay| delay }
11
+
12
+ JITTERS = {
13
+ none: NO_JITTER,
14
+ equal: EQUAL_JITTER,
15
+ full: FULL_JITTER
16
+ }
17
+
18
+ JITTERS.default_proc = lambda { |h,k|
19
+ raise KeyError, "#{k} is not a named jitter function. Must be one of #{h.keys}"
20
+ }
21
+
22
+ DEFAULT_BACKOFF = lambda do |c|
23
+ delay = 2 ** c.retries * c.config.retry_base_delay
24
+ delay = [delay, c.config.retry_max_delay].min if (c.config.retry_max_delay || 0) > 0
25
+ jitter = c.config.retry_jitter
26
+ jitter = JITTERS[jitter] if Symbol === jitter
27
+ delay = jitter.call(delay) if jitter
28
+ Kernel.sleep(delay)
29
+ end
15
30
 
16
- option(:retry_backoff, lambda { |c| Kernel.sleep(2 ** c.retries * 0.3) })
31
+ option(:retry_limit,
32
+ default: 3,
33
+ doc_type: Integer,
34
+ docstring: <<-DOCS)
35
+ The maximum number of times to retry failed requests. Only
36
+ ~ 500 level server errors and certain ~ 400 level client errors
37
+ are retried. Generally, these are throttling errors, data
38
+ checksum errors, networking errors, timeout errors and auth
39
+ errors from expired credentials.
40
+ DOCS
41
+
42
+ option(:retry_max_delay,
43
+ default: 0,
44
+ doc_type: Integer,
45
+ docstring: <<-DOCS)
46
+ The maximum number of seconds to delay between retries (0 for no limit) used by the default backoff function.
47
+ DOCS
48
+
49
+ option(:retry_base_delay,
50
+ default: 0.3,
51
+ doc_type: Float,
52
+ docstring: <<-DOCS)
53
+ The base delay in seconds used by the default backoff function.
54
+ DOCS
55
+
56
+ option(:retry_jitter,
57
+ default: :none,
58
+ doc_type: Symbol,
59
+ docstring: <<-DOCS)
60
+ A delay randomiser function used by the default backoff function. Some predefined functions can be referenced by name - :none, :equal, :full, otherwise a Proc that takes and returns a number.
61
+
62
+ @see https://www.awsarchitectureblog.com/2015/03/backoff.html
63
+ DOCS
64
+
65
+ option(:retry_backoff, DEFAULT_BACKOFF)
17
66
 
18
67
  # @api private
19
68
  class ErrorInspector
@@ -23,15 +72,22 @@ module Aws
23
72
  'UnrecognizedClientException', # json services
24
73
  'InvalidAccessKeyId', # s3
25
74
  'AuthFailure', # ec2
75
+ 'InvalidIdentityToken', # sts
76
+ 'ExpiredToken', # route53
26
77
  ])
27
78
 
28
79
  THROTTLING_ERRORS = Set.new([
29
80
  'Throttling', # query services
30
81
  'ThrottlingException', # json services
31
82
  'RequestThrottled', # sqs
83
+ 'RequestThrottledException',
32
84
  'ProvisionedThroughputExceededException', # dynamodb
85
+ 'TransactionInProgressException', # dynamodb
33
86
  'RequestLimitExceeded', # ec2
34
87
  'BandwidthLimitExceeded', # cloud search
88
+ 'LimitExceededException', # kinesis
89
+ 'TooManyRequestsException', # batch
90
+ 'PriorRequestNotComplete', # route53
35
91
  ])
36
92
 
37
93
  CHECKSUM_ERRORS = Set.new([
@@ -39,7 +95,8 @@ module Aws
39
95
  ])
40
96
 
41
97
  NETWORKING_ERRORS = Set.new([
42
- 'RequestTimeout', # s3
98
+ 'RequestTimeout', # s3
99
+ 'IDPCommunicationError', # sts
43
100
  ])
44
101
 
45
102
  def initialize(error, http_status_code)
@@ -53,7 +110,7 @@ module Aws
53
110
  end
54
111
 
55
112
  def throttling_error?
56
- !!(THROTTLING_ERRORS.include?(@name) || @name.match(/throttl/i))
113
+ !!(THROTTLING_ERRORS.include?(@name) || @name.match(/throttl/i) || @http_status_code == 429)
57
114
  end
58
115
 
59
116
  def checksum?
@@ -62,6 +119,7 @@ module Aws
62
119
 
63
120
  def networking?
64
121
  @error.is_a?(Seahorse::Client::NetworkingError) ||
122
+ @error.is_a?(Errors::NoSuchEndpointError) ||
65
123
  NETWORKING_ERRORS.include?(@name)
66
124
  end
67
125
 
@@ -69,8 +127,40 @@ module Aws
69
127
  (500..599).include?(@http_status_code)
70
128
  end
71
129
 
130
+ def endpoint_discovery?(context)
131
+ return false unless context.operation.endpoint_discovery
132
+
133
+ if @http_status_code == 421 ||
134
+ extract_name(@error) == 'InvalidEndpointException'
135
+ @error = Errors::EndpointDiscoveryError.new
136
+ end
137
+
138
+ # When endpoint discovery error occurs
139
+ # evict the endpoint from cache
140
+ if @error.is_a?(Errors::EndpointDiscoveryError)
141
+ key = context.config.endpoint_cache.extract_key(context)
142
+ context.config.endpoint_cache.delete(key)
143
+ true
144
+ else
145
+ false
146
+ end
147
+ end
148
+
149
+ def retryable?(context)
150
+ (expired_credentials? and refreshable_credentials?(context)) or
151
+ throttling_error? or
152
+ checksum? or
153
+ networking? or
154
+ server? or
155
+ endpoint_discovery?(context)
156
+ end
157
+
72
158
  private
73
159
 
160
+ def refreshable_credentials?(context)
161
+ context.config.credentials.respond_to?(:refresh!)
162
+ end
163
+
74
164
  def extract_name(error)
75
165
  if error.is_a?(Errors::ServiceError)
76
166
  error.class.code
@@ -123,23 +213,11 @@ module Aws
123
213
  end
124
214
 
125
215
  def should_retry?(context, error)
126
- retryable?(context, error) and
216
+ error.retryable?(context) and
127
217
  context.retries < retry_limit(context) and
128
218
  response_truncatable?(context)
129
219
  end
130
220
 
131
- def retryable?(context, error)
132
- (error.expired_credentials? and refreshable_credentials?(context)) or
133
- error.throttling_error? or
134
- error.checksum? or
135
- error.networking? or
136
- error.server?
137
- end
138
-
139
- def refreshable_credentials?(context)
140
- context.config.credentials.respond_to?(:refresh!)
141
- end
142
-
143
221
  def retry_limit(context)
144
222
  context.config.retry_limit
145
223
  end