aws-sdk-core 2.4.0 → 3.53.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (487) hide show
  1. checksums.yaml +4 -4
  2. data/VERSION +1 -0
  3. data/ca-bundle.crt +3615 -3541
  4. data/lib/aws-sdk-core.rb +96 -408
  5. data/lib/aws-sdk-core/async_client_stubs.rb +80 -0
  6. data/lib/aws-sdk-core/binary.rb +6 -0
  7. data/lib/aws-sdk-core/binary/decode_handler.rb +56 -0
  8. data/lib/aws-sdk-core/binary/encode_handler.rb +32 -0
  9. data/lib/aws-sdk-core/binary/event_builder.rb +122 -0
  10. data/lib/aws-sdk-core/binary/event_parser.rb +134 -0
  11. data/lib/aws-sdk-core/binary/event_stream_decoder.rb +62 -0
  12. data/lib/aws-sdk-core/binary/event_stream_encoder.rb +53 -0
  13. data/lib/aws-sdk-core/client_side_monitoring/publisher.rb +41 -0
  14. data/lib/aws-sdk-core/client_side_monitoring/request_metrics.rb +197 -0
  15. data/lib/aws-sdk-core/client_stubs.rb +73 -10
  16. data/lib/aws-sdk-core/credential_provider.rb +2 -0
  17. data/lib/aws-sdk-core/credential_provider_chain.rb +22 -5
  18. data/lib/aws-sdk-core/ecs_credentials.rb +3 -3
  19. data/lib/aws-sdk-core/endpoint_cache.rb +188 -0
  20. data/lib/aws-sdk-core/errors.rb +174 -10
  21. data/lib/aws-sdk-core/event_emitter.rb +62 -0
  22. data/lib/aws-sdk-core/ini_parser.rb +1 -0
  23. data/lib/aws-sdk-core/instance_profile_credentials.rb +21 -12
  24. data/lib/aws-sdk-core/json.rb +4 -5
  25. data/lib/aws-sdk-core/json/builder.rb +4 -2
  26. data/lib/aws-sdk-core/json/error_handler.rb +19 -2
  27. data/lib/aws-sdk-core/json/handler.rb +22 -3
  28. data/lib/aws-sdk-core/json/parser.rb +1 -1
  29. data/lib/aws-sdk-core/log/param_filter.rb +4 -3
  30. data/lib/aws-sdk-core/pageable_response.rb +1 -0
  31. data/lib/aws-sdk-core/pager.rb +30 -25
  32. data/lib/aws-sdk-core/param_converter.rb +3 -3
  33. data/lib/aws-sdk-core/param_validator.rb +56 -21
  34. data/lib/aws-sdk-core/plugins/api_key.rb +52 -0
  35. data/lib/aws-sdk-core/plugins/apig_authorizer_token.rb +30 -0
  36. data/lib/aws-sdk-core/plugins/apig_credentials_configuration.rb +34 -0
  37. data/lib/aws-sdk-core/plugins/apig_user_agent.rb +37 -0
  38. data/lib/aws-sdk-core/plugins/client_metrics_plugin.rb +256 -0
  39. data/lib/aws-sdk-core/plugins/client_metrics_send_plugin.rb +84 -0
  40. data/lib/aws-sdk-core/plugins/credentials_configuration.rb +62 -0
  41. data/lib/aws-sdk-core/plugins/endpoint_discovery.rb +160 -0
  42. data/lib/aws-sdk-core/plugins/endpoint_pattern.rb +63 -0
  43. data/lib/aws-sdk-core/plugins/event_stream_configuration.rb +30 -0
  44. data/lib/aws-sdk-core/plugins/global_configuration.rb +19 -10
  45. data/lib/aws-sdk-core/plugins/helpful_socket_errors.rb +41 -0
  46. data/lib/aws-sdk-core/plugins/idempotency_token.rb +36 -0
  47. data/lib/aws-sdk-core/plugins/invocation_id.rb +33 -0
  48. data/lib/aws-sdk-core/plugins/jsonvalue_converter.rb +29 -0
  49. data/lib/aws-sdk-core/plugins/logging.rb +18 -18
  50. data/lib/aws-sdk-core/plugins/param_converter.rb +9 -5
  51. data/lib/aws-sdk-core/plugins/param_validator.rb +8 -5
  52. data/lib/aws-sdk-core/plugins/protocols/api_gateway.rb +10 -0
  53. data/lib/aws-sdk-core/plugins/protocols/ec2.rb +2 -1
  54. data/lib/aws-sdk-core/plugins/protocols/json_rpc.rb +13 -12
  55. data/lib/aws-sdk-core/plugins/protocols/query.rb +2 -2
  56. data/lib/aws-sdk-core/plugins/regional_endpoint.rb +28 -16
  57. data/lib/aws-sdk-core/plugins/response_paging.rb +5 -18
  58. data/lib/aws-sdk-core/plugins/retry_errors.rb +97 -23
  59. data/lib/aws-sdk-core/plugins/signature_v2.rb +51 -0
  60. data/lib/aws-sdk-core/plugins/signature_v4.rb +141 -0
  61. data/lib/aws-sdk-core/plugins/stub_responses.rb +35 -18
  62. data/lib/aws-sdk-core/plugins/transfer_encoding.rb +53 -0
  63. data/lib/aws-sdk-core/plugins/user_agent.rb +23 -6
  64. data/lib/aws-sdk-core/process_credentials.rb +76 -0
  65. data/lib/aws-sdk-core/query.rb +5 -0
  66. data/lib/aws-sdk-core/query/ec2_param_builder.rb +9 -3
  67. data/lib/aws-sdk-core/query/handler.rb +20 -16
  68. data/lib/aws-sdk-core/query/param_builder.rb +10 -4
  69. data/lib/aws-sdk-core/refreshing_credentials.rb +1 -1
  70. data/lib/aws-sdk-core/resources/collection.rb +121 -0
  71. data/lib/aws-sdk-core/rest.rb +10 -0
  72. data/lib/aws-sdk-core/rest/handler.rb +1 -0
  73. data/lib/aws-sdk-core/rest/request/builder.rb +2 -1
  74. data/lib/aws-sdk-core/rest/request/endpoint.rb +11 -66
  75. data/lib/aws-sdk-core/rest/request/headers.rb +20 -1
  76. data/lib/aws-sdk-core/rest/request/querystring_builder.rb +103 -0
  77. data/lib/aws-sdk-core/rest/response/body.rb +14 -1
  78. data/lib/aws-sdk-core/rest/response/headers.rb +9 -0
  79. data/lib/aws-sdk-core/rest/response/parser.rb +18 -14
  80. data/lib/aws-sdk-core/shared_config.rb +132 -18
  81. data/lib/aws-sdk-core/shared_credentials.rb +2 -0
  82. data/lib/aws-sdk-core/structure.rb +21 -11
  83. data/lib/aws-sdk-core/stubbing/data_applicator.rb +1 -1
  84. data/lib/aws-sdk-core/stubbing/empty_stub.rb +10 -3
  85. data/lib/aws-sdk-core/stubbing/protocols/api_gateway.rb +8 -0
  86. data/lib/aws-sdk-core/stubbing/protocols/ec2.rb +1 -1
  87. data/lib/aws-sdk-core/stubbing/protocols/rest.rb +99 -1
  88. data/lib/aws-sdk-core/stubbing/protocols/rest_json.rb +5 -1
  89. data/lib/aws-sdk-core/stubbing/protocols/rest_xml.rb +9 -5
  90. data/lib/aws-sdk-core/stubbing/stub_data.rb +16 -3
  91. data/lib/aws-sdk-core/util.rb +66 -0
  92. data/lib/aws-sdk-core/waiters.rb +3 -0
  93. data/lib/aws-sdk-core/waiters/poller.rb +5 -7
  94. data/lib/aws-sdk-core/waiters/waiter.rb +1 -0
  95. data/lib/aws-sdk-core/xml.rb +9 -0
  96. data/lib/aws-sdk-core/xml/builder.rb +11 -5
  97. data/lib/aws-sdk-core/xml/error_handler.rb +27 -5
  98. data/lib/aws-sdk-core/xml/parser.rb +1 -11
  99. data/lib/aws-sdk-core/xml/parser/engines/ox.rb +5 -1
  100. data/lib/aws-sdk-core/xml/parser/frame.rb +6 -6
  101. data/lib/aws-sdk-sts.rb +45 -0
  102. data/lib/aws-sdk-sts/client.rb +1761 -0
  103. data/lib/aws-sdk-sts/client_api.rb +304 -0
  104. data/lib/aws-sdk-sts/customizations.rb +0 -0
  105. data/lib/aws-sdk-sts/errors.rb +142 -0
  106. data/lib/aws-sdk-sts/resource.rb +23 -0
  107. data/lib/aws-sdk-sts/types.rb +1279 -0
  108. data/lib/seahorse.rb +60 -60
  109. data/lib/seahorse/client/async_base.rb +50 -0
  110. data/lib/seahorse/client/async_response.rb +62 -0
  111. data/lib/seahorse/client/base.rb +2 -8
  112. data/lib/seahorse/client/configuration.rb +9 -1
  113. data/lib/seahorse/client/h2/connection.rb +244 -0
  114. data/lib/seahorse/client/h2/handler.rb +151 -0
  115. data/lib/seahorse/client/http/async_response.rb +42 -0
  116. data/lib/seahorse/client/http/response.rb +10 -5
  117. data/lib/seahorse/client/logging/formatter.rb +5 -1
  118. data/lib/seahorse/client/logging/handler.rb +2 -0
  119. data/lib/seahorse/client/net_http/connection_pool.rb +27 -11
  120. data/lib/seahorse/client/net_http/handler.rb +10 -2
  121. data/lib/seahorse/client/net_http/patches.rb +9 -1
  122. data/lib/seahorse/client/networking_error.rb +28 -0
  123. data/lib/seahorse/client/plugin.rb +66 -6
  124. data/lib/seahorse/client/plugin_list.rb +3 -1
  125. data/lib/seahorse/client/plugins/content_length.rb +7 -2
  126. data/lib/seahorse/client/plugins/endpoint.rb +14 -10
  127. data/lib/seahorse/client/plugins/h2.rb +64 -0
  128. data/lib/seahorse/client/plugins/logging.rb +17 -19
  129. data/lib/seahorse/client/plugins/net_http.rb +23 -15
  130. data/lib/seahorse/client/plugins/raise_response_errors.rb +4 -4
  131. data/lib/seahorse/client/plugins/response_target.rb +10 -1
  132. data/lib/seahorse/client/request_context.rb +5 -0
  133. data/lib/seahorse/client/response.rb +9 -20
  134. data/lib/seahorse/model/api.rb +37 -0
  135. data/lib/seahorse/model/authorizer.rb +21 -0
  136. data/lib/seahorse/model/operation.rb +20 -0
  137. data/lib/seahorse/model/shapes.rb +44 -2
  138. data/lib/seahorse/util.rb +1 -21
  139. metadata +112 -359
  140. data/apis/acm/2015-12-08/api-2.json +0 -495
  141. data/apis/acm/2015-12-08/examples-1.json +0 -5
  142. data/apis/acm/2015-12-08/paginators-1.json +0 -10
  143. data/apis/apigateway/2015-07-09/api-2.json +0 -3347
  144. data/apis/apigateway/2015-07-09/examples-1.json +0 -5
  145. data/apis/apigateway/2015-07-09/paginators-1.json +0 -52
  146. data/apis/application-autoscaling/2016-02-06/api-2.json +0 -502
  147. data/apis/application-autoscaling/2016-02-06/examples-1.json +0 -5
  148. data/apis/application-autoscaling/2016-02-06/paginators-1.json +0 -22
  149. data/apis/autoscaling/2011-01-01/api-2.json +0 -2038
  150. data/apis/autoscaling/2011-01-01/examples-1.json +0 -5
  151. data/apis/autoscaling/2011-01-01/paginators-1.json +0 -52
  152. data/apis/autoscaling/2011-01-01/resources-1.json +0 -1613
  153. data/apis/autoscaling/2011-01-01/waiters-2.json +0 -62
  154. data/apis/cloudformation/2010-05-15/api-2.json +0 -1299
  155. data/apis/cloudformation/2010-05-15/examples-1.json +0 -5
  156. data/apis/cloudformation/2010-05-15/paginators-1.json +0 -27
  157. data/apis/cloudformation/2010-05-15/resources-1.json +0 -202
  158. data/apis/cloudformation/2010-05-15/waiters-2.json +0 -235
  159. data/apis/cloudfront/2016-01-28/api-2.json +0 -2218
  160. data/apis/cloudfront/2016-01-28/examples-1.json +0 -5
  161. data/apis/cloudfront/2016-01-28/paginators-1.json +0 -32
  162. data/apis/cloudfront/2016-01-28/waiters-2.json +0 -47
  163. data/apis/cloudhsm/2014-05-30/api-2.json +0 -877
  164. data/apis/cloudhsm/2014-05-30/examples-1.json +0 -5
  165. data/apis/cloudsearch/2013-01-01/api-2.json +0 -2001
  166. data/apis/cloudsearch/2013-01-01/paginators-1.json +0 -20
  167. data/apis/cloudsearchdomain/2013-01-01/api-2.json +0 -373
  168. data/apis/cloudsearchdomain/2013-01-01/examples-1.json +0 -5
  169. data/apis/cloudtrail/2013-11-01/api-2.json +0 -801
  170. data/apis/cloudtrail/2013-11-01/examples-1.json +0 -5
  171. data/apis/cloudtrail/2013-11-01/paginators-1.json +0 -7
  172. data/apis/codecommit/2015-04-13/api-2.json +0 -916
  173. data/apis/codecommit/2015-04-13/examples-1.json +0 -5
  174. data/apis/codecommit/2015-04-13/paginators-1.json +0 -14
  175. data/apis/codedeploy/2014-10-06/api-2.json +0 -1954
  176. data/apis/codedeploy/2014-10-06/examples-1.json +0 -5
  177. data/apis/codedeploy/2014-10-06/paginators-1.json +0 -34
  178. data/apis/codepipeline/2015-07-09/api-2.json +0 -1633
  179. data/apis/codepipeline/2015-07-09/examples-1.json +0 -902
  180. data/apis/cognito-identity/2014-06-30/api-2.json +0 -859
  181. data/apis/cognito-identity/2014-06-30/examples-1.json +0 -5
  182. data/apis/cognito-idp/2016-04-18/api-2.json +0 -1657
  183. data/apis/cognito-idp/2016-04-18/examples-1.json +0 -5
  184. data/apis/cognito-sync/2014-06-30/api-2.json +0 -1874
  185. data/apis/config/2014-11-12/api-2.json +0 -1303
  186. data/apis/config/2014-11-12/examples-1.json +0 -5
  187. data/apis/config/2014-11-12/paginators-1.json +0 -10
  188. data/apis/datapipeline/2012-10-29/api-2.json +0 -1167
  189. data/apis/datapipeline/2012-10-29/paginators-1.json +0 -26
  190. data/apis/devicefarm/2015-06-23/api-2.json +0 -2030
  191. data/apis/devicefarm/2015-06-23/examples-1.json +0 -5
  192. data/apis/devicefarm/2015-06-23/paginators-1.json +0 -74
  193. data/apis/directconnect/2012-10-25/api-2.json +0 -793
  194. data/apis/directconnect/2012-10-25/examples-1.json +0 -5
  195. data/apis/directconnect/2012-10-25/paginators-1.json +0 -22
  196. data/apis/discovery/2015-11-01/api-2.json +0 -556
  197. data/apis/discovery/2015-11-01/examples-1.json +0 -5
  198. data/apis/dms/2016-01-01/api-2.json +0 -1469
  199. data/apis/dms/2016-01-01/examples-1.json +0 -5
  200. data/apis/ds/2015-04-16/api-2.json +0 -1674
  201. data/apis/ds/2015-04-16/examples-1.json +0 -5
  202. data/apis/dynamodb/2012-08-10/api-2.json +0 -1200
  203. data/apis/dynamodb/2012-08-10/examples-1.json +0 -5
  204. data/apis/dynamodb/2012-08-10/paginators-1.json +0 -26
  205. data/apis/dynamodb/2012-08-10/resources-1.json +0 -136
  206. data/apis/dynamodb/2012-08-10/waiters-2.json +0 -35
  207. data/apis/ec2/2015-10-01/api-2.json +0 -13759
  208. data/apis/ec2/2015-10-01/examples-1.json +0 -5
  209. data/apis/ec2/2015-10-01/paginators-1.json +0 -138
  210. data/apis/ec2/2015-10-01/resources-1.json +0 -2582
  211. data/apis/ec2/2015-10-01/waiters-2.json +0 -593
  212. data/apis/ec2/2016-04-01/api-2.json +0 -13842
  213. data/apis/ec2/2016-04-01/examples-1.json +0 -5
  214. data/apis/ec2/2016-04-01/paginators-1.json +0 -138
  215. data/apis/ec2/2016-04-01/resources-1.json +0 -2582
  216. data/apis/ec2/2016-04-01/waiters-2.json +0 -593
  217. data/apis/ecr/2015-09-21/api-2.json +0 -849
  218. data/apis/ecr/2015-09-21/examples-1.json +0 -5
  219. data/apis/ecs/2014-11-13/api-2.json +0 -1396
  220. data/apis/ecs/2014-11-13/examples-1.json +0 -5
  221. data/apis/ecs/2014-11-13/paginators-1.json +0 -40
  222. data/apis/ecs/2014-11-13/waiters-2.json +0 -93
  223. data/apis/elasticache/2015-02-02/api-2.json +0 -2426
  224. data/apis/elasticache/2015-02-02/examples-1.json +0 -5
  225. data/apis/elasticache/2015-02-02/paginators-1.json +0 -76
  226. data/apis/elasticache/2015-02-02/waiters-2.json +0 -143
  227. data/apis/elasticbeanstalk/2010-12-01/api-2.json +0 -1894
  228. data/apis/elasticbeanstalk/2010-12-01/examples-1.json +0 -1109
  229. data/apis/elasticbeanstalk/2010-12-01/paginators-1.json +0 -25
  230. data/apis/elasticfilesystem/2015-02-01/api-2.json +0 -713
  231. data/apis/elasticfilesystem/2015-02-01/examples-1.json +0 -5
  232. data/apis/elasticloadbalancing/2012-06-01/api-2.json +0 -2145
  233. data/apis/elasticloadbalancing/2012-06-01/paginators-1.json +0 -18
  234. data/apis/elasticloadbalancing/2012-06-01/waiters-2.json +0 -49
  235. data/apis/elasticmapreduce/2009-03-31/api-2.json +0 -1341
  236. data/apis/elasticmapreduce/2009-03-31/examples-1.json +0 -5
  237. data/apis/elasticmapreduce/2009-03-31/paginators-1.json +0 -32
  238. data/apis/elasticmapreduce/2009-03-31/waiters-2.json +0 -67
  239. data/apis/elastictranscoder/2012-09-25/api-2.json +0 -1807
  240. data/apis/elastictranscoder/2012-09-25/paginators-1.json +0 -24
  241. data/apis/elastictranscoder/2012-09-25/waiters-2.json +0 -30
  242. data/apis/email/2010-12-01/api-2.json +0 -1791
  243. data/apis/email/2010-12-01/examples-1.json +0 -5
  244. data/apis/email/2010-12-01/paginators-1.json +0 -13
  245. data/apis/email/2010-12-01/waiters-2.json +0 -18
  246. data/apis/es/2015-01-01/api-2.json +0 -764
  247. data/apis/events/2015-10-07/api-2.json +0 -643
  248. data/apis/events/2015-10-07/examples-1.json +0 -5
  249. data/apis/firehose/2015-08-04/api-2.json +0 -719
  250. data/apis/gamelift/2015-10-01/api-2.json +0 -2307
  251. data/apis/gamelift/2015-10-01/examples-1.json +0 -5
  252. data/apis/glacier/2012-06-01/api-2.json +0 -2144
  253. data/apis/glacier/2012-06-01/paginators-1.json +0 -28
  254. data/apis/glacier/2012-06-01/resources-1.json +0 -563
  255. data/apis/glacier/2012-06-01/waiters-2.json +0 -39
  256. data/apis/iam/2010-05-08/api-2.json +0 -4514
  257. data/apis/iam/2010-05-08/examples-1.json +0 -5
  258. data/apis/iam/2010-05-08/paginators-1.json +0 -198
  259. data/apis/iam/2010-05-08/resources-1.json +0 -1740
  260. data/apis/iam/2010-05-08/waiters-2.json +0 -39
  261. data/apis/importexport/2010-06-01/api-2.json +0 -666
  262. data/apis/importexport/2010-06-01/paginators-1.json +0 -11
  263. data/apis/inspector/2016-02-16/api-2.json +0 -1964
  264. data/apis/inspector/2016-02-16/examples-1.json +0 -5
  265. data/apis/iot-data/2015-05-28/api-2.json +0 -263
  266. data/apis/iot/2015-05-28/api-2.json +0 -3800
  267. data/apis/iot/2015-05-28/examples-1.json +0 -5
  268. data/apis/kinesis/2013-12-02/api-2.json +0 -822
  269. data/apis/kinesis/2013-12-02/examples-1.json +0 -5
  270. data/apis/kinesis/2013-12-02/paginators-1.json +0 -18
  271. data/apis/kinesis/2013-12-02/waiters-2.json +0 -18
  272. data/apis/kms/2014-11-01/api-2.json +0 -1209
  273. data/apis/kms/2014-11-01/examples-1.json +0 -5
  274. data/apis/kms/2014-11-01/paginators-1.json +0 -32
  275. data/apis/lambda/2014-11-11/api-2.json +0 -667
  276. data/apis/lambda/2014-11-11/paginators-1.json +0 -16
  277. data/apis/lambda/2015-03-31/api-2.json +0 -1342
  278. data/apis/lambda/2015-03-31/examples-1.json +0 -5
  279. data/apis/lambda/2015-03-31/paginators-1.json +0 -16
  280. data/apis/logs/2014-03-28/api-2.json +0 -1138
  281. data/apis/logs/2014-03-28/examples-1.json +0 -5
  282. data/apis/logs/2014-03-28/paginators-1.json +0 -49
  283. data/apis/machinelearning/2014-12-12/api-2.json +0 -1947
  284. data/apis/machinelearning/2014-12-12/paginators-1.json +0 -28
  285. data/apis/machinelearning/2014-12-12/waiters-2.json +0 -81
  286. data/apis/marketplacecommerceanalytics/2015-07-01/api-2.json +0 -120
  287. data/apis/marketplacecommerceanalytics/2015-07-01/examples-1.json +0 -5
  288. data/apis/meteringmarketplace/2016-01-14/api-2.json +0 -127
  289. data/apis/meteringmarketplace/2016-01-14/examples-1.json +0 -5
  290. data/apis/monitoring/2010-08-01/api-2.json +0 -790
  291. data/apis/monitoring/2010-08-01/examples-1.json +0 -5
  292. data/apis/monitoring/2010-08-01/paginators-1.json +0 -24
  293. data/apis/monitoring/2010-08-01/resources-1.json +0 -346
  294. data/apis/monitoring/2010-08-01/waiters-2.json +0 -18
  295. data/apis/opsworks/2013-02-18/api-2.json +0 -2606
  296. data/apis/opsworks/2013-02-18/examples-1.json +0 -5
  297. data/apis/opsworks/2013-02-18/paginators-1.json +0 -55
  298. data/apis/opsworks/2013-02-18/resources-1.json +0 -173
  299. data/apis/opsworks/2013-02-18/waiters-2.json +0 -295
  300. data/apis/rds/2014-10-31/api-2.json +0 -4757
  301. data/apis/rds/2014-10-31/examples-1.json +0 -5
  302. data/apis/rds/2014-10-31/paginators-1.json +0 -110
  303. data/apis/rds/2014-10-31/resources-1.json +0 -3272
  304. data/apis/rds/2014-10-31/waiters-2.json +0 -102
  305. data/apis/redshift/2012-12-01/api-2.json +0 -3768
  306. data/apis/redshift/2012-12-01/examples-1.json +0 -5
  307. data/apis/redshift/2012-12-01/paginators-1.json +0 -94
  308. data/apis/redshift/2012-12-01/waiters-2.json +0 -97
  309. data/apis/route53/2013-04-01/api-2.json +0 -3245
  310. data/apis/route53/2013-04-01/examples-1.json +0 -5
  311. data/apis/route53/2013-04-01/paginators-1.json +0 -33
  312. data/apis/route53/2013-04-01/waiters-2.json +0 -18
  313. data/apis/route53domains/2014-05-15/api-2.json +0 -1197
  314. data/apis/route53domains/2014-05-15/paginators-1.json +0 -17
  315. data/apis/s3/2006-03-01/api-2.json +0 -4517
  316. data/apis/s3/2006-03-01/examples-1.json +0 -5
  317. data/apis/s3/2006-03-01/paginators-1.json +0 -66
  318. data/apis/s3/2006-03-01/resources-1.json +0 -1176
  319. data/apis/s3/2006-03-01/waiters-2.json +0 -73
  320. data/apis/sdb/2009-04-15/api-2.json +0 -954
  321. data/apis/sdb/2009-04-15/paginators-1.json +0 -15
  322. data/apis/servicecatalog/2015-12-10/api-2.json +0 -749
  323. data/apis/servicecatalog/2015-12-10/examples-1.json +0 -5
  324. data/apis/sns/2010-03-31/api-2.json +0 -1139
  325. data/apis/sns/2010-03-31/paginators-1.json +0 -29
  326. data/apis/sns/2010-03-31/resources-1.json +0 -327
  327. data/apis/sqs/2012-11-05/api-2.json +0 -950
  328. data/apis/sqs/2012-11-05/examples-1.json +0 -44
  329. data/apis/sqs/2012-11-05/paginators-1.json +0 -7
  330. data/apis/ssm/2014-11-06/api-2.json +0 -1796
  331. data/apis/ssm/2014-11-06/examples-1.json +0 -5
  332. data/apis/ssm/2014-11-06/paginators-1.json +0 -34
  333. data/apis/storagegateway/2013-06-30/api-2.json +0 -2275
  334. data/apis/storagegateway/2013-06-30/examples-1.json +0 -5
  335. data/apis/storagegateway/2013-06-30/paginators-1.json +0 -52
  336. data/apis/streams.dynamodb/2012-08-10/api-2.json +0 -397
  337. data/apis/streams.dynamodb/2012-08-10/examples-1.json +0 -5
  338. data/apis/sts/2011-06-15/api-2.json +0 -521
  339. data/apis/sts/2011-06-15/examples-1.json +0 -5
  340. data/apis/support/2013-04-15/api-2.json +0 -869
  341. data/apis/support/2013-04-15/paginators-1.json +0 -25
  342. data/apis/swf/2012-01-25/api-2.json +0 -2838
  343. data/apis/swf/2012-01-25/paginators-1.json +0 -46
  344. data/apis/waf/2015-08-24/api-2.json +0 -1959
  345. data/apis/waf/2015-08-24/examples-1.json +0 -5
  346. data/apis/workspaces/2015-04-08/api-2.json +0 -632
  347. data/apis/workspaces/2015-04-08/examples-1.json +0 -5
  348. data/apis/workspaces/2015-04-08/paginators-1.json +0 -20
  349. data/bin/aws.rb +0 -180
  350. data/endpoints.json +0 -1460
  351. data/lib/aws-sdk-core/acm.rb +0 -6
  352. data/lib/aws-sdk-core/api/builder.rb +0 -106
  353. data/lib/aws-sdk-core/api/customizations.rb +0 -217
  354. data/lib/aws-sdk-core/api/docs/builder.rb +0 -220
  355. data/lib/aws-sdk-core/api/docs/client_type_documenter.rb +0 -109
  356. data/lib/aws-sdk-core/api/docs/docstring_provider.rb +0 -75
  357. data/lib/aws-sdk-core/api/docs/operation_documenter.rb +0 -138
  358. data/lib/aws-sdk-core/api/docs/param_formatter.rb +0 -163
  359. data/lib/aws-sdk-core/api/docs/request_syntax_example.rb +0 -22
  360. data/lib/aws-sdk-core/api/docs/response_structure_example.rb +0 -91
  361. data/lib/aws-sdk-core/api/docs/shared_example.rb +0 -100
  362. data/lib/aws-sdk-core/api/docs/utils.rb +0 -133
  363. data/lib/aws-sdk-core/api/shape_map.rb +0 -142
  364. data/lib/aws-sdk-core/apigateway.rb +0 -6
  365. data/lib/aws-sdk-core/applicationautoscaling.rb +0 -6
  366. data/lib/aws-sdk-core/applicationdiscoveryservice.rb +0 -5
  367. data/lib/aws-sdk-core/autoscaling.rb +0 -8
  368. data/lib/aws-sdk-core/checksums.rb +0 -51
  369. data/lib/aws-sdk-core/client.rb +0 -57
  370. data/lib/aws-sdk-core/client_waiters.rb +0 -120
  371. data/lib/aws-sdk-core/cloudformation.rb +0 -8
  372. data/lib/aws-sdk-core/cloudfront.rb +0 -15
  373. data/lib/aws-sdk-core/cloudfront/url_signer.rb +0 -167
  374. data/lib/aws-sdk-core/cloudhsm.rb +0 -5
  375. data/lib/aws-sdk-core/cloudsearch.rb +0 -5
  376. data/lib/aws-sdk-core/cloudsearchdomain.rb +0 -5
  377. data/lib/aws-sdk-core/cloudtrail.rb +0 -6
  378. data/lib/aws-sdk-core/cloudwatch.rb +0 -8
  379. data/lib/aws-sdk-core/cloudwatchevents.rb +0 -5
  380. data/lib/aws-sdk-core/cloudwatchlogs.rb +0 -6
  381. data/lib/aws-sdk-core/codecommit.rb +0 -6
  382. data/lib/aws-sdk-core/codedeploy.rb +0 -6
  383. data/lib/aws-sdk-core/codepipeline.rb +0 -5
  384. data/lib/aws-sdk-core/cognitoidentity.rb +0 -5
  385. data/lib/aws-sdk-core/cognitoidentityprovider.rb +0 -5
  386. data/lib/aws-sdk-core/cognitosync.rb +0 -4
  387. data/lib/aws-sdk-core/configservice.rb +0 -6
  388. data/lib/aws-sdk-core/databasemigrationservice.rb +0 -5
  389. data/lib/aws-sdk-core/datapipeline.rb +0 -5
  390. data/lib/aws-sdk-core/devicefarm.rb +0 -6
  391. data/lib/aws-sdk-core/directconnect.rb +0 -6
  392. data/lib/aws-sdk-core/directoryservice.rb +0 -5
  393. data/lib/aws-sdk-core/dynamodb.rb +0 -40
  394. data/lib/aws-sdk-core/dynamodb/attribute_value.rb +0 -108
  395. data/lib/aws-sdk-core/dynamodbstreams.rb +0 -5
  396. data/lib/aws-sdk-core/ec2.rb +0 -8
  397. data/lib/aws-sdk-core/ecr.rb +0 -5
  398. data/lib/aws-sdk-core/ecs.rb +0 -7
  399. data/lib/aws-sdk-core/efs.rb +0 -5
  400. data/lib/aws-sdk-core/elasticache.rb +0 -7
  401. data/lib/aws-sdk-core/elasticbeanstalk.rb +0 -6
  402. data/lib/aws-sdk-core/elasticloadbalancing.rb +0 -6
  403. data/lib/aws-sdk-core/elasticsearchservice.rb +0 -4
  404. data/lib/aws-sdk-core/elastictranscoder.rb +0 -6
  405. data/lib/aws-sdk-core/empty_structure.rb +0 -3
  406. data/lib/aws-sdk-core/emr.rb +0 -7
  407. data/lib/aws-sdk-core/endpoint_provider.rb +0 -95
  408. data/lib/aws-sdk-core/firehose.rb +0 -4
  409. data/lib/aws-sdk-core/gamelift.rb +0 -5
  410. data/lib/aws-sdk-core/glacier.rb +0 -7
  411. data/lib/aws-sdk-core/iam.rb +0 -8
  412. data/lib/aws-sdk-core/importexport.rb +0 -5
  413. data/lib/aws-sdk-core/inspector.rb +0 -5
  414. data/lib/aws-sdk-core/iot.rb +0 -5
  415. data/lib/aws-sdk-core/iotdataplane.rb +0 -4
  416. data/lib/aws-sdk-core/kinesis.rb +0 -7
  417. data/lib/aws-sdk-core/kms.rb +0 -6
  418. data/lib/aws-sdk-core/lambda.rb +0 -6
  419. data/lib/aws-sdk-core/lambdapreview.rb +0 -5
  420. data/lib/aws-sdk-core/machinelearning.rb +0 -6
  421. data/lib/aws-sdk-core/marketplacecommerceanalytics.rb +0 -5
  422. data/lib/aws-sdk-core/marketplacemetering.rb +0 -5
  423. data/lib/aws-sdk-core/opsworks.rb +0 -8
  424. data/lib/aws-sdk-core/partitions.rb +0 -174
  425. data/lib/aws-sdk-core/partitions/partition.rb +0 -95
  426. data/lib/aws-sdk-core/partitions/partition_list.rb +0 -60
  427. data/lib/aws-sdk-core/partitions/region.rb +0 -78
  428. data/lib/aws-sdk-core/partitions/service.rb +0 -84
  429. data/lib/aws-sdk-core/plugins/api_gateway_header.rb +0 -19
  430. data/lib/aws-sdk-core/plugins/csd_conditional_signing.rb +0 -30
  431. data/lib/aws-sdk-core/plugins/dynamodb_crc32_validation.rb +0 -52
  432. data/lib/aws-sdk-core/plugins/dynamodb_extended_retries.rb +0 -22
  433. data/lib/aws-sdk-core/plugins/dynamodb_simple_attributes.rb +0 -209
  434. data/lib/aws-sdk-core/plugins/ec2_copy_encrypted_snapshot.rb +0 -87
  435. data/lib/aws-sdk-core/plugins/ec2_region_validation.rb +0 -17
  436. data/lib/aws-sdk-core/plugins/glacier_account_id.rb +0 -19
  437. data/lib/aws-sdk-core/plugins/glacier_api_version.rb +0 -19
  438. data/lib/aws-sdk-core/plugins/glacier_checksums.rb +0 -87
  439. data/lib/aws-sdk-core/plugins/machine_learning_predict_endpoint.rb +0 -20
  440. data/lib/aws-sdk-core/plugins/request_signer.rb +0 -138
  441. data/lib/aws-sdk-core/plugins/route_53_id_fix.rb +0 -55
  442. data/lib/aws-sdk-core/plugins/s3_accelerate.rb +0 -73
  443. data/lib/aws-sdk-core/plugins/s3_bucket_dns.rb +0 -86
  444. data/lib/aws-sdk-core/plugins/s3_bucket_name_restrictions.rb +0 -21
  445. data/lib/aws-sdk-core/plugins/s3_expect_100_continue.rb +0 -27
  446. data/lib/aws-sdk-core/plugins/s3_get_bucket_location_fix.rb +0 -21
  447. data/lib/aws-sdk-core/plugins/s3_http_200_errors.rb +0 -45
  448. data/lib/aws-sdk-core/plugins/s3_location_constraint.rb +0 -31
  449. data/lib/aws-sdk-core/plugins/s3_md5s.rb +0 -50
  450. data/lib/aws-sdk-core/plugins/s3_redirects.rb +0 -37
  451. data/lib/aws-sdk-core/plugins/s3_request_signer.rb +0 -166
  452. data/lib/aws-sdk-core/plugins/s3_sse_cpk.rb +0 -64
  453. data/lib/aws-sdk-core/plugins/s3_url_encoded_keys.rb +0 -92
  454. data/lib/aws-sdk-core/plugins/sqs_md5s.rb +0 -162
  455. data/lib/aws-sdk-core/plugins/sqs_queue_urls.rb +0 -34
  456. data/lib/aws-sdk-core/plugins/swf_read_timeouts.rb +0 -23
  457. data/lib/aws-sdk-core/rds.rb +0 -8
  458. data/lib/aws-sdk-core/redshift.rb +0 -7
  459. data/lib/aws-sdk-core/route53.rb +0 -7
  460. data/lib/aws-sdk-core/route53domains.rb +0 -5
  461. data/lib/aws-sdk-core/s3.rb +0 -26
  462. data/lib/aws-sdk-core/s3/bucket_region_cache.rb +0 -75
  463. data/lib/aws-sdk-core/s3/presigner.rb +0 -113
  464. data/lib/aws-sdk-core/service.rb +0 -4
  465. data/lib/aws-sdk-core/servicecatalog.rb +0 -5
  466. data/lib/aws-sdk-core/ses.rb +0 -7
  467. data/lib/aws-sdk-core/signers/base.rb +0 -31
  468. data/lib/aws-sdk-core/signers/s3.rb +0 -184
  469. data/lib/aws-sdk-core/signers/v2.rb +0 -51
  470. data/lib/aws-sdk-core/signers/v3.rb +0 -34
  471. data/lib/aws-sdk-core/signers/v4.rb +0 -233
  472. data/lib/aws-sdk-core/simpledb.rb +0 -5
  473. data/lib/aws-sdk-core/sns.rb +0 -6
  474. data/lib/aws-sdk-core/sqs.rb +0 -6
  475. data/lib/aws-sdk-core/ssm.rb +0 -6
  476. data/lib/aws-sdk-core/storagegateway.rb +0 -6
  477. data/lib/aws-sdk-core/sts.rb +0 -5
  478. data/lib/aws-sdk-core/support.rb +0 -5
  479. data/lib/aws-sdk-core/swf.rb +0 -5
  480. data/lib/aws-sdk-core/tree_hash.rb +0 -69
  481. data/lib/aws-sdk-core/version.rb +0 -3
  482. data/lib/aws-sdk-core/waf.rb +0 -5
  483. data/lib/aws-sdk-core/waiters/null_provider.rb +0 -12
  484. data/lib/aws-sdk-core/waiters/provider.rb +0 -35
  485. data/lib/aws-sdk-core/workspaces.rb +0 -6
  486. data/lib/seahorse/client/plugins/restful_bindings.rb +0 -127
  487. data/service-models.json +0 -285
