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,30 @@
1
+ module Aws
2
+ module Plugins
3
+
4
+ # apply APIG custom authorizer token to
5
+ # operations with 'authtype' of 'custom' only
6
+ class APIGAuthorizerToken < Seahorse::Client::Plugin
7
+
8
+ option(:authorizer_token, default: nil)
9
+
10
+ def add_handlers(handlers, config)
11
+ handlers.add(AuthTokenHandler, step: :sign)
12
+ end
13
+
14
+ # @api private
15
+ class AuthTokenHandler < Seahorse::Client::Handler
16
+
17
+ def call(context)
18
+ if context.operation['authtype'] == 'custom' &&
19
+ context.config.authorizer_token &&
20
+ context.authorizer.placement[:location] == 'header'
21
+
22
+ header = context.authorizer.placement[:name]
23
+ context.http_request.headers[header] = context.config.authorizer_token
24
+ end
25
+ @handler.call(context)
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,34 @@
1
+ module Aws
2
+ # @api private
3
+ module Plugins
4
+ # @api private
5
+ # Used for APIGateway generated SDKs credentials config
6
+ class APIGCredentialsConfiguration < Seahorse::Client::Plugin
7
+
8
+ option(:access_key_id, doc_type: String, docstring: '')
9
+
10
+ option(:secret_access_key, doc_type: String, docstring: '')
11
+
12
+ option(:session_token, doc_type: String, docstring: '')
13
+
14
+ option(:profile, doc_type: String, docstring: '')
15
+
16
+ option(:credentials,
17
+ required: false,
18
+ doc_type: 'Aws::CredentialProvider',
19
+ docstring: <<-DOCS
20
+ AWS Credentials options is only required when your API uses
21
+ [AWS Signature Version 4](http://docs.aws.amazon.com/general/latest/gr/signature-version-4.html),
22
+ more AWS Credentials Configuration Options are available [here](https://github.com/aws/aws-sdk-ruby#configuration).
23
+ DOCS
24
+ ) do |config|
25
+ CredentialProviderChain.new(config).resolve
26
+ end
27
+
28
+ option(:instance_profile_credentials_retries, 0)
29
+
30
+ option(:instance_profile_credentials_timeout, 1)
31
+
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,37 @@
1
+ module Aws
2
+ module Plugins
3
+ # @api private
4
+ class APIGUserAgent < Seahorse::Client::Plugin
5
+
6
+ option(:user_agent_suffix)
7
+
8
+ # @api private
9
+ class Handler < Seahorse::Client::Handler
10
+
11
+ def call(context)
12
+ set_user_agent(context)
13
+ @handler.call(context)
14
+ end
15
+
16
+ def set_user_agent(context)
17
+ ua = "aws-apig-ruby/#{CORE_GEM_VERSION}"
18
+
19
+ begin
20
+ ua += " #{RUBY_ENGINE}/#{RUBY_VERSION}"
21
+ rescue
22
+ ua += " RUBY_ENGINE_NA/#{RUBY_VERSION}"
23
+ end
24
+
25
+ ua += " #{RUBY_PLATFORM}"
26
+ ua += " #{context.config.user_agent_suffix}" if context.config.user_agent_suffix
27
+
28
+ context.http_request.headers['User-Agent'] = ua.strip
29
+ end
30
+
31
+ end
32
+
33
+ handler(Handler)
34
+
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,256 @@
1
+ require 'date'
2
+
3
+ module Aws
4
+ module Plugins
5
+ class ClientMetricsPlugin < Seahorse::Client::Plugin
6
+
7
+ option(:client_side_monitoring,
8
+ default: false,
9
+ doc_type: 'Boolean',
10
+ docstring: <<-DOCS) do |cfg|
11
+ When `true`, client-side metrics will be collected for all API requests from
12
+ this client.
13
+ DOCS
14
+ resolve_client_side_monitoring(cfg)
15
+ end
16
+
17
+ option(:client_side_monitoring_port,
18
+ default: 31000,
19
+ doc_type: Integer,
20
+ docstring: <<-DOCS) do |cfg|
21
+ Required for publishing client metrics. The port that the client side monitoring
22
+ agent is running on, where client metrics will be published via UDP.
23
+ DOCS
24
+ resolve_client_side_monitoring_port(cfg)
25
+ end
26
+
27
+ option(:client_side_monitoring_publisher,
28
+ default: ClientSideMonitoring::Publisher,
29
+ doc_type: Aws::ClientSideMonitoring::Publisher,
30
+ docstring: <<-DOCS) do |cfg|
31
+ Allows you to provide a custom client-side monitoring publisher class. By default,
32
+ will use the Client Side Monitoring Agent Publisher.
33
+ DOCS
34
+ resolve_publisher(cfg)
35
+ end
36
+
37
+ option(:client_side_monitoring_client_id,
38
+ default: "",
39
+ doc_type: String,
40
+ docstring: <<-DOCS) do |cfg|
41
+ Allows you to provide an identifier for this client which will be attached to
42
+ all generated client side metrics. Defaults to an empty string.
43
+ DOCS
44
+ resolve_client_id(cfg)
45
+ end
46
+
47
+ def add_handlers(handlers, config)
48
+ if config.client_side_monitoring && config.client_side_monitoring_port
49
+ handlers.add(Handler, step: :initialize)
50
+ publisher = config.client_side_monitoring_publisher
51
+ publisher.agent_port = config.client_side_monitoring_port
52
+ end
53
+ end
54
+
55
+ private
56
+ def self.resolve_publisher(cfg)
57
+ ClientSideMonitoring::Publisher.new
58
+ end
59
+
60
+ def self.resolve_client_side_monitoring_port(cfg)
61
+ env_source = ENV["AWS_CSM_PORT"]
62
+ env_source = nil if env_source == ""
63
+ cfg_source = Aws.shared_config.csm_port(profile: cfg.profile)
64
+ if env_source
65
+ env_source.to_i
66
+ elsif cfg_source
67
+ cfg_source.to_i
68
+ else
69
+ 31000
70
+ end
71
+ end
72
+
73
+ def self.resolve_client_side_monitoring(cfg)
74
+ env_source = ENV["AWS_CSM_ENABLED"]
75
+ env_source = nil if env_source == ""
76
+ if env_source.is_a?(String) && (env_source.downcase == "false" || env_source.downcase == "f")
77
+ env_source = false
78
+ end
79
+ cfg_source = Aws.shared_config.csm_enabled(profile: cfg.profile)
80
+ if env_source || cfg_source
81
+ true
82
+ else
83
+ false
84
+ end
85
+ end
86
+
87
+ def self.resolve_client_id(cfg)
88
+ default = ""
89
+ env_source = ENV["AWS_CSM_CLIENT_ID"]
90
+ env_source = nil if env_source == ""
91
+ cfg_source = Aws.shared_config.csm_client_id(profile: cfg.profile)
92
+ env_source || cfg_source || default
93
+ end
94
+
95
+ class Handler < Seahorse::Client::Handler
96
+ def call(context)
97
+ publisher = context.config.client_side_monitoring_publisher
98
+ service_id = context.config.api.metadata["serviceId"]
99
+ # serviceId not present in all versions, need a fallback
100
+ service_id ||= _calculate_service_id(context)
101
+
102
+ request_metrics = ClientSideMonitoring::RequestMetrics.new(
103
+ service: service_id,
104
+ operation: context.operation.name,
105
+ client_id: context.config.client_side_monitoring_client_id,
106
+ region: context.config.region,
107
+ timestamp: DateTime.now.strftime('%Q').to_i,
108
+ )
109
+ context.metadata[:client_metrics] = request_metrics
110
+ start_time = Aws::Util.monotonic_milliseconds
111
+ final_error_retryable = false
112
+ final_aws_exception = nil
113
+ final_aws_exception_message = nil
114
+ final_sdk_exception = nil
115
+ final_sdk_exception_message = nil
116
+ begin
117
+ @handler.call(context)
118
+ rescue StandardError => e
119
+ # Handle SDK Exceptions
120
+ inspector = Aws::Plugins::RetryErrors::ErrorInspector.new(
121
+ e,
122
+ context.http_response.status_code
123
+ )
124
+ if inspector.retryable?(context)
125
+ final_error_retryable = true
126
+ end
127
+ if request_metrics.api_call_attempts.empty?
128
+ attempt = request_metrics.build_call_attempt
129
+ attempt.sdk_exception = e.class.to_s
130
+ attempt.sdk_exception_msg = e.message
131
+ request_metrics.add_call_attempt(attempt)
132
+ elsif request_metrics.api_call_attempts.last.aws_exception.nil?
133
+ # Handle exceptions during response handlers
134
+ attempt = request_metrics.api_call_attempts.last
135
+ attempt.sdk_exception = e.class.to_s
136
+ attempt.sdk_exception_msg = e.message
137
+ elsif !e.class.to_s.match(request_metrics.api_call_attempts.last.aws_exception)
138
+ # Handle response handling exceptions that happened in addition to
139
+ # an AWS exception
140
+ attempt = request_metrics.api_call_attempts.last
141
+ attempt.sdk_exception = e.class.to_s
142
+ attempt.sdk_exception_msg = e.message
143
+ end # Else we don't have an SDK exception and are done.
144
+ final_attempt = request_metrics.api_call_attempts.last
145
+ final_aws_exception = final_attempt.aws_exception
146
+ final_aws_exception_message = final_attempt.aws_exception_msg
147
+ final_sdk_exception = final_attempt.sdk_exception
148
+ final_sdk_exception_message = final_attempt.sdk_exception_msg
149
+ raise e
150
+ ensure
151
+ end_time = Aws::Util.monotonic_milliseconds
152
+ complete_opts = {
153
+ latency: end_time - start_time,
154
+ attempt_count: context.retries + 1,
155
+ user_agent: context.http_request.headers["user-agent"],
156
+ final_error_retryable: final_error_retryable,
157
+ final_http_status_code: context.http_response.status_code,
158
+ final_aws_exception: final_aws_exception,
159
+ final_aws_exception_message: final_aws_exception_message,
160
+ final_sdk_exception: final_sdk_exception,
161
+ final_sdk_exception_message: final_sdk_exception_message
162
+ }
163
+ if context.metadata[:redirect_region]
164
+ complete_opts[:region] = context.metadata[:redirect_region]
165
+ end
166
+ request_metrics.api_call.complete(complete_opts)
167
+ # Report the metrics by passing the complete RequestMetrics object
168
+ if publisher
169
+ publisher.publish(request_metrics)
170
+ end # Else we drop all this on the floor.
171
+ end
172
+ end
173
+
174
+ private
175
+ def _calculate_service_id(context)
176
+ class_name = context.client.class.to_s.match(/(.+)::Client/)[1]
177
+ class_name.sub!(/^Aws::/, '')
178
+ _fallback_service_id(class_name)
179
+ end
180
+
181
+ def _fallback_service_id(id)
182
+ # Need hard-coded exceptions since information needed to
183
+ # reverse-engineer serviceId is not present in older versions.
184
+ # This list should not need to grow.
185
+ exceptions = {
186
+ "ACMPCA" => "ACM PCA",
187
+ "APIGateway" => "API Gateway",
188
+ "AlexaForBusiness" => "Alexa For Business",
189
+ "ApplicationAutoScaling" => "Application Auto Scaling",
190
+ "ApplicationDiscoveryService" => "Application Discovery Service",
191
+ "AutoScaling" => "Auto Scaling",
192
+ "AutoScalingPlans" => "Auto Scaling Plans",
193
+ "CloudHSMV2" => "CloudHSM V2",
194
+ "CloudSearchDomain" => "CloudSearch Domain",
195
+ "CloudWatchEvents" => "CloudWatch Events",
196
+ "CloudWatchLogs" => "CloudWatch Logs",
197
+ "CognitoIdentity" => "Cognito Identity",
198
+ "CognitoIdentityProvider" => "Cognito Identity Provider",
199
+ "CognitoSync" => "Cognito Sync",
200
+ "ConfigService" => "Config Service",
201
+ "CostExplorer" => "Cost Explorer",
202
+ "CostandUsageReportService" => "Cost and Usage Report Service",
203
+ "DataPipeline" => "Data Pipeline",
204
+ "DatabaseMigrationService" => "Database Migration Service",
205
+ "DeviceFarm" => "Device Farm",
206
+ "DirectConnect" => "Direct Connect",
207
+ "DirectoryService" => "Directory Service",
208
+ "DynamoDBStreams" => "DynamoDB Streams",
209
+ "ElasticBeanstalk" => "Elastic Beanstalk",
210
+ "ElasticLoadBalancing" => "Elastic Load Balancing",
211
+ "ElasticLoadBalancingV2" => "Elastic Load Balancing v2",
212
+ "ElasticTranscoder" => "Elastic Transcoder",
213
+ "ElasticsearchService" => "Elasticsearch Service",
214
+ "IoTDataPlane" => "IoT Data Plane",
215
+ "IoTJobsDataPlane" => "IoT Jobs Data Plane",
216
+ "IoT1ClickDevicesService" => "IoT 1Click Devices Service",
217
+ "IoT1ClickProjects" => "IoT 1Click Projects",
218
+ "KinesisAnalytics" => "Kinesis Analytics",
219
+ "KinesisVideo" => "Kinesis Video",
220
+ "KinesisVideoArchivedMedia" => "Kinesis Video Archived Media",
221
+ "KinesisVideoMedia" => "Kinesis Video Media",
222
+ "LambdaPreview" => "Lambda",
223
+ "Lex" => "Lex Runtime Service",
224
+ "LexModelBuildingService" => "Lex Model Building Service",
225
+ "Lightsail" => "Lightsail",
226
+ "MQ" => "mq",
227
+ "MachineLearning" => "Machine Learning",
228
+ "MarketplaceCommerceAnalytics" => "Marketplace Commerce Analytics",
229
+ "MarketplaceEntitlementService" => "Marketplace Entitlement Service",
230
+ "MarketplaceMetering" => "Marketplace Metering",
231
+ "MediaStoreData" => "MediaStore Data",
232
+ "MigrationHub" => "Migration Hub",
233
+ "ResourceGroups" => "Resource Groups",
234
+ "ResourceGroupsTaggingAPI" => "Resource Groups Tagging API",
235
+ "Route53" => "Route 53",
236
+ "Route53Domains" => "Route 53 Domains",
237
+ "SecretsManager" => "Secrets Manager",
238
+ "SageMakerRuntime" => "SageMaker Runtime",
239
+ "ServiceCatalog" => "Service Catalog",
240
+ "ServiceDiscovery" => "ServiceDiscovery",
241
+ "Signer" => "signer",
242
+ "States" => "SFN",
243
+ "StorageGateway" => "Storage Gateway",
244
+ "TranscribeService" => "Transcribe Service",
245
+ "WAFRegional" => "WAF Regional",
246
+ }
247
+ if exceptions[id]
248
+ exceptions[id]
249
+ else
250
+ id
251
+ end
252
+ end
253
+ end
254
+ end
255
+ end
256
+ end
@@ -0,0 +1,84 @@
1
+ require 'date'
2
+
3
+ module Aws
4
+ module Plugins
5
+ class ClientMetricsSendPlugin < Seahorse::Client::Plugin
6
+
7
+ def add_handlers(handlers, config)
8
+ if config.client_side_monitoring && config.client_side_monitoring_port
9
+ # AttemptHandler comes just before we would retry an error.
10
+ # Or before we would follow redirects.
11
+ handlers.add(AttemptHandler, step: :sign, priority: 39)
12
+ # LatencyHandler is as close to sending as possible.
13
+ handlers.add(LatencyHandler, step: :sign, priority: 0)
14
+ end
15
+ end
16
+
17
+ class LatencyHandler < Seahorse::Client::Handler
18
+ def call(context)
19
+ start_time = Aws::Util.monotonic_milliseconds
20
+ resp = @handler.call(context)
21
+ end_time = Aws::Util.monotonic_milliseconds
22
+ latency = end_time - start_time
23
+ context.metadata[:current_call_attempt].request_latency = latency
24
+ resp
25
+ end
26
+ end
27
+
28
+ class AttemptHandler < Seahorse::Client::Handler
29
+ def call(context)
30
+ request_metrics = context.metadata[:client_metrics]
31
+ attempt_opts = {
32
+ timestamp: DateTime.now.strftime('%Q').to_i,
33
+ fqdn: context.http_request.endpoint.host,
34
+ region: context.config.region,
35
+ user_agent: context.http_request.headers["user-agent"],
36
+ }
37
+ # It will generally cause an error, but it is semantically valid for
38
+ # credentials to not exist.
39
+ if context.config.credentials
40
+ attempt_opts[:access_key] =
41
+ context.config.credentials.credentials.access_key_id
42
+ attempt_opts[:session_token] =
43
+ context.config.credentials.credentials.session_token
44
+ end
45
+ call_attempt = request_metrics.build_call_attempt(attempt_opts)
46
+ context.metadata[:current_call_attempt] = call_attempt
47
+
48
+ resp = @handler.call(context)
49
+ if context.metadata[:redirect_region]
50
+ call_attempt.region = context.metadata[:redirect_region]
51
+ end
52
+ headers = context.http_response.headers
53
+ if headers.include?("x-amz-id-2")
54
+ call_attempt.x_amz_id_2 = headers["x-amz-id-2"]
55
+ end
56
+ if headers.include?("x-amz-request-id")
57
+ call_attempt.x_amz_request_id = headers["x-amz-request-id"]
58
+ end
59
+ if headers.include?("x-amzn-request-id")
60
+ call_attempt.x_amzn_request_id = headers["x-amzn-request-id"]
61
+ end
62
+ call_attempt.http_status_code = context.http_response.status_code
63
+ if e = resp.error
64
+ e_name = _extract_error_name(e)
65
+ e_msg = e.message
66
+ call_attempt.aws_exception = "#{e_name}"
67
+ call_attempt.aws_exception_msg = "#{e_msg}"
68
+ end
69
+ request_metrics.add_call_attempt(call_attempt)
70
+ resp
71
+ end
72
+
73
+ private
74
+ def _extract_error_name(error)
75
+ if error.is_a?(Aws::Errors::ServiceError)
76
+ error.class.code
77
+ else
78
+ error.class.name.to_s
79
+ end
80
+ end
81
+ end
82
+ end
83
+ end
84
+ end
@@ -0,0 +1,62 @@
1
+ module Aws
2
+ # @api private
3
+ module Plugins
4
+ # @api private
5
+ class CredentialsConfiguration < Seahorse::Client::Plugin
6
+
7
+ option(:access_key_id, doc_type: String, docstring: '')
8
+
9
+ option(:secret_access_key, doc_type: String, docstring: '')
10
+
11
+ option(:session_token, doc_type: String, docstring: '')
12
+
13
+ option(:profile,
14
+ doc_default: 'default',
15
+ doc_type: String,
16
+ docstring: <<-DOCS)
17
+ Used when loading credentials from the shared credentials file
18
+ at HOME/.aws/credentials. When not specified, 'default' is used.
19
+ DOCS
20
+
21
+ option(:credentials,
22
+ required: true,
23
+ doc_type: 'Aws::CredentialProvider',
24
+ docstring: <<-DOCS
25
+ Your AWS credentials. This can be an instance of any one of the
26
+ following classes:
27
+
28
+ * `Aws::Credentials` - Used for configuring static, non-refreshing
29
+ credentials.
30
+
31
+ * `Aws::InstanceProfileCredentials` - Used for loading credentials
32
+ from an EC2 IMDS on an EC2 instance.
33
+
34
+ * `Aws::SharedCredentials` - Used for loading credentials from a
35
+ shared file, such as `~/.aws/config`.
36
+
37
+ * `Aws::AssumeRoleCredentials` - Used when you need to assume a role.
38
+
39
+ When `:credentials` are not configured directly, the following
40
+ locations will be searched for credentials:
41
+
42
+ * `Aws.config[:credentials]`
43
+ * The `:access_key_id`, `:secret_access_key`, and `:session_token` options.
44
+ * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY']
45
+ * `~/.aws/credentials`
46
+ * `~/.aws/config`
47
+ * EC2 IMDS instance profile - When used by default, the timeouts are
48
+ very aggressive. Construct and pass an instance of
49
+ `Aws::InstanceProfileCredentails` to enable retries and extended
50
+ timeouts.
51
+ DOCS
52
+ ) do |config|
53
+ CredentialProviderChain.new(config).resolve
54
+ end
55
+
56
+ option(:instance_profile_credentials_retries, 0)
57
+
58
+ option(:instance_profile_credentials_timeout, 1)
59
+
60
+ end
61
+ end
62
+ end