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,191 +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 'pathname'
15
-
16
- module AWS
17
- class S3
18
-
19
- # Used by S3#S3Object and S3::Client to accept options with
20
- # data that should be uploaded (streamed).
21
- # @api private
22
- module DataOptions
23
-
24
- protected
25
-
26
- # @return [Hash] Returns a hash of options with a :data option that
27
- # responds to #read and #eof?.
28
- def compute_write_options *args, &block
29
-
30
- options = convert_args_to_options_hash(*args)
31
-
32
- validate_data!(options, &block)
33
-
34
- rename_file_to_data(options)
35
-
36
- convert_data_to_io_obj(options, &block)
37
-
38
- try_to_determine_content_length(options)
39
-
40
- options
41
-
42
- end
43
-
44
- # Converts an argument list into a single hash of options. Treats
45
- # non-hash arguments in the first position as a data option.
46
- def convert_args_to_options_hash *args
47
- case args.count
48
- when 0 then {}
49
- when 1 then args[0].is_a?(Hash) ? args[0] : { :data => args[0] }
50
- when 2 then args[1].merge(:data => args[0])
51
- else
52
- msg = "expected 0, 1 or 2 arguments, got #{args.count}"
53
- raise ArgumentError, msg
54
- end
55
- end
56
-
57
- # Moves options[:file] to options[:data]. If this option is a string
58
- # then it is treated as a file path and is converted to an open file.
59
- def rename_file_to_data options
60
- if file = options.delete(:file)
61
- options[:data] = file.is_a?(String) ? open_file(file) : file
62
- end
63
- end
64
-
65
- # Converts the :data option to an IO-like object. This allows us
66
- # to always perform streaming uploads.
67
- def convert_data_to_io_obj options, &block
68
-
69
- data = options.delete(:data)
70
-
71
- if block_given?
72
- options[:data] = IOProxy.new(block)
73
- elsif data.is_a?(String)
74
- data = data.dup if data.frozen?
75
- data.force_encoding("BINARY") if data.respond_to?(:force_encoding)
76
- options[:data] = StringIO.new(data)
77
- elsif data.is_a?(Pathname)
78
- options[:data] = open_file(data.to_s)
79
- elsif io_like?(data)
80
- options[:data] = data
81
- else
82
- msg = "invalid :data option, expected a String, Pathname or "
83
- msg << "an object that responds to #read and #eof?"
84
- raise ArgumentError, msg
85
- end
86
-
87
- end
88
-
89
- # Attempts to determine the content length of the :data option.
90
- # This is only done when a content length is not already provided.
91
- def try_to_determine_content_length options
92
- unless options[:content_length]
93
-
94
- data = options[:data]
95
-
96
- length = case
97
- when data.respond_to?(:path) && data.path then File.size(data.path)
98
- when data.respond_to?(:bytesize) then data.bytesize
99
- when data.respond_to?(:size) then data.size
100
- when data.respond_to?(:length) then data.length
101
- else nil
102
- end
103
-
104
- options[:content_length] = length if length
105
-
106
- end
107
- end
108
-
109
- def validate_data! options, &block
110
-
111
- data = options[:data]
112
- file = options[:file]
113
-
114
- raise ArgumentError, 'Object data passed multiple ways.' if
115
- [data, file, block].compact.count > 1
116
-
117
- data = file if file
118
-
119
- return if block_given?
120
- return if data.kind_of?(String)
121
- return if data.kind_of?(Pathname)
122
- return if io_like?(data)
123
-
124
- msg = ":data must be provided as a String, Pathname, File, or "
125
- msg << "an object that responds to #read and #eof?"
126
- raise ArgumentError, msg
127
-
128
- end
129
-
130
- # @return [Boolean] Returns `true` if the object responds to
131
- # `#read` and `#eof?`.
132
- def io_like? io
133
- io.respond_to?(:read) and io.respond_to?(:eof?)
134
- end
135
-
136
- # @param [String] path Path to a file on disk.
137
- # @return [File] Given a path string, returns an open File.
138
- def open_file path
139
- Core::ManagedFile.open(path)
140
- end
141
-
142
- # A utility class that turns a block (with 2 args) into an
143
- # IO object that responds to #read and #eof.
144
- # @api private
145
- class IOProxy
146
-
147
- def initialize write_block
148
- unless write_block.arity == 2
149
- msg = "a write block must accept 2 yield params: a buffer and "
150
- msg << "a number of bytes to write"
151
- raise ArgumentError, msg
152
- end
153
- @write_block = write_block
154
- @eof = false
155
- end
156
-
157
- def read bytes = nil, output_buffer = nil
158
- data = if bytes
159
- (@eof) ? nil : read_chunk(bytes)
160
- else
161
- (@eof) ? "" : read_all
162
- end
163
- output_buffer ? output_buffer.replace(data || '') : data
164
- end
165
-
166
- def eof?
167
- @eof
168
- end
169
-
170
- protected
171
-
172
- def read_chunk bytes
173
- buffer = StringIO.new
174
- @write_block.call(buffer, bytes)
175
- buffer.rewind
176
- @eof = true if buffer.size < bytes
177
- buffer.read
178
- end
179
-
180
- def read_all
181
- buffer = StringIO.new
182
- buffer << read_chunk(1024 * 1024 * 5) until @eof
183
- buffer.rewind
184
- buffer.read
185
- end
186
-
187
- end
188
-
189
- end
190
- end
191
- end
@@ -1,146 +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 'openssl'
15
-
16
- module AWS
17
- class S3
18
- # @api private
19
- module EncryptionUtils
20
-
21
- protected
22
-
23
- UNSAFE_MSG = "Unsafe encryption, data is longer than key length"
24
-
25
- # @param [OpenSSL::PKey::RSA, String] key Key used to encrypt.
26
- #
27
- # @param [String] data Data to be encrypted.
28
- #
29
- # @note Use check_encryption_materials before this method to check
30
- # formatting of keys.
31
- # @note This should not be used for data longer than the key length as
32
- # it will not be cryptographically safe.
33
- #
34
- # @return [String] Returns the data encrypted with the key given.
35
- def encrypt data, key
36
- rsa = OpenSSL::PKey::RSA
37
- data_cipher_size = get_cipher_size(data.length)
38
-
39
- # Encrypting data key
40
- case key
41
- when rsa # Asymmetric encryption
42
- warn UNSAFE_MSG if key.public_key.n.num_bits < data_cipher_size
43
- key.public_encrypt(data)
44
- when String # Symmetric encryption
45
- warn UNSAFE_MSG if get_cipher_size(key.length) < data_cipher_size
46
- cipher = get_aes_cipher(:encrypt, :ECB, key)
47
- cipher.update(data) + cipher.final
48
- end
49
- end
50
-
51
- # @param [OpenSSL::PKey::RSA, String] key Key used to encrypt.
52
- #
53
- # @param [String] data Data to be encrypted.
54
- #
55
- # @note Use check_encryption_materials before this method to check
56
- # formatting of keys
57
- #
58
- # @return [String] Returns the data decrypted with the key given.
59
- def decrypt data, key
60
- rsa = OpenSSL::PKey::RSA
61
- begin
62
- case key
63
- when rsa # Asymmetric Decryption
64
- key.private_decrypt(data)
65
- when String # Symmetric Decryption
66
- cipher = get_aes_cipher(:decrypt, :ECB, key)
67
- cipher.update(data) + cipher.final
68
- end
69
- rescue OpenSSL::Cipher::CipherError
70
- raise RuntimeError, "decryption failed, incorrect key?"
71
- end
72
- end
73
-
74
- # Checks for any formatting problems for keys and initialization vectors
75
- # supported with EncryptionUtils.
76
- def check_encryption_materials mode, key
77
- rsa = OpenSSL::PKey::RSA
78
- case key
79
- when rsa
80
- unless key.private? or mode == :encrypt
81
- msg = "invalid key, #{rsa} requires a private key"
82
- raise ArgumentError, msg
83
- end
84
- when String # no problem
85
- else
86
- msg = "invalid key, must be an #{rsa} or a cipher key string"
87
- raise ArgumentError, msg
88
- end
89
- end
90
-
91
- # @param [OpenSSL::Cipher] cipher The cipher with configured key and iv.
92
- #
93
- # @yield [String, String] key_iv_pair A randomly generated key, iv pair
94
- # for use with the given cipher. Sets the key and iv on the cipher.
95
- def generate_aes_key cipher, &block
96
- key_iv_pair = [cipher.random_key, cipher.random_iv]
97
- yield(key_iv_pair) if block_given?
98
- end
99
-
100
- # @param [Symbol] mode The encryption/decryption mode. Valid inputs are
101
- # :encrypt or :decrypt
102
- #
103
- # @param [String] key Key for the cipher.
104
- #
105
- # @param [String] iv IV for the cipher.
106
- #
107
- # @return [OpenSSL::Cipher] Will return a configured `OpenSSL::Cipher`.
108
- def get_aes_cipher mode, block_mode, key = nil, iv = nil
109
-
110
- # If no key given, default to 256 bit
111
- cipher_size = (key) ? get_cipher_size(key.length) : 256
112
-
113
- cipher = OpenSSL::Cipher.new("AES-#{cipher_size}-#{block_mode}")
114
-
115
- (mode == :encrypt) ? cipher.encrypt : cipher.decrypt
116
- cipher.key = key if key
117
- cipher.iv = iv if iv
118
- cipher
119
- end
120
-
121
- # @param [Integer] size Size of data given.
122
- # @return [Integer] Returns the AES encrypted size based on a given size.
123
- def get_encrypted_size size
124
- # The next multiple of 16
125
- ((size / 16) + 1) * 16
126
- end
127
- module_function :get_encrypted_size
128
-
129
- private
130
-
131
- # @param [Fixnum] key_length Length of the key given.
132
- # @return [Fixnum] Returns the cipher size based on the key length.
133
- def get_cipher_size(key_length)
134
- case key_length
135
- when 32 then 256
136
- when 24 then 192
137
- when 16 then 128
138
- else
139
- msg = "invalid key, symmetric key required to be 16, 24, or 32 bytes "
140
- msg << "in length, saw length #{key_length}"
141
- raise ArgumentError, msg
142
- end
143
- end
144
- end
145
- end
146
- end
data/lib/aws/s3/errors.rb DELETED
@@ -1,94 +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
- class S3
16
-
17
- # This module contains exception classes for each of the error
18
- # types that S3 can return. You can use these classes to rescue
19
- # specific errors, for example:
20
- #
21
- # begin
22
- # S3.new.buckets.mybucket.
23
- # objects.myobj.write("HELLO")
24
- # rescue S3::Errors::NoSuchBucket => e
25
- # S3.new.buckets.create("mybucket")
26
- # retry
27
- # end
28
- #
29
- # All errors raised as a result of error responses from the
30
- # service are instances of either {ClientError} or {ServerError}.
31
- module Errors
32
-
33
- # @api private
34
- GRAMMAR = Core::XML::Grammar.customize
35
-
36
- extend Core::LazyErrorClasses
37
-
38
- class BatchDeleteError < StandardError
39
-
40
- def initialize error_counts
41
- @error_counts = error_counts
42
- total = error_counts.values.inject(0) {|sum,count| sum + count }
43
- super("Failed to delete #{total} objects")
44
- end
45
-
46
- # @return [Hash] Returns a hash of error codes and how many
47
- # objects failed with that code.
48
- attr_reader :error_counts
49
-
50
- end
51
-
52
- # This error is special, because S3 does not (and must not
53
- # according to RFC 2616) return a body with the HTTP response.
54
- # The interface is the same as for any other client error.
55
- class NotModified < AWS::Errors::Base
56
-
57
- include AWS::Errors::ClientError
58
-
59
- def initialize(req, resp)
60
- super(req, resp, "NotModified", "Not Modified")
61
- end
62
-
63
- end
64
-
65
- # This error is special, because S3 does not return a body with
66
- # the HTTP response. The interface is the same as for any other
67
- # client error.
68
- class NoSuchKey < AWS::Errors::Base
69
-
70
- include AWS::Errors::ClientError
71
-
72
- def initialize(req, resp, code = nil, message = nil)
73
- super(req, resp, "NoSuchKey", "No Such Key")
74
- end
75
-
76
- end
77
-
78
- # This error is special, because S3 must first retrieve the client
79
- # side encryption key in it's encrypted form before finding if the
80
- # key is incorrect.
81
- class IncorrectClientSideEncryptionKey < AWS::Errors::Base
82
-
83
- include AWS::Errors::ClientError
84
-
85
- def initialize(msg)
86
- super("",
87
- "",
88
- "IncorrectClientSideEncryptionKey",
89
- msg)
90
- end
91
- end
92
- end
93
- end
94
- end
@@ -1,351 +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 'thread'
15
-
16
- module AWS
17
- class S3
18
-
19
- # Represents a multipart upload to an S3 object. See
20
- # {S3Object#multipart_upload} for a convenient way to initiate a
21
- # multipart upload.
22
- #
23
- # Note: After you initiate multipart upload and upload one or more
24
- # parts, you must either complete or abort multipart upload in order
25
- # to stop getting charged for storage of the uploaded parts. Only
26
- # after you either complete or abort multipart upload, Amazon S3
27
- # frees up the parts storage and stops charging you for the parts
28
- # storage.
29
- class MultipartUpload
30
-
31
- include Core::Model
32
-
33
- # @api private
34
- def initialize(object, id, options = {})
35
- @id = id
36
- @object = object
37
-
38
- super
39
-
40
- @completed_parts = {}
41
- @increment_mutex = Mutex.new
42
- @completed_mutex = Mutex.new
43
- @last_part = 0
44
- end
45
-
46
- def bucket
47
- object.bucket
48
- end
49
-
50
- def inspect
51
- "<#{self.class}:#{object.bucket.name}/#{object.key}:#{id}>"
52
- end
53
- # @return [String] Returns the upload id.
54
- attr_reader :id
55
-
56
- alias_method :upload_id, :id
57
-
58
- # @return [S3Object] Returns the object this upload is intended for.
59
- attr_reader :object
60
-
61
- # @return [Boolean] Returns true if both multipart uploads
62
- # represent the same object and upload.
63
- def ==(other)
64
- other.kind_of?(MultipartUpload) and
65
- other.object == object and
66
- other.id == id
67
- end
68
-
69
- alias_method :eql?, :==
70
-
71
- # @return [Boolean] True if the upload exists.
72
- def exists?
73
- client.list_parts(base_opts)
74
- rescue Errors::NoSuchUpload => e
75
- false
76
- else
77
- true
78
- end
79
-
80
- # @return The upload initiator. This object will have `:id`
81
- # and `:display_name` methods; if the initiator is an IAM
82
- # user, the `:id` method will return the ARN of the user, and
83
- # if the initiator is an AWS account, this method will return
84
- # the same data as {#owner}.
85
- def initiator
86
- client.list_parts(base_opts).initiator
87
- end
88
-
89
- # @return The upload owner. This object will have `:id`
90
- # and `:display_name` methods.
91
- def owner
92
- client.list_parts(base_opts).owner
93
- end
94
-
95
- # @return [Symbol] The class of storage used to store the
96
- # uploaded object. Possible values:
97
- #
98
- # * `:standard`
99
- # * `:reduced_redundancy?`
100
- def storage_class
101
- client.list_parts(base_opts).storage_class.downcase.to_sym
102
- end
103
-
104
- # @return [Boolean] True if the uploaded object will be stored
105
- # with reduced redundancy.
106
- def reduced_redundancy?
107
- storage_class == :reduced_redundancy
108
- end
109
-
110
- # Aborts the upload. After a multipart upload is aborted, no
111
- # additional parts can be uploaded using that upload ID. The
112
- # storage consumed by any previously uploaded parts will be
113
- # freed. However, if any part uploads are currently in
114
- # progress, those part uploads might or might not succeed. As
115
- # a result, it might be necessary to abort a given multipart
116
- # upload multiple times in order to completely free all
117
- # storage consumed by all parts.
118
- # @return [nil]
119
- def abort
120
- unless aborted?
121
- client.abort_multipart_upload(base_opts)
122
- @aborted = true
123
- end
124
- nil
125
- end
126
- alias_method :delete, :abort
127
- alias_method :cancel, :abort
128
-
129
- # @return [Boolean] True if the upload has been aborted.
130
- # @see #abort
131
- def aborted?
132
- @aborted
133
- end
134
-
135
- # Uploads a part.
136
- #
137
- # @overload add_part(data, options = {})
138
- #
139
- # @param data The data to upload.
140
- # Valid values include:
141
- #
142
- # * A string
143
- # * A Pathname object
144
- # * Any object responding to `read` and `eof?`; the object
145
- # must support the following access methods:
146
- #
147
- # read # all at once
148
- # read(length) until eof? # in chunks
149
- #
150
- # If you specify data this way, you must also include
151
- # the `:content_length` option.
152
- #
153
- # @param [Hash] options Additional options for the upload.
154
- #
155
- # @option options [Integer] :content_length If provided,
156
- # this option must match the total number of bytes written
157
- # to S3 during the operation. This option is required if
158
- # `:data` is an IO-like object without a `size` method.
159
- #
160
- # @overload add_part(options)
161
- #
162
- # @param [Hash] options Options for the upload. Either
163
- # `:data` or `:file` is required.
164
- #
165
- # @option options :data The data to upload. Valid values
166
- # include:
167
- #
168
- # * A string
169
- # * A Pathname object
170
- # * Any object responding to `read` and `eof?`; the object
171
- # must support the following access methods:
172
- #
173
- # read # all at once
174
- # read(length) until eof? # in chunks
175
- #
176
- # If you specify data this way, you must also include
177
- # the `:content_length` option.
178
- #
179
- # @option options [String] :file Can be specified instead of
180
- # `:data`; its value specifies the path of a file to
181
- # upload.
182
- #
183
- # @option options [Integer] :content_length If provided,
184
- # this option must match the total number of bytes written
185
- # to S3 during the operation. This option is required if
186
- # `:data` is an IO-like object without a `size` method.
187
- #
188
- # @option options [Integer] :part_number The part number.
189
- def add_part(data_or_options, options = {})
190
- if data_or_options.kind_of?(Hash)
191
- part_options = base_opts.merge(data_or_options)
192
- else
193
- part_options = base_opts.merge(:data => data_or_options)
194
- end
195
- part_options.merge!(options)
196
-
197
- unless part_options[:part_number]
198
- @increment_mutex.synchronize do
199
- part_options[:part_number] = (@last_part += 1)
200
- end
201
- end
202
- part_number = part_options[:part_number]
203
-
204
- resp = client.upload_part(part_options)
205
- @completed_mutex.synchronize do
206
- @completed_parts[part_number] = {
207
- :part_number => part_number,
208
- :etag => resp.etag
209
- }
210
- end
211
- UploadedPart.new(self, part_number)
212
- end
213
-
214
- # Copies a part.
215
- #
216
- # @param [string] copy_source Full S3 name of source, ie bucket/key
217
- #
218
- # @param [Hash] options Additional options for the copy.
219
- #
220
- # @option options [Integer] :part_number The part number.
221
- #
222
- # @option options [Integer] :copy_source_range Range of bytes to copy, ie bytes=0-45687
223
- def copy_part(copy_source, options = {})
224
- part_options = base_opts.merge(options)
225
- part_options.merge!(:copy_source => copy_source)
226
-
227
- unless part_options[:part_number]
228
- @increment_mutex.synchronize do
229
- part_options[:part_number] = (@last_part += 1)
230
- end
231
- end
232
- part_number = part_options[:part_number]
233
-
234
- resp = client.copy_part(part_options)
235
- @completed_mutex.synchronize do
236
- @completed_parts[part_number] = {
237
- :part_number => part_number,
238
- :etag => resp[:etag]
239
- }
240
- end
241
- UploadedPart.new(self, part_number)
242
- end
243
-
244
- # Completes the upload by assembling previously uploaded
245
- # parts.
246
- #
247
- # @return [S3Object, ObjectVersion] If the bucket has versioning
248
- # enabled, returns the {ObjectVersion} representing the
249
- # version that was uploaded. If versioning is disabled,
250
- # returns the object.
251
- def complete(*parts)
252
- parts = parts.flatten
253
- case parts.first
254
- when :remote_parts
255
- complete_opts = get_complete_opts
256
- when :local_parts, nil
257
- complete_opts = base_opts.merge(:parts => completed_parts)
258
- else
259
- part_numbers = parts.map do |part|
260
- case part
261
- when Integer
262
- part
263
- when UploadedPart
264
- raise ArgumentError.new("cannot complete an upload with parts "+
265
- "from a different upload") unless
266
- part.upload == self
267
-
268
- part.part_number
269
- else
270
- raise ArgumentError.new("expected number or UploadedPart")
271
- end
272
- end
273
- complete_opts = get_complete_opts(part_numbers)
274
- end
275
-
276
- raise "no parts uploaded" if complete_opts[:parts].empty?
277
-
278
- resp = client.complete_multipart_upload(complete_opts)
279
- if resp.data[:version_id]
280
- ObjectVersion.new(object, resp.data[:version_id])
281
- else
282
- object
283
- end
284
- end
285
-
286
- # Completes the upload or aborts it if no parts have been
287
- # uploaded yet. Does nothing if the upload has already been
288
- # aborted.
289
- #
290
- # @return [S3Object, ObjectVersion] If the bucket has versioning
291
- # enabled, returns the {ObjectVersion} representing the
292
- # version that was uploaded. If versioning is disabled,
293
- # returns the object. If no upload was attempted (e.g. if it
294
- # was aborted or if no parts were uploaded), returns `nil`.
295
- def close
296
- if aborted?
297
- nil
298
- elsif completed_parts.empty?
299
- abort
300
- else
301
- complete
302
- end
303
- end
304
-
305
- # @return [UploadedPartCollection] A collection representing
306
- # the parts that have been uploaded to S3 for this upload.
307
- def parts
308
- UploadedPartCollection.new(self)
309
- end
310
-
311
- # @api private
312
- def completed_parts
313
- @completed_parts.values.
314
- sort { |a, b| a[:part_number] <=> b[:part_number] }
315
- end
316
-
317
- # @api private
318
- def inspect
319
- "<#{self.class}:#{object.bucket.name}/#{object.key}:#{id}>"
320
- end
321
-
322
- private
323
-
324
- def get_complete_opts(part_numbers = nil)
325
- parts = []
326
- self.parts.each do |part|
327
- parts << { :part_number => part.part_number, :etag => part.etag }
328
- end
329
-
330
- if part_numbers
331
- parts.reject! do |part|
332
- !part_numbers.include?(part[:part_number])
333
- end
334
- end
335
-
336
- base_opts.merge(:parts => parts)
337
- end
338
-
339
- def base_opts
340
- opts = {
341
- :bucket_name => object.bucket.name,
342
- :key => object.key
343
- }
344
- opts[:upload_id] = upload_id if upload_id
345
- opts
346
- end
347
-
348
- end
349
-
350
- end
351
- end