@@ -0,0 +1,53 @@
1
+ require 'aws-eventstream'
2
+
3
+ module Aws
4
+ module Binary
5
+ # @api private
6
+ class EventStreamEncoder
7
+
8
+ # @param [String] protocol
9
+ # @param [ShapeRef] rules ShapeRef of the eventstream member
10
+ # @param [ShapeRef] input_ref ShapeRef of the input shape
11
+ # @param [Aws::Sigv4::Signer] signer
12
+ def initialize(protocol, rules, input_ref, signer)
13
+ @encoder = Aws::EventStream::Encoder.new
14
+ @event_builder = EventBuilder.new(serializer_class(protocol), rules)
15
+ @input_ref = input_ref
16
+ @rules = rules
17
+ @signer = signer
18
+ @prior_signature = nil
19
+ end
20
+
21
+ attr_reader :rules
22
+
23
+ attr_accessor :prior_signature
24
+
25
+ def encode(event_type, params)
26
+ if event_type == :end_stream
27
+ payload = ''
28
+ else
29
+ payload = @encoder.encode(@event_builder.apply(event_type, params))
30
+ end
31
+ headers, signature = @signer.sign_event(@prior_signature, payload, @encoder)
32
+ @prior_signature = signature
33
+ message = Aws::EventStream::Message.new(
34
+ headers: headers,
35
+ payload: StringIO.new(payload)
36
+ )
37
+ @encoder.encode(message)
38
+ end
39
+
40
+ private
41
+
42
+ def serializer_class(protocol)
43
+ case protocol
44
+ when 'rest-xml' then Xml::Builder
45
+ when 'rest-json' then Json::Builder
46
+ when 'json' then Json::Builder
47
+ else raise "unsupported protocol #{protocol} for event stream"
48
+ end
49
+ end
50
+
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,41 @@
1
+ require 'thread'
2
+ require 'socket'
3
+
4
+ module Aws
5
+ module ClientSideMonitoring
6
+ # @api private
7
+ class Publisher
8
+ attr_reader :agent_port
9
+
10
+ def initialize(opts = {})
11
+ @agent_port = opts[:agent_port]
12
+ @mutex = Mutex.new
13
+ end
14
+
15
+ def agent_port=(value)
16
+ @mutex.synchronize do
17
+ @agent_port = value
18
+ end
19
+ end
20
+
21
+ def publish(request_metrics)
22
+ send_datagram(request_metrics.api_call.to_json)
23
+ request_metrics.api_call_attempts.each do |attempt|
24
+ send_datagram(attempt.to_json)
25
+ end
26
+ end
27
+
28
+ def send_datagram(msg)
29
+ if @agent_port
30
+ socket = UDPSocket.new
31
+ begin
32
+ socket.connect("127.0.0.1", @agent_port)
33
+ socket.send(msg, 0)
34
+ rescue Errno::ECONNREFUSED
35
+ # Drop on the floor
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,197 @@
1
+ module Aws
2
+ module ClientSideMonitoring
3
+ # @api private
4
+ class RequestMetrics
5
+ attr_reader :api_call, :api_call_attempts
6
+
7
+ FIELD_MAX_LENGTH = {
8
+ "ClientId" => 255,
9
+ "UserAgent" => 256,
10
+ "SdkException" => 128,
11
+ "SdkExceptionMessage" => 512,
12
+ "AwsException" => 128,
13
+ "AwsExceptionMessage" => 512,
14
+ "FinalAwsException" => 128,
15
+ "FinalAwsExceptionMessage" => 512,
16
+ "FinalSdkException" => 128,
17
+ "FinalSdkExceptionMessage" => 512,
18
+ }
19
+
20
+ def initialize(opts = {})
21
+ @service = opts[:service]
22
+ @api = opts[:operation]
23
+ @client_id = opts[:client_id]
24
+ @timestamp = opts[:timestamp] # In epoch milliseconds
25
+ @region = opts[:region]
26
+ @version = 1
27
+ @api_call = ApiCall.new(@service, @api, @client_id, @version, @timestamp, @region)
28
+ @api_call_attempts = []
29
+ end
30
+
31
+ def build_call_attempt(opts = {})
32
+ timestamp = opts[:timestamp]
33
+ fqdn = opts[:fqdn]
34
+ region = opts[:region]
35
+ user_agent = opts[:user_agent]
36
+ access_key = opts[:access_key]
37
+ session_token = opts[:session_token]
38
+ ApiCallAttempt.new(
39
+ @service,
40
+ @api,
41
+ @client_id,
42
+ @version,
43
+ timestamp,
44
+ fqdn,
45
+ region,
46
+ user_agent,
47
+ access_key,
48
+ session_token
49
+ )
50
+ end
51
+
52
+ def add_call_attempt(attempt)
53
+ @api_call_attempts << attempt
54
+ end
55
+
56
+ class ApiCall
57
+ attr_reader :service, :api, :client_id, :timestamp, :version,
58
+ :attempt_count, :latency, :region, :max_retries_exceeded,
59
+ :final_http_status_code, :user_agent, :final_aws_exception,
60
+ :final_aws_exception_message, :final_sdk_exception,
61
+ :final_sdk_exception_message
62
+
63
+ def initialize(service, api, client_id, version, timestamp, region)
64
+ @service = service
65
+ @api = api
66
+ @client_id = client_id
67
+ @version = version
68
+ @timestamp = timestamp
69
+ @region = region
70
+ end
71
+
72
+ def complete(opts = {})
73
+ @latency = opts[:latency]
74
+ @attempt_count = opts[:attempt_count]
75
+ @user_agent = opts[:user_agent]
76
+ if opts[:final_error_retryable]
77
+ @max_retries_exceeded = 1
78
+ else
79
+ @max_retries_exceeded = 0
80
+ end
81
+ @final_http_status_code = opts[:final_http_status_code]
82
+ @final_aws_exception = opts[:final_aws_exception]
83
+ @final_aws_exception_message = opts[:final_aws_exception_message]
84
+ @final_sdk_exception = opts[:final_sdk_exception]
85
+ @final_sdk_exception_message = opts[:final_sdk_exception_message]
86
+ @region = opts[:region] if opts[:region] # in case region changes
87
+ end
88
+
89
+ def to_json(*a)
90
+ document = {
91
+ "Type" => "ApiCall",
92
+ "Service" => @service,
93
+ "Api" => @api,
94
+ "ClientId" => @client_id,
95
+ "Timestamp" => @timestamp,
96
+ "Version" => @version,
97
+ "AttemptCount" => @attempt_count,
98
+ "Latency" => @latency,
99
+ "Region" => @region,
100
+ "MaxRetriesExceeded" => @max_retries_exceeded,
101
+ "UserAgent" => @user_agent,
102
+ "FinalHttpStatusCode" => @final_http_status_code,
103
+ }
104
+ document["FinalSdkException"] = @final_sdk_exception if @final_sdk_exception
105
+ document["FinalSdkExceptionMessage"] = @final_sdk_exception_message if @final_sdk_exception_message
106
+ document["FinalAwsException"] = @final_aws_exception if @final_aws_exception
107
+ document["FinalAwsExceptionMessage"] = @final_aws_exception_message if @final_aws_exception_message
108
+ document = _truncate(document)
109
+ document.to_json
110
+ end
111
+
112
+ private
113
+ def _truncate(document)
114
+ document.each do |key, value|
115
+ limit = FIELD_MAX_LENGTH[key]
116
+ if limit && value.to_s.length > limit
117
+ document[key] = value.to_s.slice(0...limit)
118
+ end
119
+ end
120
+ document
121
+ end
122
+ end
123
+
124
+ class ApiCallAttempt
125
+ attr_reader :service, :api, :client_id, :version, :timestamp,
126
+ :user_agent, :access_key, :session_token
127
+ attr_accessor :region, :fqdn, :request_latency, :http_status_code,
128
+ :aws_exception_msg, :x_amz_request_id, :x_amz_id_2,
129
+ :x_amzn_request_id, :sdk_exception, :aws_exception, :sdk_exception_msg
130
+
131
+ def initialize(
132
+ service,
133
+ api,
134
+ client_id,
135
+ version,
136
+ timestamp,
137
+ fqdn,
138
+ region,
139
+ user_agent,
140
+ access_key,
141
+ session_token
142
+ )
143
+ @service = service
144
+ @api = api
145
+ @client_id = client_id
146
+ @version = version
147
+ @timestamp = timestamp
148
+ @fqdn = fqdn
149
+ @region = region
150
+ @user_agent = user_agent
151
+ @access_key = access_key
152
+ @session_token = session_token
153
+ end
154
+
155
+ def to_json(*a)
156
+ json = {
157
+ "Type" => "ApiCallAttempt",
158
+ "Service" => @service,
159
+ "Api" => @api,
160
+ "ClientId" => @client_id,
161
+ "Timestamp" => @timestamp,
162
+ "Version" => @version,
163
+ "Fqdn" => @fqdn,
164
+ "Region" => @region,
165
+ "UserAgent" => @user_agent,
166
+ "AccessKey" => @access_key
167
+ }
168
+ # Optional Fields
169
+ json["SessionToken"] = @session_token if @session_token
170
+ json["HttpStatusCode"] = @http_status_code if @http_status_code
171
+ json["AwsException"] = @aws_exception if @aws_exception
172
+ json["AwsExceptionMessage"] = @aws_exception_msg if @aws_exception_msg
173
+ json["XAmznRequestId"] = @x_amzn_request_id if @x_amzn_request_id
174
+ json["XAmzRequestId"] = @x_amz_request_id if @x_amz_request_id
175
+ json["XAmzId2"] = @x_amz_id_2 if @x_amz_id_2
176
+ json["AttemptLatency"] = @request_latency if @request_latency
177
+ json["SdkException"] = @sdk_exception if @sdk_exception
178
+ json["SdkExceptionMessage"] = @sdk_exception_msg if @sdk_exception_msg
179
+ json = _truncate(json)
180
+ json.to_json
181
+ end
182
+
183
+ private
184
+ def _truncate(document)
185
+ document.each do |key, value|
186
+ limit = FIELD_MAX_LENGTH[key]
187
+ if limit && value.to_s.length > limit
188
+ document[key] = value.to_s.slice(0...limit)
189
+ end
190
+ end
191
+ document
192
+ end
193
+ end
194
+
195
+ end
196
+ end
197
+ end
@@ -6,6 +6,9 @@ module Aws
6
6
  # return when a client is using stubbed responses. Pass
