aws-sdk 1.32.0 → 3.0.2

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 (551) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +100 -0
  3. data/LICENSE.txt +199 -9
  4. data/VERSION +1 -0
  5. data/lib/aws-sdk.rb +2 -14
  6. metadata +22 -591
  7. data/.yardopts +0 -7
  8. data/README.md +0 -291
  9. data/bin/aws-rb +0 -169
  10. data/ca-bundle.crt +0 -3554
  11. data/endpoints.json +0 -1506
  12. data/lib/aws.rb +0 -14
  13. data/lib/aws/api_config/AutoScaling-2011-01-01.yml +0 -869
  14. data/lib/aws/api_config/CloudFormation-2010-05-15.yml +0 -358
  15. data/lib/aws/api_config/CloudFront-2013-05-12.yml +0 -2448
  16. data/lib/aws/api_config/CloudFront-2013-08-26.yml +0 -2599
  17. data/lib/aws/api_config/CloudFront-2013-09-27.yml +0 -2765
  18. data/lib/aws/api_config/CloudFront-2013-11-11.yml +0 -2886
  19. data/lib/aws/api_config/CloudSearch-2011-02-01.yml +0 -681
  20. data/lib/aws/api_config/CloudTrail-2013-11-01.yml +0 -159
  21. data/lib/aws/api_config/CloudWatch-2010-08-01.yml +0 -433
  22. data/lib/aws/api_config/DataPipeline-2012-10-29.yml +0 -422
  23. data/lib/aws/api_config/DirectConnect-2012-10-25.yml +0 -735
  24. data/lib/aws/api_config/DynamoDB-2011-12-05.yml +0 -1168
  25. data/lib/aws/api_config/DynamoDB-2012-08-10.yml +0 -2005
  26. data/lib/aws/api_config/EC2-2013-08-15.yml +0 -4708
  27. data/lib/aws/api_config/EC2-2013-10-01.yml +0 -4726
  28. data/lib/aws/api_config/EC2-2013-10-15.yml +0 -4726
  29. data/lib/aws/api_config/ELB-2012-06-01.yml +0 -632
  30. data/lib/aws/api_config/EMR-2009-03-31.yml +0 -953
  31. data/lib/aws/api_config/ElastiCache-2013-06-15.yml +0 -1188
  32. data/lib/aws/api_config/ElasticBeanstalk-2010-12-01.yml +0 -847
  33. data/lib/aws/api_config/ElasticTranscoder-2012-09-25.yml +0 -2285
  34. data/lib/aws/api_config/Glacier-2012-06-01.yml +0 -649
  35. data/lib/aws/api_config/IAM-2010-05-08.yml +0 -1297
  36. data/lib/aws/api_config/ImportExport-2010-06-01.yml +0 -109
  37. data/lib/aws/api_config/Kinesis-2013-12-02.yml +0 -201
  38. data/lib/aws/api_config/OpsWorks-2013-02-18.yml +0 -1825
  39. data/lib/aws/api_config/RDS-2013-05-15.yml +0 -2464
  40. data/lib/aws/api_config/RDS-2013-09-09.yml +0 -2641
  41. data/lib/aws/api_config/Redshift-2012-12-01.yml +0 -2137
  42. data/lib/aws/api_config/Route53-2012-12-12.yml +0 -547
  43. data/lib/aws/api_config/SNS-2010-03-31.yml +0 -433
  44. data/lib/aws/api_config/SQS-2012-11-05.yml +0 -319
  45. data/lib/aws/api_config/STS-2011-06-15.yml +0 -147
  46. data/lib/aws/api_config/SimpleDB-2009-04-15.yml +0 -306
  47. data/lib/aws/api_config/SimpleEmailService-2010-12-01.yml +0 -346
  48. data/lib/aws/api_config/SimpleWorkflow-2012-01-25.yml +0 -2388
  49. data/lib/aws/api_config/StorageGateway-2012-06-30.yml +0 -748
  50. data/lib/aws/api_config/StorageGateway-2013-06-30.yml +0 -1025
  51. data/lib/aws/api_config/Support-2013-04-15.yml +0 -426
  52. data/lib/aws/auto_scaling.rb +0 -163
  53. data/lib/aws/auto_scaling/activity.rb +0 -102
  54. data/lib/aws/auto_scaling/activity_collection.rb +0 -81
  55. data/lib/aws/auto_scaling/client.rb +0 -48
  56. data/lib/aws/auto_scaling/config.rb +0 -18
  57. data/lib/aws/auto_scaling/errors.rb +0 -22
  58. data/lib/aws/auto_scaling/group.rb +0 -421
  59. data/lib/aws/auto_scaling/group_collection.rb +0 -96
  60. data/lib/aws/auto_scaling/group_options.rb +0 -155
  61. data/lib/aws/auto_scaling/instance.rb +0 -192
  62. data/lib/aws/auto_scaling/instance_collection.rb +0 -63
  63. data/lib/aws/auto_scaling/launch_configuration.rb +0 -162
  64. data/lib/aws/auto_scaling/launch_configuration_collection.rb +0 -160
  65. data/lib/aws/auto_scaling/notification_configuration.rb +0 -89
  66. data/lib/aws/auto_scaling/notification_configuration_collection.rb +0 -183
  67. data/lib/aws/auto_scaling/scaling_policy.rb +0 -142
  68. data/lib/aws/auto_scaling/scaling_policy_collection.rb +0 -72
  69. data/lib/aws/auto_scaling/scaling_policy_options.rb +0 -65
  70. data/lib/aws/auto_scaling/scheduled_action.rb +0 -141
  71. data/lib/aws/auto_scaling/scheduled_action_collection.rb +0 -202
  72. data/lib/aws/auto_scaling/tag.rb +0 -59
  73. data/lib/aws/auto_scaling/tag_collection.rb +0 -114
  74. data/lib/aws/cloud_formation.rb +0 -272
  75. data/lib/aws/cloud_formation/client.rb +0 -48
  76. data/lib/aws/cloud_formation/config.rb +0 -18
  77. data/lib/aws/cloud_formation/errors.rb +0 -22
  78. data/lib/aws/cloud_formation/stack.rb +0 -266
  79. data/lib/aws/cloud_formation/stack_collection.rb +0 -232
  80. data/lib/aws/cloud_formation/stack_event.rb +0 -73
  81. data/lib/aws/cloud_formation/stack_event_collection.rb +0 -47
  82. data/lib/aws/cloud_formation/stack_options.rb +0 -72
  83. data/lib/aws/cloud_formation/stack_output.rb +0 -53
  84. data/lib/aws/cloud_formation/stack_resource.rb +0 -117
  85. data/lib/aws/cloud_formation/stack_resource_collection.rb +0 -83
  86. data/lib/aws/cloud_formation/stack_resource_summary_collection.rb +0 -64
  87. data/lib/aws/cloud_formation/stack_summary_collection.rb +0 -123
  88. data/lib/aws/cloud_front.rb +0 -72
  89. data/lib/aws/cloud_front/client.rb +0 -45
  90. data/lib/aws/cloud_front/config.rb +0 -18
  91. data/lib/aws/cloud_front/errors.rb +0 -22
  92. data/lib/aws/cloud_search.rb +0 -73
  93. data/lib/aws/cloud_search/client.rb +0 -36
  94. data/lib/aws/cloud_search/config.rb +0 -18
  95. data/lib/aws/cloud_search/errors.rb +0 -22
  96. data/lib/aws/cloud_trail.rb +0 -72
  97. data/lib/aws/cloud_trail/client.rb +0 -35
  98. data/lib/aws/cloud_trail/config.rb +0 -18
  99. data/lib/aws/cloud_trail/errors.rb +0 -22
  100. data/lib/aws/cloud_watch.rb +0 -118
  101. data/lib/aws/cloud_watch/alarm.rb +0 -290
  102. data/lib/aws/cloud_watch/alarm_collection.rb +0 -153
  103. data/lib/aws/cloud_watch/alarm_history_item.rb +0 -50
  104. data/lib/aws/cloud_watch/alarm_history_item_collection.rb +0 -84
  105. data/lib/aws/cloud_watch/client.rb +0 -40
  106. data/lib/aws/cloud_watch/config.rb +0 -18
  107. data/lib/aws/cloud_watch/errors.rb +0 -22
  108. data/lib/aws/cloud_watch/metric.rb +0 -135
  109. data/lib/aws/cloud_watch/metric_alarm_collection.rb +0 -160
  110. data/lib/aws/cloud_watch/metric_collection.rb +0 -129
  111. data/lib/aws/cloud_watch/metric_statistics.rb +0 -69
  112. data/lib/aws/core.rb +0 -701
  113. data/lib/aws/core/async_handle.rb +0 -90
  114. data/lib/aws/core/cacheable.rb +0 -77
  115. data/lib/aws/core/client.rb +0 -778
  116. data/lib/aws/core/collection.rb +0 -263
  117. data/lib/aws/core/collection/simple.rb +0 -82
  118. data/lib/aws/core/collection/with_limit_and_next_token.rb +0 -71
  119. data/lib/aws/core/collection/with_next_token.rb +0 -97
  120. data/lib/aws/core/configuration.rb +0 -541
  121. data/lib/aws/core/credential_providers.rb +0 -506
  122. data/lib/aws/core/data.rb +0 -247
  123. data/lib/aws/core/deprecations.rb +0 -84
  124. data/lib/aws/core/endpoints.rb +0 -37
  125. data/lib/aws/core/http/connection_pool.rb +0 -349
  126. data/lib/aws/core/http/curb_handler.rb +0 -148
  127. data/lib/aws/core/http/handler.rb +0 -89
  128. data/lib/aws/core/http/net_http_handler.rb +0 -147
  129. data/lib/aws/core/http/patch.rb +0 -102
  130. data/lib/aws/core/http/request.rb +0 -249
  131. data/lib/aws/core/http/response.rb +0 -81
  132. data/lib/aws/core/indifferent_hash.rb +0 -88
  133. data/lib/aws/core/inflection.rb +0 -56
  134. data/lib/aws/core/json_client.rb +0 -47
  135. data/lib/aws/core/json_parser.rb +0 -76
  136. data/lib/aws/core/json_request_builder.rb +0 -35
  137. data/lib/aws/core/json_response_parser.rb +0 -79
  138. data/lib/aws/core/lazy_error_classes.rb +0 -90
  139. data/lib/aws/core/log_formatter.rb +0 -428
  140. data/lib/aws/core/managed_file.rb +0 -32
  141. data/lib/aws/core/meta_utils.rb +0 -45
  142. data/lib/aws/core/model.rb +0 -57
  143. data/lib/aws/core/naming.rb +0 -30
  144. data/lib/aws/core/option_grammar.rb +0 -738
  145. data/lib/aws/core/options/json_serializer.rb +0 -82
  146. data/lib/aws/core/options/validator.rb +0 -155
  147. data/lib/aws/core/options/xml_serializer.rb +0 -118
  148. data/lib/aws/core/page_result.rb +0 -75
  149. data/lib/aws/core/policy.rb +0 -942
  150. data/lib/aws/core/query_client.rb +0 -41
  151. data/lib/aws/core/query_error_parser.rb +0 -24
  152. data/lib/aws/core/query_request_builder.rb +0 -47
  153. data/lib/aws/core/query_response_parser.rb +0 -35
  154. data/lib/aws/core/region.rb +0 -85
  155. data/lib/aws/core/region_collection.rb +0 -80
  156. data/lib/aws/core/resource.rb +0 -413
  157. data/lib/aws/core/resource_cache.rb +0 -40
  158. data/lib/aws/core/response.rb +0 -211
  159. data/lib/aws/core/response_cache.rb +0 -50
  160. data/lib/aws/core/rest_error_parser.rb +0 -24
  161. data/lib/aws/core/rest_json_client.rb +0 -40
  162. data/lib/aws/core/rest_request_builder.rb +0 -154
  163. data/lib/aws/core/rest_response_parser.rb +0 -66
  164. data/lib/aws/core/rest_xml_client.rb +0 -47
  165. data/lib/aws/core/service_interface.rb +0 -83
  166. data/lib/aws/core/signers/base.rb +0 -46
  167. data/lib/aws/core/signers/cloud_front.rb +0 -56
  168. data/lib/aws/core/signers/s3.rb +0 -159
  169. data/lib/aws/core/signers/version_2.rb +0 -72
  170. data/lib/aws/core/signers/version_3.rb +0 -86
  171. data/lib/aws/core/signers/version_3_https.rb +0 -61
  172. data/lib/aws/core/signers/version_4.rb +0 -228
  173. data/lib/aws/core/signers/version_4/chunk_signed_stream.rb +0 -191
  174. data/lib/aws/core/uri_escape.rb +0 -44
  175. data/lib/aws/core/xml/frame.rb +0 -244
  176. data/lib/aws/core/xml/frame_stack.rb +0 -85
  177. data/lib/aws/core/xml/grammar.rb +0 -306
  178. data/lib/aws/core/xml/parser.rb +0 -70
  179. data/lib/aws/core/xml/root_frame.rb +0 -65
  180. data/lib/aws/core/xml/sax_handlers/libxml.rb +0 -47
  181. data/lib/aws/core/xml/sax_handlers/nokogiri.rb +0 -56
  182. data/lib/aws/core/xml/sax_handlers/ox.rb +0 -41
  183. data/lib/aws/core/xml/sax_handlers/rexml.rb +0 -47
  184. data/lib/aws/core/xml/stub.rb +0 -123
  185. data/lib/aws/data_pipeline.rb +0 -72
  186. data/lib/aws/data_pipeline/client.rb +0 -36
  187. data/lib/aws/data_pipeline/config.rb +0 -18
  188. data/lib/aws/data_pipeline/errors.rb +0 -20
  189. data/lib/aws/direct_connect.rb +0 -73
  190. data/lib/aws/direct_connect/client.rb +0 -36
  191. data/lib/aws/direct_connect/config.rb +0 -18
  192. data/lib/aws/direct_connect/errors.rb +0 -22
  193. data/lib/aws/dynamo_db.rb +0 -214
  194. data/lib/aws/dynamo_db/attribute_collection.rb +0 -456
  195. data/lib/aws/dynamo_db/batch_get.rb +0 -213
  196. data/lib/aws/dynamo_db/batch_write.rb +0 -252
  197. data/lib/aws/dynamo_db/binary.rb +0 -35
  198. data/lib/aws/dynamo_db/client.rb +0 -129
  199. data/lib/aws/dynamo_db/client/v20111205.rb +0 -1266
  200. data/lib/aws/dynamo_db/client/v20120810.rb +0 -1409
  201. data/lib/aws/dynamo_db/client_v2.rb +0 -44
  202. data/lib/aws/dynamo_db/config.rb +0 -24
  203. data/lib/aws/dynamo_db/errors.rb +0 -20
  204. data/lib/aws/dynamo_db/expectations.rb +0 -40
  205. data/lib/aws/dynamo_db/item.rb +0 -133
  206. data/lib/aws/dynamo_db/item_collection.rb +0 -856
  207. data/lib/aws/dynamo_db/item_data.rb +0 -31
  208. data/lib/aws/dynamo_db/keys.rb +0 -41
  209. data/lib/aws/dynamo_db/primary_key_element.rb +0 -48
  210. data/lib/aws/dynamo_db/resource.rb +0 -33
  211. data/lib/aws/dynamo_db/table.rb +0 -496
  212. data/lib/aws/dynamo_db/table_collection.rb +0 -165
  213. data/lib/aws/dynamo_db/types.rb +0 -111
  214. data/lib/aws/ec2.rb +0 -428
  215. data/lib/aws/ec2/attachment.rb +0 -135
  216. data/lib/aws/ec2/attachment_collection.rb +0 -54
  217. data/lib/aws/ec2/availability_zone.rb +0 -86
  218. data/lib/aws/ec2/availability_zone_collection.rb +0 -43
  219. data/lib/aws/ec2/block_device_mappings.rb +0 -53
  220. data/lib/aws/ec2/client.rb +0 -101
  221. data/lib/aws/ec2/collection.rb +0 -36
  222. data/lib/aws/ec2/config.rb +0 -30
  223. data/lib/aws/ec2/customer_gateway.rb +0 -90
  224. data/lib/aws/ec2/customer_gateway_collection.rb +0 -73
  225. data/lib/aws/ec2/dhcp_options.rb +0 -106
  226. data/lib/aws/ec2/dhcp_options_collection.rb +0 -87
  227. data/lib/aws/ec2/elastic_ip.rb +0 -209
  228. data/lib/aws/ec2/elastic_ip_collection.rb +0 -93
  229. data/lib/aws/ec2/errors.rb +0 -32
  230. data/lib/aws/ec2/export_task.rb +0 -120
  231. data/lib/aws/ec2/export_task_collection.rb +0 -67
  232. data/lib/aws/ec2/filtered_collection.rb +0 -87
  233. data/lib/aws/ec2/has_permissions.rb +0 -44
  234. data/lib/aws/ec2/image.rb +0 -270
  235. data/lib/aws/ec2/image_collection.rb +0 -220
  236. data/lib/aws/ec2/instance.rb +0 -803
  237. data/lib/aws/ec2/instance_collection.rb +0 -391
  238. data/lib/aws/ec2/internet_gateway.rb +0 -122
  239. data/lib/aws/ec2/internet_gateway/attachment.rb +0 -78
  240. data/lib/aws/ec2/internet_gateway_collection.rb +0 -54
  241. data/lib/aws/ec2/key_pair.rb +0 -82
  242. data/lib/aws/ec2/key_pair_collection.rb +0 -99
  243. data/lib/aws/ec2/network_acl.rb +0 -256
  244. data/lib/aws/ec2/network_acl/association.rb +0 -56
  245. data/lib/aws/ec2/network_acl/entry.rb +0 -147
  246. data/lib/aws/ec2/network_acl_collection.rb +0 -64
  247. data/lib/aws/ec2/network_interface.rb +0 -237
  248. data/lib/aws/ec2/network_interface/attachment.rb +0 -100
  249. data/lib/aws/ec2/network_interface_collection.rb +0 -103
  250. data/lib/aws/ec2/permission_collection.rb +0 -174
  251. data/lib/aws/ec2/region.rb +0 -106
  252. data/lib/aws/ec2/region_collection.rb +0 -51
  253. data/lib/aws/ec2/reserved_instances.rb +0 -56
  254. data/lib/aws/ec2/reserved_instances_collection.rb +0 -40
  255. data/lib/aws/ec2/reserved_instances_offering.rb +0 -60
  256. data/lib/aws/ec2/reserved_instances_offering_collection.rb +0 -45
  257. data/lib/aws/ec2/resource.rb +0 -161
  258. data/lib/aws/ec2/resource_tag_collection.rb +0 -211
  259. data/lib/aws/ec2/route_table.rb +0 -205
  260. data/lib/aws/ec2/route_table/association.rb +0 -119
  261. data/lib/aws/ec2/route_table/route.rb +0 -119
  262. data/lib/aws/ec2/route_table_collection.rb +0 -72
  263. data/lib/aws/ec2/security_group.rb +0 -482
  264. data/lib/aws/ec2/security_group/ip_permission.rb +0 -135
  265. data/lib/aws/ec2/security_group/ip_permission_collection.rb +0 -82
  266. data/lib/aws/ec2/security_group_collection.rb +0 -133
  267. data/lib/aws/ec2/snapshot.rb +0 -143
  268. data/lib/aws/ec2/snapshot_collection.rb +0 -131
  269. data/lib/aws/ec2/subnet.rb +0 -161
  270. data/lib/aws/ec2/subnet_collection.rb +0 -115
  271. data/lib/aws/ec2/tag.rb +0 -81
  272. data/lib/aws/ec2/tag_collection.rb +0 -107
  273. data/lib/aws/ec2/tagged_collection.rb +0 -53
  274. data/lib/aws/ec2/tagged_item.rb +0 -85
  275. data/lib/aws/ec2/volume.rb +0 -174
  276. data/lib/aws/ec2/volume_collection.rb +0 -98
  277. data/lib/aws/ec2/vpc.rb +0 -166
  278. data/lib/aws/ec2/vpc_collection.rb +0 -70
  279. data/lib/aws/ec2/vpn_connection.rb +0 -99
  280. data/lib/aws/ec2/vpn_connection/telemetry.rb +0 -49
  281. data/lib/aws/ec2/vpn_connection_collection.rb +0 -96
  282. data/lib/aws/ec2/vpn_gateway.rb +0 -123
  283. data/lib/aws/ec2/vpn_gateway/attachment.rb +0 -45
  284. data/lib/aws/ec2/vpn_gateway_collection.rb +0 -77
  285. data/lib/aws/elastic_beanstalk.rb +0 -49
  286. data/lib/aws/elastic_beanstalk/client.rb +0 -36
  287. data/lib/aws/elastic_beanstalk/config.rb +0 -18
  288. data/lib/aws/elastic_beanstalk/errors.rb +0 -22
  289. data/lib/aws/elastic_transcoder.rb +0 -29
  290. data/lib/aws/elastic_transcoder/client.rb +0 -48
  291. data/lib/aws/elastic_transcoder/config.rb +0 -18
  292. data/lib/aws/elastic_transcoder/errors.rb +0 -23
  293. data/lib/aws/elasticache.rb +0 -49
  294. data/lib/aws/elasticache/client.rb +0 -35
  295. data/lib/aws/elasticache/config.rb +0 -18
  296. data/lib/aws/elasticache/errors.rb +0 -22
  297. data/lib/aws/elb.rb +0 -66
  298. data/lib/aws/elb/availability_zone_collection.rb +0 -138
  299. data/lib/aws/elb/backend_server_policy_collection.rb +0 -139
  300. data/lib/aws/elb/client.rb +0 -35
  301. data/lib/aws/elb/config.rb +0 -18
  302. data/lib/aws/elb/errors.rb +0 -26
  303. data/lib/aws/elb/instance_collection.rb +0 -168
  304. data/lib/aws/elb/listener.rb +0 -190
  305. data/lib/aws/elb/listener_collection.rb +0 -113
  306. data/lib/aws/elb/listener_opts.rb +0 -45
  307. data/lib/aws/elb/load_balancer.rb +0 -280
  308. data/lib/aws/elb/load_balancer_collection.rb +0 -146
  309. data/lib/aws/elb/load_balancer_policy.rb +0 -93
  310. data/lib/aws/elb/load_balancer_policy_collection.rb +0 -208
  311. data/lib/aws/emr.rb +0 -87
  312. data/lib/aws/emr/client.rb +0 -35
  313. data/lib/aws/emr/config.rb +0 -18
  314. data/lib/aws/emr/errors.rb +0 -22
  315. data/lib/aws/emr/instance_group.rb +0 -138
  316. data/lib/aws/emr/instance_group_collection.rb +0 -82
  317. data/lib/aws/emr/job_flow.rb +0 -307
  318. data/lib/aws/emr/job_flow_collection.rb +0 -185
  319. data/lib/aws/errors.rb +0 -162
  320. data/lib/aws/glacier.rb +0 -79
  321. data/lib/aws/glacier/archive.rb +0 -56
  322. data/lib/aws/glacier/archive_collection.rb +0 -146
  323. data/lib/aws/glacier/client.rb +0 -49
  324. data/lib/aws/glacier/config.rb +0 -19
  325. data/lib/aws/glacier/errors.rb +0 -22
  326. data/lib/aws/glacier/resource.rb +0 -30
  327. data/lib/aws/glacier/vault.rb +0 -145
  328. data/lib/aws/glacier/vault_collection.rb +0 -75
  329. data/lib/aws/glacier/vault_notification_configuration.rb +0 -29
  330. data/lib/aws/iam.rb +0 -408
  331. data/lib/aws/iam/access_key.rb +0 -185
  332. data/lib/aws/iam/access_key_collection.rb +0 -128
  333. data/lib/aws/iam/account_alias_collection.rb +0 -79
  334. data/lib/aws/iam/client.rb +0 -49
  335. data/lib/aws/iam/collection.rb +0 -83
  336. data/lib/aws/iam/config.rb +0 -18
  337. data/lib/aws/iam/errors.rb +0 -22
  338. data/lib/aws/iam/group.rb +0 -111
  339. data/lib/aws/iam/group_collection.rb +0 -132
  340. data/lib/aws/iam/group_policy_collection.rb +0 -47
  341. data/lib/aws/iam/group_user_collection.rb +0 -84
  342. data/lib/aws/iam/login_profile.rb +0 -99
  343. data/lib/aws/iam/mfa_device.rb +0 -52
  344. data/lib/aws/iam/mfa_device_collection.rb +0 -127
  345. data/lib/aws/iam/policy.rb +0 -46
  346. data/lib/aws/iam/policy_collection.rb +0 -188
  347. data/lib/aws/iam/resource.rb +0 -62
  348. data/lib/aws/iam/server_certificate.rb +0 -141
  349. data/lib/aws/iam/server_certificate_collection.rb +0 -138
  350. data/lib/aws/iam/signing_certificate.rb +0 -174
  351. data/lib/aws/iam/signing_certificate_collection.rb +0 -131
  352. data/lib/aws/iam/user.rb +0 -200
  353. data/lib/aws/iam/user_collection.rb +0 -133
  354. data/lib/aws/iam/user_group_collection.rb +0 -98
  355. data/lib/aws/iam/user_policy.rb +0 -90
  356. data/lib/aws/iam/user_policy_collection.rb +0 -45
  357. data/lib/aws/iam/virtual_mfa_device.rb +0 -139
  358. data/lib/aws/iam/virtual_mfa_device_collection.rb +0 -73
  359. data/lib/aws/import_export.rb +0 -73
  360. data/lib/aws/import_export/client.rb +0 -35
  361. data/lib/aws/import_export/config.rb +0 -19
  362. data/lib/aws/import_export/errors.rb +0 -22
  363. data/lib/aws/kinesis.rb +0 -53
  364. data/lib/aws/kinesis/client.rb +0 -35
  365. data/lib/aws/kinesis/config.rb +0 -18
  366. data/lib/aws/kinesis/errors.rb +0 -20
  367. data/lib/aws/ops_works.rb +0 -29
  368. data/lib/aws/ops_works/client.rb +0 -35
  369. data/lib/aws/ops_works/config.rb +0 -18
  370. data/lib/aws/ops_works/errors.rb +0 -20
  371. data/lib/aws/rails.rb +0 -195
  372. data/lib/aws/rds.rb +0 -70
  373. data/lib/aws/rds/client.rb +0 -42
  374. data/lib/aws/rds/config.rb +0 -18
  375. data/lib/aws/rds/db_instance.rb +0 -216
  376. data/lib/aws/rds/db_instance_collection.rb +0 -75
  377. data/lib/aws/rds/db_snapshot.rb +0 -163
  378. data/lib/aws/rds/db_snapshot_collection.rb +0 -89
  379. data/lib/aws/rds/errors.rb +0 -22
  380. data/lib/aws/record.rb +0 -139
  381. data/lib/aws/record/abstract_base.rb +0 -690
  382. data/lib/aws/record/attributes.rb +0 -388
  383. data/lib/aws/record/conversion.rb +0 -38
  384. data/lib/aws/record/dirty_tracking.rb +0 -287
  385. data/lib/aws/record/errors.rb +0 -143
  386. data/lib/aws/record/exceptions.rb +0 -51
  387. data/lib/aws/record/hash_model.rb +0 -204
  388. data/lib/aws/record/hash_model/attributes.rb +0 -195
  389. data/lib/aws/record/hash_model/finder_methods.rb +0 -172
  390. data/lib/aws/record/hash_model/scope.rb +0 -108
  391. data/lib/aws/record/model.rb +0 -453
  392. data/lib/aws/record/model/attributes.rb +0 -377
  393. data/lib/aws/record/model/finder_methods.rb +0 -232
  394. data/lib/aws/record/model/scope.rb +0 -212
  395. data/lib/aws/record/naming.rb +0 -31
  396. data/lib/aws/record/scope.rb +0 -203
  397. data/lib/aws/record/validations.rb +0 -694
  398. data/lib/aws/record/validator.rb +0 -246
  399. data/lib/aws/record/validators/acceptance.rb +0 -49
  400. data/lib/aws/record/validators/block.rb +0 -36
  401. data/lib/aws/record/validators/confirmation.rb +0 -41
  402. data/lib/aws/record/validators/count.rb +0 -106
  403. data/lib/aws/record/validators/exclusion.rb +0 -41
  404. data/lib/aws/record/validators/format.rb +0 -55
  405. data/lib/aws/record/validators/inclusion.rb +0 -54
  406. data/lib/aws/record/validators/length.rb +0 -105
  407. data/lib/aws/record/validators/method.rb +0 -31
  408. data/lib/aws/record/validators/numericality.rb +0 -136
  409. data/lib/aws/record/validators/presence.rb +0 -43
  410. data/lib/aws/redshift.rb +0 -51
  411. data/lib/aws/redshift/client.rb +0 -35
  412. data/lib/aws/redshift/config.rb +0 -18
  413. data/lib/aws/redshift/errors.rb +0 -22
  414. data/lib/aws/route_53.rb +0 -86
  415. data/lib/aws/route_53/change_batch.rb +0 -161
  416. data/lib/aws/route_53/change_info.rb +0 -72
  417. data/lib/aws/route_53/client.rb +0 -35
  418. data/lib/aws/route_53/config.rb +0 -18
  419. data/lib/aws/route_53/errors.rb +0 -22
  420. data/lib/aws/route_53/hosted_zone.rb +0 -111
  421. data/lib/aws/route_53/hosted_zone_collection.rb +0 -100
  422. data/lib/aws/route_53/resource_record_set.rb +0 -251
  423. data/lib/aws/route_53/resource_record_set_collection.rb +0 -110
  424. data/lib/aws/s3.rb +0 -156
  425. data/lib/aws/s3/access_control_list.rb +0 -265
  426. data/lib/aws/s3/acl_object.rb +0 -264
  427. data/lib/aws/s3/acl_options.rb +0 -204
  428. data/lib/aws/s3/bucket.rb +0 -742
  429. data/lib/aws/s3/bucket_collection.rb +0 -162
  430. data/lib/aws/s3/bucket_lifecycle_configuration.rb +0 -457
  431. data/lib/aws/s3/bucket_tag_collection.rb +0 -111
  432. data/lib/aws/s3/bucket_version_collection.rb +0 -79
  433. data/lib/aws/s3/cipher_io.rb +0 -120
  434. data/lib/aws/s3/client.rb +0 -1919
  435. data/lib/aws/s3/client/xml.rb +0 -259
  436. data/lib/aws/s3/config.rb +0 -48
  437. data/lib/aws/s3/cors_rule.rb +0 -108
  438. data/lib/aws/s3/cors_rule_collection.rb +0 -194
  439. data/lib/aws/s3/data_options.rb +0 -191
  440. data/lib/aws/s3/encryption_utils.rb +0 -146
  441. data/lib/aws/s3/errors.rb +0 -94
  442. data/lib/aws/s3/multipart_upload.rb +0 -351
  443. data/lib/aws/s3/multipart_upload_collection.rb +0 -76
  444. data/lib/aws/s3/object_collection.rb +0 -353
  445. data/lib/aws/s3/object_metadata.rb +0 -103
  446. data/lib/aws/s3/object_upload_collection.rb +0 -77
  447. data/lib/aws/s3/object_version.rb +0 -154
  448. data/lib/aws/s3/object_version_collection.rb +0 -89
  449. data/lib/aws/s3/paginated_collection.rb +0 -75
  450. data/lib/aws/s3/policy.rb +0 -74
  451. data/lib/aws/s3/prefix_and_delimiter_collection.rb +0 -47
  452. data/lib/aws/s3/prefixed_collection.rb +0 -85
  453. data/lib/aws/s3/presign_v4.rb +0 -127
  454. data/lib/aws/s3/presigned_post.rb +0 -554
  455. data/lib/aws/s3/request.rb +0 -62
  456. data/lib/aws/s3/s3_object.rb +0 -1781
  457. data/lib/aws/s3/tree.rb +0 -116
  458. data/lib/aws/s3/tree/branch_node.rb +0 -68
  459. data/lib/aws/s3/tree/child_collection.rb +0 -104
  460. data/lib/aws/s3/tree/leaf_node.rb +0 -94
  461. data/lib/aws/s3/tree/node.rb +0 -22
  462. data/lib/aws/s3/tree/parent.rb +0 -87
  463. data/lib/aws/s3/uploaded_part.rb +0 -82
  464. data/lib/aws/s3/uploaded_part_collection.rb +0 -84
  465. data/lib/aws/s3/website_configuration.rb +0 -102
  466. data/lib/aws/simple_db.rb +0 -218
  467. data/lib/aws/simple_db/attribute.rb +0 -156
  468. data/lib/aws/simple_db/attribute_collection.rb +0 -240
  469. data/lib/aws/simple_db/client.rb +0 -67
  470. data/lib/aws/simple_db/config.rb +0 -20
  471. data/lib/aws/simple_db/consistent_read_option.rb +0 -42
  472. data/lib/aws/simple_db/delete_attributes.rb +0 -62
  473. data/lib/aws/simple_db/domain.rb +0 -123
  474. data/lib/aws/simple_db/domain_collection.rb +0 -86
  475. data/lib/aws/simple_db/domain_metadata.rb +0 -110
  476. data/lib/aws/simple_db/errors.rb +0 -55
  477. data/lib/aws/simple_db/expect_condition_option.rb +0 -45
  478. data/lib/aws/simple_db/item.rb +0 -93
  479. data/lib/aws/simple_db/item_collection.rb +0 -654
  480. data/lib/aws/simple_db/item_data.rb +0 -73
  481. data/lib/aws/simple_db/put_attributes.rb +0 -60
  482. data/lib/aws/simple_email_service.rb +0 -430
  483. data/lib/aws/simple_email_service/client.rb +0 -37
  484. data/lib/aws/simple_email_service/config.rb +0 -18
  485. data/lib/aws/simple_email_service/email_address_collection.rb +0 -69
  486. data/lib/aws/simple_email_service/errors.rb +0 -22
  487. data/lib/aws/simple_email_service/identity.rb +0 -209
  488. data/lib/aws/simple_email_service/identity_collection.rb +0 -81
  489. data/lib/aws/simple_email_service/quotas.rb +0 -66
  490. data/lib/aws/simple_workflow.rb +0 -227
  491. data/lib/aws/simple_workflow/activity_task.rb +0 -178
  492. data/lib/aws/simple_workflow/activity_task_collection.rb +0 -123
  493. data/lib/aws/simple_workflow/activity_type.rb +0 -131
  494. data/lib/aws/simple_workflow/activity_type_collection.rb +0 -93
  495. data/lib/aws/simple_workflow/client.rb +0 -69
  496. data/lib/aws/simple_workflow/config.rb +0 -18
  497. data/lib/aws/simple_workflow/count.rb +0 -49
  498. data/lib/aws/simple_workflow/decision_task.rb +0 -603
  499. data/lib/aws/simple_workflow/decision_task_collection.rb +0 -225
  500. data/lib/aws/simple_workflow/domain.rb +0 -122
  501. data/lib/aws/simple_workflow/domain_collection.rb +0 -169
  502. data/lib/aws/simple_workflow/errors.rb +0 -20
  503. data/lib/aws/simple_workflow/history_event.rb +0 -276
  504. data/lib/aws/simple_workflow/history_event_collection.rb +0 -76
  505. data/lib/aws/simple_workflow/option_formatters.rb +0 -82
  506. data/lib/aws/simple_workflow/resource.rb +0 -94
  507. data/lib/aws/simple_workflow/type.rb +0 -89
  508. data/lib/aws/simple_workflow/type_collection.rb +0 -140
  509. data/lib/aws/simple_workflow/workflow_execution.rb +0 -384
  510. data/lib/aws/simple_workflow/workflow_execution_collection.rb +0 -617
  511. data/lib/aws/simple_workflow/workflow_type.rb +0 -179
  512. data/lib/aws/simple_workflow/workflow_type_collection.rb +0 -91
  513. data/lib/aws/sns.rb +0 -76
  514. data/lib/aws/sns/client.rb +0 -35
  515. data/lib/aws/sns/config.rb +0 -18
  516. data/lib/aws/sns/errors.rb +0 -22
  517. data/lib/aws/sns/has_delivery_policy.rb +0 -68
  518. data/lib/aws/sns/message.rb +0 -194
  519. data/lib/aws/sns/originators/from_auto_scaling.rb +0 -68
  520. data/lib/aws/sns/policy.rb +0 -47
  521. data/lib/aws/sns/subscription.rb +0 -165
  522. data/lib/aws/sns/subscription_collection.rb +0 -78
  523. data/lib/aws/sns/topic.rb +0 -403
  524. data/lib/aws/sns/topic_collection.rb +0 -62
  525. data/lib/aws/sns/topic_subscription_collection.rb +0 -54
  526. data/lib/aws/sqs.rb +0 -80
  527. data/lib/aws/sqs/client.rb +0 -53
  528. data/lib/aws/sqs/config.rb +0 -20
  529. data/lib/aws/sqs/errors.rb +0 -125
  530. data/lib/aws/sqs/policy.rb +0 -48
  531. data/lib/aws/sqs/queue.rb +0 -843
  532. data/lib/aws/sqs/queue_collection.rb +0 -182
  533. data/lib/aws/sqs/received_message.rb +0 -182
  534. data/lib/aws/sqs/received_sns_message.rb +0 -116
  535. data/lib/aws/storage_gateway.rb +0 -72
  536. data/lib/aws/storage_gateway/client.rb +0 -42
  537. data/lib/aws/storage_gateway/config.rb +0 -18
  538. data/lib/aws/storage_gateway/errors.rb +0 -22
  539. data/lib/aws/sts.rb +0 -164
  540. data/lib/aws/sts/client.rb +0 -46
  541. data/lib/aws/sts/config.rb +0 -18
  542. data/lib/aws/sts/errors.rb +0 -22
  543. data/lib/aws/sts/federated_session.rb +0 -56
  544. data/lib/aws/sts/policy.rb +0 -30
  545. data/lib/aws/sts/session.rb +0 -48
  546. data/lib/aws/support.rb +0 -29
  547. data/lib/aws/support/client.rb +0 -35
  548. data/lib/aws/support/config.rb +0 -18
  549. data/lib/aws/support/errors.rb +0 -20
  550. data/lib/aws/version.rb +0 -17
  551. data/rails/init.rb +0 -15