7
7
  # `:stub_responses => true` to a client constructor to enable this
8
8
  # behavior.
9
+ #
10
+ # Also allows you to see the requests made by the client by reading the
11
+ # api_requests instance variable
9
12
  module ClientStubs
10
13
 
11
14
  # @api private
@@ -16,7 +19,19 @@ module Aws
16
19
  @config.stub_responses.each do |operation_name, stubs|
17
20
  apply_stubs(operation_name, Array === stubs ? stubs : [stubs])
18
21
  end
19
- @config.stub_responses = true
22
+ end
23
+
24
+ # When a client is stubbed allow the user to access the requests made
25
+ @api_requests = []
26
+
27
+ requests = @api_requests
28
+ self.handle do |context|
29
+ requests << {
30
+ operation_name: context.operation_name,
31
+ params: context.params,
32
+ context: context
33
+ }
34
+ @handler.call(context)
20
35
  end
21
36
  end
22
37
 
@@ -50,8 +65,18 @@ module Aws
50
65
  # buckets: [{ name: 'my-bucket' }]
51
66
  # })
52
67
  #
53
- # client.list_buckets.buckets.map(&:name) #=> ['my-bucket']
54
- # #=> ['aws-sdk']
68
+ # client.list_buckets.buckets.map(&:name)
69
+ # #=> ['my-bucket']
70
+ #
71
+ # With a Resource class {#stub_responses} on the corresponding client:
72
+ #
73
+ # s3 = Aws::S3::Resource.new(stub_responses: true)
74
+ # s3.client.stub_responses(:list_buckets, {
75
+ # buckets: [{ name: 'my-bucket' }]
76
+ # })
77
+ #
78
+ # s3.buckets.map(&:name)
79
+ # #=> ['my-bucket']
55
80
  #
56
81
  # Lastly, default stubs can be configured via `Aws.config`:
57
82
  #
@@ -64,6 +89,22 @@ module Aws
64
89
  # Aws::S3::Client.new.list_buckets.buckets.map(&:name)
65
90
  # #=> ['my-bucket']
66
91
  #
92
+ # Aws::S3::Resource.new.buckets.map(&:name)
93
+ # #=> ['my-bucket']
94
+ #
95
+ # ## Dynamic Stubbing
96
+ #
97
+ # In addition to creating static stubs, it's also possible to generate
98
+ # stubs dynamically based on the parameters with which operations were
99
+ # called, by passing a `Proc` object:
100
+ #
101
+ # s3 = Aws::S3::Resource.new(stub_responses: true)
102
+ # s3.client.stub_responses(:put_object, -> (context) {
103
+ # s3.client.stub_responses(:get_object, content_type: context.params[:content_type])
104
+ # })
105
+ #
106
+ # The yielded object is an instance of {Seahorse::Client::RequestContext}.
107
+ #
67
108
  # ## Stubbing Errors
68
109
  #
69
110
  # When stubbing is enabled, the SDK will default to generate
@@ -141,6 +182,27 @@ module Aws
141
182
  end
142
183
  end
143
184
 
185
+ # Allows you to access all of the requests that the stubbed client has made
186
+ #
187
+ # @params [Boolean] exclude_presign Setting to true for filtering out not sent requests from
188
+ # generating presigned urls. Default to false.
189
+ # @return [Array] Returns an array of the api requests made, each request object contains the
190
+ # :operation_name, :params, and :context of the request.
191
+ # @raise [NotImplementedError] Raises `NotImplementedError` when the client is not stubbed
192
+ def api_requests(options = {})
193
+ if config.stub_responses
194
+ if options[:exclude_presign]
195
+ @api_requests.reject {|req| req[:context][:presigned_url] }
196
+ else
197
+ @api_requests
198
+ end
199
+ else
200
+ msg = 'This method is only implemented for stubbed clients, and is '
201
+ msg << 'available when you enable stubbing in the constructor with `stub_responses: true`'
202
+ raise NotImplementedError.new(msg)
203
+ end
204
+ end
205
+
144
206
  # Generates and returns stubbed response data from the named operation.