@@ -1,90 +0,0 @@
1
- # Copyright 2011-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License"). You
4
- # may not use this file except in compliance with the License. A copy of
5
- # the License is located at
6
- #
7
- # http://aws.amazon.com/apache2.0/
8
- #
9
- # or in the "license" file accompanying this file. This file is
10
- # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
11
- # ANY KIND, either express or implied. See the License for the specific
12
- # language governing permissions and limitations under the License.
13
-
14
- module AWS
15
- module Core
16
-
17
- # Mixin that provides a generic callback facility for asynchronous
18
- # tasks that can either succeed or fail.
19
- module AsyncHandle
20
-
21
- # Called to signal success and fire off the success and complete callbacks.
22
- def signal_success
23
- __send_signal(:success)
24
- end
25
-
26
- # Called to signal failure and fire off the failure and complete callbacks.
27
- def signal_failure
28
- __send_signal(:failure)
29
- end
30
-
31
- # Registers a callback to be called on successful completion of
32
- # the task.
33
- #
34
- # handle.on_success { puts "It worked!" }
35
- #
36
- # If this is called when the task has already completed
37
- # successfully, it will call the callback immediately.
38
- def on_success(&block)
39
- if @_async_status == :success
40
- block.call
41
- else
42
- (@_async_callbacks ||= []) << { :success => block }
43
- end
44
- end
45
-
46
- # Registers a callback to be called when the task fails.
47
- #
48
- # handle.on_failure { puts "It didn't work!" }
49
- #
50
- # If this is called when the task has already failed, it will
51
- # call the callback immediately.
52
- def on_failure(&block)
53
- if @_async_status == :failure
54
- block.call
55
- else
56
- (@_async_callbacks ||= []) << { :failure => block }
57
- end
58
- end
59
-
60
- # Registers a callback to be called when the task is complete,
61
- # regardless of its status. Yields the status to the block.
62
- #
63
- # handle.on_complete do |status|
64
- # puts "It #{status == :success ? 'did' : 'did not'} work!"
65
- # end
66
- #
67
- # If this is called when the task has already completed, it will
68
- # call the callback immediately.
69
- def on_complete(&block)
70
- if !@_async_status.nil?
71
- block.call(@_async_status)
72
- else
73
- (@_async_callbacks ||= []) << {
74
- :failure => lambda { block.call(:failure) },
75
- :success => lambda { block.call(:success) }
76
- }
77
- end
78
- end
79
-
80
- private
81
- def __send_signal(kind)
82
- @_async_status = kind
83
- @_async_callbacks.map do |cb|
84
- cb[kind]
85
- end.compact.each {|block| block.call } if @_async_callbacks
86
- end
87
-
88
- end
89
- end
90
- end
@@ -1,77 +0,0 @@
1
- # Copyright 2011-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License"). You
4
- # may not use this file except in compliance with the License. A copy of
5
- # the License is located at
6
- #
7
- # http://aws.amazon.com/apache2.0/
8
- #
9
- # or in the "license" file accompanying this file. This file is
10
- # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
11
- # ANY KIND, either express or implied. See the License for the specific
12
- # language governing permissions and limitations under the License.
13
-
14
- module AWS
15
- module Core
16
-
17
- # @api private
18
- module Cacheable
19
-
20
- # @api private
21
- class NoData < StandardError; end
22
-
23
- def self.included base
24
- base.extend Naming unless base.respond_to?(:service_ruby_name)
25
- end
26
-
27
- # @api private
28
- protected
29
- def local_cache_key
30
- raise NotImplementedError
31
- end
32
-
33
- # @api private
34
- protected
35
- def cache_key
36
- @cache_key ||= begin
37
- config.credential_provider.access_key_id + ":" +
38
- config.region + ":" +
39
- self.class.name + ":" +
40
- local_cache_key
41
- end
42
- end
43
-
44
- # @api private
45
- public
46
- def retrieve_attribute attr, &block
47
-
48
- if cache = AWS.response_cache
49
-
50
- if cache.resource_cache.cached?(cache_key, attr.name)
51
- return cache.resource_cache.get(cache_key, attr.name)
52
- end
53
-
54
- cache.select(*attr.request_types).each do |response|
55
- if attributes = attributes_from_response(response)
56
- cache.resource_cache.store(cache_key, attributes)
57
- return attributes[attr.name] if attributes.key?(attr.name)
58
- end
59
- end
60
-
61
- end
62
-
63
- response = yield
64
-
65
- if attributes = attributes_from_response(response)
66
- if cache = AWS.response_cache
67
- cache.resource_cache.store(cache_key, attributes)
68
- end
69
- attributes[attr.name] if attributes.key?(attr.name)
70
- else
71
- raise NoData.new("no data in #{response.request_type} response")
72
- end
73
- end
74
-
75
- end
76
- end
77
- end
@@ -1,778 +0,0 @@
1
- # Copyright 2011-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License"). You
4
- # may not use this file except in compliance with the License. A copy of
5
- # the License is located at
6
- #
7
- # http://aws.amazon.com/apache2.0/
8
- #
9
- # or in the "license" file accompanying this file. This file is
10
- # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
11
- # ANY KIND, either express or implied. See the License for the specific
12
- # language governing permissions and limitations under the License.
13
-
14
- require 'json'
15
- require 'set'
16
- require 'yaml'
17
- require 'uri'
18
-
19
- module AWS
20
- module Core
21
-
22
- # Base client class for all of the Amazon AWS service clients.
23
- class Client
24
-
25
- extend Deprecations
26
-
27
- # Raised when a request failed due to a networking issue (e.g.
28
- # EOFError, IOError, Errno::ECONNRESET, Errno::EPIPE,
29
- # Timeout::Error, etc)
30
- class NetworkError < StandardError; end
31
-
32
- extend Naming
33
-
34
- # @api private
35
- CACHEABLE_REQUESTS = Set[]
36
-
37
- # Creates a new low-level client.
38
- # @param [Hash] options
39
- # @option options [Core::Configuration] :config (AWS.config)
40
- # The base configuration object to use. All other options
41
- # are merged with this. Defaults to the AWS.config.
42
- # @option (see AWS.config)
43
- def initialize options = {}
44
-
45
- options = options.dup # so we don't modify the options passed in
46
-
47
- @service_ruby_name = self.class.service_ruby_name
48
-
49
- # translate these into service specific configuration options,
50
- # e.g. :endpoint into :s3_endpoint
51
- [:endpoint, :region, :port, :signature_version].each do |opt|
52
- if options[opt]
53
- options[:"#{service_ruby_name}_#{opt}"] = options.delete(opt)
54
- end
55
- end
56
-
57
- @config = (options.delete(:config) || AWS.config)
58
- @config = @config.with(options)
59
-
60
- @region = @config.send(:"#{service_ruby_name}_region")
61
-
62
- @credential_provider = @config.credential_provider
63
- @http_handler = @config.http_handler
64
- @endpoint = config.send(:"#{service_ruby_name}_endpoint")
65
- @port = config.send(:"#{service_ruby_name}_port")
66
-
67
- # deprecated attributes
68
- @http_read_timeout = @config.http_read_timeout
69
- end
70
-
71
- # @return [Configuration] This clients configuration.
72
- attr_reader :config
73
-
74
- # @return [CredentialProviders::Provider] Returns the credential
75
- # provider for this client.
76
- # @api private
77
- attr_reader :credential_provider
78
-
79
- # @return [String] The snake-cased ruby name for the service
80
- # (e.g. 's3', 'iam', 'dynamo_db', etc).
81
- # @api private
82
- attr_reader :service_ruby_name
83
-
84
- # @return [Integer] What port this client makes requests via.
85
- # @api private
86
- attr_reader :port
87
-
88
- # @return [Integer] The number of seconds before requests made by
89
- # this client should timeout if they have not received a response.
90
- # @api private
91
- attr_reader :http_read_timeout
92
- deprecated :http_read_timeout, :use => 'config.http_read_timeout'
93
-
94
- # @return [String] Returns the service endpoint (hostname) this client
95
- # makes requests against.
96
- # @api private
97
- attr_reader :endpoint
98
-
99
- # @return (see Client.operations)
100
- def operations
101
- self.class.operations
102
- end
103
-
104
- # Returns a copy of the client with a different HTTP handler.
105
- # You can pass an object like BuiltinHttpHandler or you can
106
- # use a block; for example:
107
- #
108
- # s3_with_logging = s3.with_http_handler do |request, response|
109
- # $stderr.puts request.inspect
110
- # super(request, response)
111
- # $stderr.puts response.inspect
112
- # end
113
- #
114
- # The block executes in the context of an HttpHandler
115
- # instance, and `super` delegates to the HTTP handler used by
116
- # this client. This provides an easy way to spy on requests
117
- # and responses. See HttpHandler, HttpRequest, and
118
- # HttpResponse for more details on how to implement a fully
119
- # functional HTTP handler using a different HTTP library than
120
- # the one that ships with Ruby.
121
- # @param handler (nil) A new http handler. Leave blank and pass a
122
- # block to wrap the current handler with the block.
123
- # @return [Core::Client] Returns a new instance of the client class with
124
- # the modified or wrapped http handler.
125
- def with_http_handler(handler = nil, &blk)
126
- handler ||= Http::Handler.new(@http_handler, &blk)
127
- with_options(:http_handler => handler)
128
- end
129
-
130
- # Returns a new client with the passed configuration options
131
- # merged with the current configuration options.
132
- #
133
- # no_retry_client = client.with_options(:max_retries => 0)
134
- #
135
- # @param [Hash] options
136
- # @option (see AWS.config)
137
- # @return [Client]
138
- def with_options options
139
- with_config(config.with(options))
140
- end
141
-
142
- # @param [Configuration] config The configuration object to use.
143
- # @return [Core::Client] Returns a new client object with the given
144
- # configuration.
145
- # @api private
146
- def with_config config
147
- self.class.new(:config => config)
148
- end
149
-
150
- # The stub returned is memoized.
151
- # @see new_stub_for
152
- # @api private
153
- def stub_for method_name
154
- @stubs ||= {}
155
- @stubs[method_name] ||= new_stub_for(method_name)
156
- end
157
-
158
- # Primarily used for testing, this method returns an empty pseudo
159
- # service response without making a request. Its used primarily for
160
- # testing the lighter level service interfaces.
161
- # @api private
162
- def new_stub_for method_name
163
- response = Response.new(Http::Request.new, Http::Response.new)
164
- response.request_type = method_name
165
- response.request_options = {}
166
- send("simulate_#{method_name}_response", response)
167
- response.signal_success
168
- response
169
- end
170
-
171
- # Logs the warning to the configured logger, otherwise to stderr.
172
- # @param [String] warning
173
- # @return [nil]
174
- def log_warning warning
175
- message = '[aws-sdk-gem-warning] ' + warning
176
- if config.logger
177
- config.logger.warn(message)
178
- else
179
- $stderr.puts(message)
180
- end
181
- nil
182
- end
183
-
184
- # @api private
185
- def inspect
186
- "#<#{self.class.name}>"
187
- end
188
-
189
- protected
190
-
191
- # @api private
192
- def new_request
193
- Http::Request.new
194
- end
195
-
196
- def new_response(*args, &block)
197
- resp = Response.new(*args, &block)
198
- resp.config = config
199
- resp
200
- end
201
-
202
- def make_async_request response
203
-
204
- pauses = async_request_with_retries(response, response.http_request)
205
-
206
- response
207
-
208
- end
209
-
210
- def async_request_with_retries response, http_request, retry_delays = nil
211
-
212
- response.http_response = Http::Response.new
213
-
214
- handle = Object.new
215
- handle.extend AsyncHandle
216
- handle.on_complete do |status|
217
- case status
218
- when :failure
219
- response.error = StandardError.new("failed to contact the service")
220
- response.signal_failure
221
- when :success
222
- populate_error(response)
223
- retry_delays ||= sleep_durations(response)
224
- if should_retry?(response) and !retry_delays.empty?
225
- rebuild_http_request(response)
226
- @http_handler.sleep_with_callback(retry_delays.shift) do
227
- async_request_with_retries(response, response.http_request, retry_delays)
228
- end
229
- else
230
- response.error ?
231
- response.signal_failure :
232
- response.signal_success
233
- end
234
- end
235
- end
236
-
237
- @http_handler.handle_async(http_request, response.http_response, handle)
238
-
239
- end
240
-
241
- def make_sync_request response, &read_block
242
- retry_server_errors do
243
-
244
- response.http_response = Http::Response.new
245
-
246
- @http_handler.handle(
247
- response.http_request,
248
- response.http_response,
249
- &read_block)
250
-
251
- if
252
- block_given? and
253
- response.http_response.status < 300 and
254
- response.http_response.body
255
- then
256
-
257
- msg = ":http_handler read the entire http response body into "
258
- msg << "memory, it should have instead yielded chunks"
259
- log_warning(msg)
260
-
261
- # go ahead and yield the body on behalf of the handler
262
- yield(response.http_response.body)
263
-
264
- end
265
-
266
- populate_error(response)
267
- response.signal_success unless response.error
268
- response
269
-
270
- end
271
- end
272
-
273
- def retry_server_errors &block
274
-
275
- response = yield
276
-
277
- sleeps = sleep_durations(response)
278
- while should_retry?(response)
279
- break if sleeps.empty?
280
- Kernel.sleep(sleeps.shift)
281
- rebuild_http_request(response)
282
- response = yield
283
- end
284
-
285
- response
286
-
287
- end
288
-
289
- def rebuild_http_request response
290
- credential_provider.refresh if expired_credentials?(response)
291
- response.rebuild_request
292
- if redirected?(response)
293
- loc = URI.parse(response.http_response.headers['location'].first)
294
- AWS::Core::MetaUtils.extend_method(response.http_request, :host) do
295
- loc.host
296
- end
297
- response.http_request.host = loc.host
298
- response.http_request.port = loc.port
299
- response.http_request.uri = loc.path
300
- end
301
- response.retry_count += 1
302
- end
303
-
304
- def sleep_durations response
305
- if expired_credentials?(response)
306
- [0]
307
- else
308
- factor = scaling_factor(response)
309
- Array.new(config.max_retries) {|n| (2 ** n) * factor }
310
- end
311
- end
312
-
313
- def scaling_factor response
314
- throttled?(response) ? (0.5 + Kernel.rand * 0.1) : 0.3
315
- end
316
-
317
- def should_retry? response
318
- if retryable_error?(response)
319
- response.safe_to_retry?
320
- else
321
- false
322
- end
323
- end
324
-
325
- def retryable_error? response
326
- expired_credentials?(response) or
327
- response.network_error? or
328
- throttled?(response) or
329
- redirected?(response) or
330
- response.error.kind_of?(Errors::ServerError)
331
- end
332
-
333
- # @return [Boolean] Returns `true` if the response contains an
334
- # error message that indicates credentials have expired.
335
- def expired_credentials? response
336
- response.error and
337
- response.error.respond_to?(:code) and
338
- (
339
- response.error.code.to_s.match(/expired/i) or # session credentials
340
- response.error.code == 'InvalidClientTokenId' or # query services
341
- response.error.code == 'UnrecognizedClientException' or # json services
342
- response.error.code == 'InvalidAccessKeyId' or # s3
343
- response.error.code == 'AuthFailure' # ec2
344
- )
345
- end
346
-
347
- def throttled? response
348
- response.error and
349
- response.error.respond_to?(:code) and
350
- (
351
- response.error.code.to_s.match(/throttl/i) or
352
- #response.error.code == 'Throttling' or # most query services
353
- #response.error.code == 'ThrottlingException' or # json services
354
- #response.error.code == 'RequestThrottled' or # sqs
355
- response.error.code == 'ProvisionedThroughputExceededException' or # ddb
356
- response.error.code == 'RequestLimitExceeded' or # ec2
357
- response.error.code == 'BandwidthLimitExceeded' # cloud search
358
- )
359
- end
360
-
361
- def redirected? response
362
- response.http_response.status == 307
363
- end
364
-
365
- def return_or_raise options, &block
366
- response = yield
367
- unless options[:async]
368
- raise response.error if response.error
369
- end
370
- response
371
- end
372
-
373
- # Yields to the given block (which should be making a
374
- # request and returning a {Response} object). The results of the
375
- # request/response are logged.
376
- #
377
- # @param [Hash] options
378
- # @option options [Boolean] :async
379
- # @return [Response]
380
- def log_client_request options, &block
381
-
382
- # time the request, retries and all
383
- start = Time.now
384
- response = yield
385
- response.duration = Time.now - start
386
-
387
- if options[:async]
388
- response.on_complete { log_response(response) }
389
- else
390
- log_response(response)
391
- end
392
-
393
- response
394
-
395
- end
396
-
397
- # Logs the response to the configured logger.
398
- # @param [Response] response
399
- # @return [nil]
400
- def log_response response
401
- if config.logger
402
- message = config.log_formatter.format(response)
403
- config.logger.send(config.log_level, message)
404
- end
405
- nil
406
- end
407
-
408
- def populate_error response
409
-
410
- status = response.http_response.status
411
-
412
- error_code, error_message = extract_error_details(response)
413
-
414
- error_args = [
415
- response.http_request,
416
- response.http_response,
417
- error_code,
418
- error_message
419
- ]
420
-
421
- response.error =
422
- case
423
- when response.network_error? then response.http_response.network_error
424
- when error_code then error_class(error_code).new(*error_args)
425
- when status >= 500 then Errors::ServerError.new(*error_args)
426
- when status >= 300 then Errors::ClientError.new(*error_args)
427
- else nil # no error
428
- end
429
-
430
- end
431
-
432
- # Extracts the error code and error message from a response
433
- # if it contains an error. Returns nil otherwise. Should be defined
434
- # in sub-classes (e.g. QueryClient, RESTClient, etc).
435
- # @param [Response] response
436
- # @return [Array<Code,Message>,nil] Should return an array with an
437
- # error code and message, or `nil`.
438
- def extract_error_details response
439
- raise NotImplementedError
440
- end
441
-
442
- # Given an error code string, this method will return an error class.
443
- #
444
- # AWS::EC2::Client.new.send(:error_code, 'InvalidInstanceId')
445
- # #=> AWS::EC2::Errors::InvalidInstanceId
446
- #
447
- # @param [String] error_code The error code string as returned by
448
- # the service. If this class contains periods, they will be
449
- # converted into namespaces (e.g. 'Foo.Bar' becomes Errors::Foo::Bar).
450
- #
451
- # @return [Class]
452
- #
453
- def error_class error_code
454
- errors_module.error_class(error_code)
455
- end
456
-
457
- # Returns the ::Errors module for the current client.
458
- #
459
- # AWS::S3::Client.new.errors_module
460
- # #=> AWS::S3::Errors
461
- #
462
- # @return [Module]
463
- #
464
- def errors_module
465
- AWS.const_get(self.class.to_s[/(\w+)::Client/, 1])::Errors
466
- end
467
-
468
- def client_request name, options, &read_block
469
- return_or_raise(options) do
470
- log_client_request(options) do
471
-
472
- if config.stub_requests?
473
-
474
- response = stub_for(name)
475
- response.http_request = build_request(name, options)
476
- response.request_options = options
477
- response
478
-
479
- else
480
-
481
- client = self
482
-
483
- response = new_response do
484
- req = client.send(:build_request, name, options)
485
- client.send(:sign_request, req)
486
- req
487
- end
488
-
489
- response.request_type = name
490
- response.request_options = options
491
-
492
- if
493
- cacheable_request?(name, options) and
494
- cache = AWS.response_cache and
495
- cached_response = cache.cached(response)
496
- then
497
- cached_response.cached = true
498
- cached_response
499
- else
500
-
501
- # process the http request
502
- options[:async] ?
503
- make_async_request(response, &read_block) :
504
- make_sync_request(response, &read_block)
505
-
506
- # process the http response
507
- response.on_success do
508
- send("process_#{name}_response", response)
509
- if cache = AWS.response_cache
510
- cache.add(response)
511
- end
512
- end
513
-
514
- # close files we opened
515
- response.on_complete do
516
- if response.http_request.body_stream.is_a?(ManagedFile)
517
- response.http_request.body_stream.close
518
- end
519
- end
520
-
521
- response
522
-
523
- end
524
-
525
- end
526
-
527
- end
528
- end
529
- end
530
-
531
- def cacheable_request? name, options
532
- self.class::CACHEABLE_REQUESTS.include?(name)
533
- end
534
-
535
- def build_request name, options
536
-
537
- # we dont want to pass the async option to the configure block
538
- opts = options.dup
539
- opts.delete(:async)
540
-
541
- http_request = new_request
542
- http_request.access_key_id = credential_provider.access_key_id
543
-
544
- # configure the http request
545
- http_request.service_ruby_name = service_ruby_name
546
- http_request.host = endpoint
547
- http_request.port = port
548
- http_request.region = @region
549
- http_request.use_ssl = config.use_ssl?
550
-
551
- send("configure_#{name}_request", http_request, opts)
552
-
553
- http_request.headers["user-agent"] = user_agent_string
554
-
555
- if
556
- @config.http_continue_threshold and
557
- http_request.headers['content-length'] and
558
- http_request.headers['content-length'].to_i > @config.http_continue_threshold
559
- then
560
- http_request.headers["expect"] = "100-continue"
561
- http_request.continue_timeout = @config.http_continue_timeout
562
- else
563
- http_request.continue_timeout = nil
564
- end
565
-
566
- http_request
567
-
568
- end
569
-
570
- # @param [Http::Request] req
571
- # @return [Http::Request]
572
- # @api private
573
- def sign_request req
574
- req
575
- end
576
-
577
- def user_agent_string
578
- engine = (RUBY_ENGINE rescue nil or "ruby")
579
- user_agent = "%s aws-sdk-ruby/#{VERSION} %s/%s %s" %
580
- [config.user_agent_prefix, engine, RUBY_VERSION, RUBY_PLATFORM]
581
- user_agent.strip!
582
- if AWS.memoizing?
583
- user_agent << " memoizing"
584
- end
585
- user_agent
586
- end
587
-
588
- class << self
589
-
590
- # @return [Array<Symbol>] Returns a list of service operations as
591
- # method names supported by this client.
592
- # @api private
593
- def operations(options = {})
594
- if name.match(/V\d{8}$/)
595
- @operations ||= []
596
- else
597
- client_class(options).operations
598
- end
599
- end
600
-
601
- # @api private
602
- def request_builders
603
- @request_builders ||= {}
604
- end
605
-
606
- # @api private
607
- def response_parsers
608
- @response_parsers ||= {}
609
- end
610
-
611
- # @api private
612
- def new(*args, &block)
613
- options = args.last.is_a?(Hash) ? args.last : {}
614
- client = client_class(options).allocate
615
- client.send(:initialize, *args, &block)
616
- client
617
- end
618
-
619
- private
620
-
621
- def client_class(options)
622
- if name =~ /Client::V\d+$/
623
- self
624
- else
625
- const_get("V#{client_api_version(options).gsub(/-/, '')}")
626
- end
627
- end
628
-
629
- def client_api_version(options)
630
- api_version = options[:api_version]
631
- api_version ||= configured_version(options[:config]) if options[:config]
632
- api_version ||= configured_version(AWS.config)
633
- api_version || const_get(:API_VERSION)
634
- end
635
-
636
- def configured_version(config = AWS.config)
637
- svc_opt = AWS::SERVICES[name.split('::')[1]].method_name
638
- config.send(svc_opt)[:api_version]
639
- end
640
-
641
- protected
642
-
643
- # Define this in sub-classes (e.g. QueryClient, RESTClient, etc)
644
- def request_builder_for api_config, operation
645
- raise NotImplementedError
646
- end
647
-
648
- # Define this in sub-classes (e.g. QueryClient, RESTClient, etc)
649
- def response_parser_for api_config, operation
650
- raise NotImplementedError
651
- end
652
-
653
- # Adds a single method to the current client class. This method
654
- # yields a request method builder that allows you to specify how:
655
- #
656
- # * the request is built
657
- # * the response is processed
658
- # * the response is stubbed for testing
659
- #
660
- def add_client_request_method method_name, options = {}, &block
661
-
662
- operations << method_name
663
-
664
- ClientRequestMethodBuilder.new(self, method_name, &block)
665
-
666
- method_def = <<-METHOD
667
- def #{method_name}(*args, &block)
668
- options = args.first ? args.first : {}
669
- client_request(#{method_name.inspect}, options, &block)
670
- end
671
- METHOD
672
-
673
- module_eval(method_def)
674
-
675
- end
676
-
677
- # Loads the API configuration for the given API version.
678
- # @param [String] api_version The API version date string
679
- # (e.g. '2012-01-05').
680
- # @return [Hash]
681
- def load_api_config api_version
682
- lib = File.dirname(File.dirname(__FILE__))
683
- path = "#{lib}/api_config/#{service_name}-#{api_version}.yml"
684
- YAML.load(File.read(path))
685
- end
686
-
687
- # @param [Symbol] version
688
- # @param [String,nil] service_signing_name Required for `:Version4`
689
- # @api private
690
- def signature_version version, service_signing_name = nil
691
- define_method(:sign_request) do |req|
692
- @signer ||= begin
693
- signer_class = AWS::Core::Signers.const_get(version)
694
- signer_args = (version == :Version4) ?
695
- [credential_provider, service_signing_name, @region] :
696
- [credential_provider]
697
- signer_class.new(*signer_args)
698
- end
699
- @signer.sign_request(req)
700
- req
701
- end
702
- end
703
-
704
- # Defines one method for each service operation described in
705
- # the API configuration.
706
- # @param [String] api_version
707
- def define_client_methods api_version
708
-
709
- const_set(:API_VERSION, api_version)
710
-
711
- api_config = load_api_config(api_version)
712
-
713
- api_config[:operations].each do |operation|
714
-
715
- builder = request_builder_for(api_config, operation)
716
- parser = response_parser_for(api_config, operation)
717
-
718
- define_client_method(operation[:method], builder, parser)
719
-
720
- end
721
- end
722
-
723
- def define_client_method method_name, builder, parser
724
-
725
- request_builders[method_name] = builder
726
- response_parsers[method_name] = parser
727
-
728
- add_client_request_method(method_name) do
729
-
730
- configure_request do |request, request_options|
731
- builder.populate_request(request, request_options)
732
- end
733
-
734
- process_response do |response|
735
- response.data = parser.extract_data(response)
736
- end
737
-
738
- simulate_response do |response|
739
- response.data = parser.simulate
740
- end
741
-
742
- end
743
- end
744
-
745
- end
746
-
747
- # @api private
748
- class ClientRequestMethodBuilder
749
-
750
- def initialize client_class, method_name, &block
751
- @client_class = client_class
752
- @method_name = method_name
753
- configure_request {|request, options|}
754
- process_response {|response|}
755
- simulate_response {|response|}
756
- instance_eval(&block)
757
- end
758
-
759
- def configure_request options = {}, &block
760
- name = "configure_#{@method_name}_request"
761
- MetaUtils.class_extend_method(@client_class, name, &block)
762
- end
763
-
764
- def process_response &block
765
- name = "process_#{@method_name}_response"
766
- MetaUtils.class_extend_method(@client_class, name, &block)
767
- end
768
-
769
- def simulate_response &block
770
- name = "simulate_#{@method_name}_response"
771
- MetaUtils.class_extend_method(@client_class, name, &block)
772
- end
773
-
774
- end
775
-
776
- end
777
- end
778
- end