145
207
  #
146
208
  # s3 = Aws::S3::Client.new
@@ -160,7 +222,7 @@ module Aws
160
222
  # @return [Structure] Returns a stubbed response data structure. The
161
223
  # actual class returned will depend on the given `operation_name`.
162
224
  def stub_data(operation_name, data = {})
163
- Stubbing::StubData.new(operation(operation_name)).stub(data)
225
+ Stubbing::StubData.new(config.api.operation(operation_name)).stub(data)
164
226
  end
165
227
 
166
228
  # @api private
@@ -229,17 +291,18 @@ module Aws
229
291
  def data_to_http_resp(operation_name, data)
230
292
  api = config.api
231
293
  operation = api.operation(operation_name)
232
- ParamValidator.validate!(operation.output, data)
294
+ ParamValidator.new(operation.output, input: false).validate!(data)
233
295
  protocol_helper.stub_data(api, operation, data)
234
296
  end
235
297
 
236
298
  def protocol_helper
237
299
  case config.api.metadata['protocol']
238
- when 'json' then Stubbing::Protocols::Json
239
- when 'query' then Stubbing::Protocols::Query
240
- when 'ec2' then Stubbing::Protocols::EC2
241
- when 'rest-json' then Stubbing::Protocols::RestJson
242
- when 'rest-xml' then Stubbing::Protocols::RestXml
300
+ when 'json' then Stubbing::Protocols::Json
301
+ when 'query' then Stubbing::Protocols::Query
302
+ when 'ec2' then Stubbing::Protocols::EC2
303
+ when 'rest-json' then Stubbing::Protocols::RestJson
304
+ when 'rest-xml' then Stubbing::Protocols::RestXml
305
+ when 'api-gateway' then Stubbing::Protocols::ApiGateway
243
306
  else raise "unsupported protocol"
244
307
  end.new
245
308
  end
@@ -1,3 +1,5 @@
1
+ require_relative 'deprecations'
2
+
1
3
  module Aws
2
4
  module CredentialProvider
3
5
 
@@ -23,10 +23,11 @@ module Aws
23
23
  [:env_credentials, {}],
24
24
  [:assume_role_credentials, {}],
25
25
  [:shared_credentials, {}],
26
+ [:process_credentials, {}],
26
27
  [:instance_profile_credentials, {
27
- retries: 0,
28
- http_open_timeout: 1,
29
- http_read_timeout: 1,
28
+ retries: @config ? @config.instance_profile_credentials_retries : 0,
29
+ http_open_timeout: @config ? @config.instance_profile_credentials_timeout : 1,
30
+ http_read_timeout: @config ? @config.instance_profile_credentials_timeout : 1,
30
31
  }],
31
32
  ]
32
33
  end
@@ -62,7 +63,22 @@ module Aws
62
63
  if options[:config]
63
64
  SharedCredentials.new(profile_name: options[:config].profile)
64
65
  else
65
- SharedCredentials.new(profile_name: 'default')
66
+ SharedCredentials.new(
67
+ profile_name: ENV['AWS_PROFILE'].nil? ? 'default' : ENV['AWS_PROFILE'])
68
+ end
69
+ rescue Errors::NoSuchProfileError
70
+ nil
71
+ end
72
+
73
+ def process_credentials(options)
74
+ profile_name = options[:config].profile if options[:config]
75
+ profile_name ||= ENV['AWS_PROFILE'].nil? ? 'default' : ENV['AWS_PROFILE']
76
+
77
+ config = Aws.shared_config
78
+ if config.config_enabled? && process_provider = config.credentials_process(profile_name)
79
+ ProcessCredentials.new(process_provider)
80
+ else
81
+ nil
66
82
  end
67
83
  rescue Errors::NoSuchProfileError
68
84
  nil
@@ -93,7 +109,8 @@ module Aws
93
109
  def assume_role_with_profile(prof, region)
94
110
  Aws.shared_config.assume_role_credentials_from_config(
95
111
  profile: prof,
96
- region: region
112
+ region: region,
113
+ chain_config: @config
97
114
  )
98
115
  end
99
116