aws-sdk 1.8.5 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (386) hide show
  1. checksums.yaml +7 -0
  2. data/.yardopts +1 -0
  3. data/README.rdoc +8 -0
  4. data/lib/aws-sdk.rb +39 -35
  5. data/lib/aws/api_config/CloudFront-2012-07-01.yml +2398 -0
  6. data/lib/aws/api_config/DirectConnect-2012-10-25.yml +475 -0
  7. data/lib/aws/api_config/DynamoDB-2011-12-05.yml +8 -0
  8. data/lib/aws/api_config/DynamoDB-2012-08-10.yml +1516 -0
  9. data/lib/aws/api_config/OpsWorks-2013-02-18.yml +2 -2
  10. data/lib/aws/auto_scaling.rb +44 -44
  11. data/lib/aws/auto_scaling/activity.rb +1 -1
  12. data/lib/aws/auto_scaling/activity_collection.rb +14 -15
  13. data/lib/aws/auto_scaling/client.rb +277 -277
  14. data/lib/aws/auto_scaling/config.rb +1 -1
  15. data/lib/aws/auto_scaling/group.rb +35 -36
  16. data/lib/aws/auto_scaling/group_collection.rb +10 -10
  17. data/lib/aws/auto_scaling/group_options.rb +19 -19
  18. data/lib/aws/auto_scaling/instance.rb +27 -27
  19. data/lib/aws/auto_scaling/instance_collection.rb +10 -10
  20. data/lib/aws/auto_scaling/launch_configuration.rb +3 -3
  21. data/lib/aws/auto_scaling/launch_configuration_collection.rb +1 -1
  22. data/lib/aws/auto_scaling/notification_configuration.rb +2 -2
  23. data/lib/aws/auto_scaling/notification_configuration_collection.rb +37 -38
  24. data/lib/aws/auto_scaling/scaling_policy.rb +3 -3
  25. data/lib/aws/auto_scaling/scaling_policy_collection.rb +6 -6
  26. data/lib/aws/auto_scaling/scaling_policy_options.rb +8 -7
  27. data/lib/aws/auto_scaling/scheduled_action.rb +3 -3
  28. data/lib/aws/auto_scaling/scheduled_action_collection.rb +28 -28
  29. data/lib/aws/auto_scaling/tag_collection.rb +30 -28
  30. data/lib/aws/cloud_formation.rb +95 -94
  31. data/lib/aws/cloud_formation/client.rb +136 -133
  32. data/lib/aws/cloud_formation/config.rb +1 -1
  33. data/lib/aws/cloud_formation/stack.rb +37 -37
  34. data/lib/aws/cloud_formation/stack_collection.rb +28 -27
  35. data/lib/aws/cloud_formation/stack_event.rb +9 -11
  36. data/lib/aws/cloud_formation/stack_output.rb +1 -1
  37. data/lib/aws/cloud_formation/stack_resource.rb +6 -6
  38. data/lib/aws/cloud_formation/stack_resource_collection.rb +11 -12
  39. data/lib/aws/cloud_formation/stack_resource_summary_collection.rb +11 -11
  40. data/lib/aws/cloud_formation/stack_summary_collection.rb +39 -39
  41. data/lib/aws/cloud_front.rb +21 -21
  42. data/lib/aws/cloud_front/client.rb +853 -652
  43. data/lib/aws/cloud_front/request.rb +3 -0
  44. data/lib/aws/cloud_search.rb +22 -22
  45. data/lib/aws/cloud_search/client.rb +322 -315
  46. data/lib/aws/cloud_search/config.rb +1 -1
  47. data/lib/aws/cloud_watch.rb +39 -39
  48. data/lib/aws/cloud_watch/alarm.rb +55 -37
  49. data/lib/aws/cloud_watch/alarm_collection.rb +18 -18
  50. data/lib/aws/cloud_watch/alarm_history_item_collection.rb +2 -2
  51. data/lib/aws/cloud_watch/client.rb +360 -146
  52. data/lib/aws/cloud_watch/config.rb +1 -1
  53. data/lib/aws/cloud_watch/metric.rb +15 -15
  54. data/lib/aws/cloud_watch/metric_alarm_collection.rb +17 -17
  55. data/lib/aws/cloud_watch/metric_collection.rb +16 -16
  56. data/lib/aws/cloud_watch/metric_statistics.rb +11 -11
  57. data/lib/aws/core.rb +243 -225
  58. data/lib/aws/core/async_handle.rb +13 -13
  59. data/lib/aws/core/cacheable.rb +14 -15
  60. data/lib/aws/core/client.rb +40 -15
  61. data/lib/aws/core/collection.rb +42 -46
  62. data/lib/aws/core/collection/with_limit_and_next_token.rb +1 -1
  63. data/lib/aws/core/collection/with_next_token.rb +1 -1
  64. data/lib/aws/core/configuration.rb +97 -133
  65. data/lib/aws/core/credential_providers.rb +16 -16
  66. data/lib/aws/core/data.rb +23 -23
  67. data/lib/aws/core/http/connection_pool.rb +348 -0
  68. data/lib/aws/core/http/net_http_handler.rb +17 -26
  69. data/lib/aws/core/http/patch.rb +102 -0
  70. data/lib/aws/core/http/request.rb +13 -19
  71. data/lib/aws/core/http/response.rb +2 -2
  72. data/lib/aws/core/lazy_error_classes.rb +17 -17
  73. data/lib/aws/core/log_formatter.rb +70 -104
  74. data/lib/aws/core/options/json_serializer.rb +1 -1
  75. data/lib/aws/core/options/validator.rb +4 -4
  76. data/lib/aws/core/page_result.rb +8 -8
  77. data/lib/aws/core/policy.rb +49 -49
  78. data/lib/aws/core/region.rb +72 -0
  79. data/lib/aws/core/region_collection.rb +106 -0
  80. data/lib/aws/core/resource.rb +5 -5
  81. data/lib/aws/core/response.rb +20 -17
  82. data/lib/aws/core/rest_request_builder.rb +4 -4
  83. data/lib/aws/core/service_interface.rb +24 -2
  84. data/lib/aws/core/signature/version_3.rb +2 -2
  85. data/lib/aws/core/uri_escape.rb +1 -1
  86. data/lib/aws/core/xml/frame_stack.rb +1 -1
  87. data/lib/aws/core/xml/grammar.rb +3 -4
  88. data/lib/aws/core/xml/sax_handlers/libxml.rb +2 -2
  89. data/lib/aws/core/xml/sax_handlers/nokogiri.rb +3 -3
  90. data/lib/aws/core/xml/sax_handlers/rexml.rb +5 -5
  91. data/lib/aws/core/xml/stub.rb +9 -9
  92. data/lib/aws/data_pipeline.rb +21 -21
  93. data/lib/aws/data_pipeline/client.rb +189 -133
  94. data/lib/aws/data_pipeline/config.rb +1 -1
  95. data/lib/aws/direct_connect.rb +74 -0
  96. data/lib/aws/direct_connect/client.rb +253 -0
  97. data/lib/aws/direct_connect/config.rb +18 -0
  98. data/lib/aws/direct_connect/errors.rb +22 -0
  99. data/lib/aws/direct_connect/request.rb +27 -0
  100. data/lib/aws/dynamo_db.rb +71 -69
  101. data/lib/aws/dynamo_db/attribute_collection.rb +53 -58
  102. data/lib/aws/dynamo_db/batch_get.rb +23 -23
  103. data/lib/aws/dynamo_db/batch_write.rb +43 -43
  104. data/lib/aws/dynamo_db/binary.rb +9 -9
  105. data/lib/aws/dynamo_db/client.rb +494 -509
  106. data/lib/aws/dynamo_db/client_base.rb +91 -0
  107. data/lib/aws/dynamo_db/client_v2.rb +825 -0
  108. data/lib/aws/dynamo_db/config.rb +1 -1
  109. data/lib/aws/dynamo_db/item.rb +10 -10
  110. data/lib/aws/dynamo_db/item_collection.rb +75 -75
  111. data/lib/aws/dynamo_db/table.rb +85 -85
  112. data/lib/aws/dynamo_db/table_collection.rb +13 -13
  113. data/lib/aws/ec2.rb +132 -142
  114. data/lib/aws/ec2/attachment.rb +31 -36
  115. data/lib/aws/ec2/attachment_collection.rb +1 -1
  116. data/lib/aws/ec2/availability_zone.rb +4 -4
  117. data/lib/aws/ec2/client.rb +2272 -2125
  118. data/lib/aws/ec2/config.rb +1 -1
  119. data/lib/aws/ec2/customer_gateway.rb +6 -6
  120. data/lib/aws/ec2/customer_gateway_collection.rb +6 -6
  121. data/lib/aws/ec2/dhcp_options.rb +3 -3
  122. data/lib/aws/ec2/dhcp_options_collection.rb +10 -10
  123. data/lib/aws/ec2/elastic_ip.rb +15 -15
  124. data/lib/aws/ec2/elastic_ip_collection.rb +11 -15
  125. data/lib/aws/ec2/export_task.rb +4 -4
  126. data/lib/aws/ec2/export_task_collection.rb +11 -11
  127. data/lib/aws/ec2/filtered_collection.rb +6 -8
  128. data/lib/aws/ec2/image.rb +46 -40
  129. data/lib/aws/ec2/image_collection.rb +44 -52
  130. data/lib/aws/ec2/instance.rb +64 -62
  131. data/lib/aws/ec2/instance_collection.rb +47 -50
  132. data/lib/aws/ec2/internet_gateway.rb +6 -6
  133. data/lib/aws/ec2/internet_gateway/attachment.rb +13 -13
  134. data/lib/aws/ec2/internet_gateway_collection.rb +3 -3
  135. data/lib/aws/ec2/key_pair.rb +3 -3
  136. data/lib/aws/ec2/key_pair_collection.rb +12 -12
  137. data/lib/aws/ec2/network_acl.rb +39 -39
  138. data/lib/aws/ec2/network_acl/association.rb +2 -2
  139. data/lib/aws/ec2/network_acl/entry.rb +22 -22
  140. data/lib/aws/ec2/network_acl_collection.rb +2 -2
  141. data/lib/aws/ec2/network_interface.rb +13 -4
  142. data/lib/aws/ec2/network_interface/attachment.rb +3 -3
  143. data/lib/aws/ec2/network_interface_collection.rb +5 -5
  144. data/lib/aws/ec2/permission_collection.rb +1 -1
  145. data/lib/aws/ec2/region.rb +6 -6
  146. data/lib/aws/ec2/region_collection.rb +1 -1
  147. data/lib/aws/ec2/reserved_instances_collection.rb +2 -2
  148. data/lib/aws/ec2/reserved_instances_offering_collection.rb +2 -2
  149. data/lib/aws/ec2/resource_tag_collection.rb +5 -5
  150. data/lib/aws/ec2/route_table.rb +14 -14
  151. data/lib/aws/ec2/route_table/association.rb +22 -22
  152. data/lib/aws/ec2/route_table/route.rb +8 -8
  153. data/lib/aws/ec2/route_table_collection.rb +3 -3
  154. data/lib/aws/ec2/security_group.rb +39 -41
  155. data/lib/aws/ec2/security_group_collection.rb +19 -21
  156. data/lib/aws/ec2/snapshot.rb +3 -3
  157. data/lib/aws/ec2/snapshot_collection.rb +11 -12
  158. data/lib/aws/ec2/subnet.rb +2 -2
  159. data/lib/aws/ec2/subnet_collection.rb +17 -17
  160. data/lib/aws/ec2/tag_collection.rb +1 -1
  161. data/lib/aws/ec2/tagged_collection.rb +7 -7
  162. data/lib/aws/ec2/tagged_item.rb +10 -10
  163. data/lib/aws/ec2/volume.rb +16 -16
  164. data/lib/aws/ec2/volume_collection.rb +9 -12
  165. data/lib/aws/ec2/vpc.rb +6 -6
  166. data/lib/aws/ec2/vpc_collection.rb +10 -10
  167. data/lib/aws/ec2/vpn_connection.rb +4 -4
  168. data/lib/aws/ec2/vpn_connection/telemetry.rb +1 -1
  169. data/lib/aws/ec2/vpn_connection_collection.rb +6 -6
  170. data/lib/aws/ec2/vpn_gateway.rb +2 -2
  171. data/lib/aws/ec2/vpn_gateway_collection.rb +5 -5
  172. data/lib/aws/elastic_beanstalk.rb +12 -12
  173. data/lib/aws/elastic_beanstalk/client.rb +376 -368
  174. data/lib/aws/elastic_beanstalk/config.rb +1 -1
  175. data/lib/aws/elastic_transcoder.rb +5 -5
  176. data/lib/aws/elastic_transcoder/client.rb +283 -283
  177. data/lib/aws/elastic_transcoder/config.rb +1 -1
  178. data/lib/aws/elasticache.rb +12 -12
  179. data/lib/aws/elasticache/client.rb +484 -479
  180. data/lib/aws/elasticache/config.rb +1 -1
  181. data/lib/aws/elb.rb +23 -23
  182. data/lib/aws/elb/availability_zone_collection.rb +34 -34
  183. data/lib/aws/elb/backend_server_policy_collection.rb +24 -24
  184. data/lib/aws/elb/client.rb +153 -153
  185. data/lib/aws/elb/config.rb +1 -1
  186. data/lib/aws/elb/errors.rb +1 -1
  187. data/lib/aws/elb/instance_collection.rb +20 -25
  188. data/lib/aws/elb/listener.rb +3 -3
  189. data/lib/aws/elb/listener_collection.rb +8 -8
  190. data/lib/aws/elb/load_balancer.rb +15 -16
  191. data/lib/aws/elb/load_balancer_collection.rb +36 -24
  192. data/lib/aws/elb/load_balancer_policy.rb +1 -1
  193. data/lib/aws/elb/load_balancer_policy_collection.rb +5 -5
  194. data/lib/aws/emr.rb +28 -26
  195. data/lib/aws/emr/client.rb +165 -149
  196. data/lib/aws/emr/config.rb +1 -1
  197. data/lib/aws/emr/instance_group.rb +1 -1
  198. data/lib/aws/emr/instance_group_collection.rb +1 -1
  199. data/lib/aws/emr/job_flow.rb +27 -26
  200. data/lib/aws/emr/job_flow_collection.rb +34 -34
  201. data/lib/aws/errors.rb +7 -7
  202. data/lib/aws/glacier.rb +21 -21
  203. data/lib/aws/glacier/archive_collection.rb +2 -2
  204. data/lib/aws/glacier/client.rb +139 -140
  205. data/lib/aws/glacier/config.rb +1 -1
  206. data/lib/aws/glacier/vault.rb +2 -2
  207. data/lib/aws/glacier/vault_collection.rb +1 -1
  208. data/lib/aws/iam.rb +133 -144
  209. data/lib/aws/iam/access_key.rb +17 -17
  210. data/lib/aws/iam/access_key_collection.rb +22 -22
  211. data/lib/aws/iam/account_alias_collection.rb +2 -2
  212. data/lib/aws/iam/client.rb +429 -420
  213. data/lib/aws/iam/collection.rb +1 -1
  214. data/lib/aws/iam/config.rb +2 -2
  215. data/lib/aws/iam/group.rb +8 -8
  216. data/lib/aws/iam/group_collection.rb +16 -16
  217. data/lib/aws/iam/group_policy_collection.rb +6 -6
  218. data/lib/aws/iam/group_user_collection.rb +3 -3
  219. data/lib/aws/iam/mfa_device.rb +1 -1
  220. data/lib/aws/iam/mfa_device_collection.rb +9 -9
  221. data/lib/aws/iam/policy_collection.rb +4 -4
  222. data/lib/aws/iam/resource.rb +2 -2
  223. data/lib/aws/iam/server_certificate.rb +1 -1
  224. data/lib/aws/iam/server_certificate_collection.rb +15 -15
  225. data/lib/aws/iam/signing_certificate.rb +29 -29
  226. data/lib/aws/iam/signing_certificate_collection.rb +23 -23
  227. data/lib/aws/iam/user.rb +33 -38
  228. data/lib/aws/iam/user_collection.rb +27 -27
  229. data/lib/aws/iam/user_group_collection.rb +3 -3
  230. data/lib/aws/iam/user_policy_collection.rb +6 -6
  231. data/lib/aws/iam/virtual_mfa_device.rb +12 -12
  232. data/lib/aws/iam/virtual_mfa_device_collection.rb +4 -4
  233. data/lib/aws/import_export.rb +22 -21
  234. data/lib/aws/import_export/client.rb +47 -43
  235. data/lib/aws/ops_works.rb +5 -5
  236. data/lib/aws/ops_works/client.rb +484 -438
  237. data/lib/aws/ops_works/config.rb +1 -1
  238. data/lib/aws/rails.rb +34 -34
  239. data/lib/aws/rds.rb +18 -18
  240. data/lib/aws/rds/client.rb +1286 -1277
  241. data/lib/aws/rds/config.rb +1 -1
  242. data/lib/aws/rds/db_instance.rb +15 -4
  243. data/lib/aws/rds/db_snapshot.rb +1 -1
  244. data/lib/aws/record.rb +50 -24
  245. data/lib/aws/record/abstract_base.rb +52 -60
  246. data/lib/aws/record/attributes.rb +79 -79
  247. data/lib/aws/record/conversion.rb +1 -1
  248. data/lib/aws/record/dirty_tracking.rb +69 -67
  249. data/lib/aws/record/errors.rb +21 -21
  250. data/lib/aws/record/exceptions.rb +2 -2
  251. data/lib/aws/record/hash_model.rb +20 -21
  252. data/lib/aws/record/hash_model/attributes.rb +13 -15
  253. data/lib/aws/record/hash_model/finder_methods.rb +46 -46
  254. data/lib/aws/record/hash_model/scope.rb +31 -31
  255. data/lib/aws/record/model.rb +136 -136
  256. data/lib/aws/record/model/attributes.rb +57 -59
  257. data/lib/aws/record/model/finder_methods.rb +67 -67
  258. data/lib/aws/record/model/scope.rb +48 -49
  259. data/lib/aws/record/naming.rb +1 -1
  260. data/lib/aws/record/scope.rb +23 -19
  261. data/lib/aws/record/validations.rb +253 -271
  262. data/lib/aws/record/validator.rb +3 -3
  263. data/lib/aws/record/validators/acceptance.rb +1 -3
  264. data/lib/aws/record/validators/block.rb +1 -3
  265. data/lib/aws/record/validators/confirmation.rb +1 -3
  266. data/lib/aws/record/validators/count.rb +2 -4
  267. data/lib/aws/record/validators/exclusion.rb +2 -4
  268. data/lib/aws/record/validators/format.rb +2 -4
  269. data/lib/aws/record/validators/inclusion.rb +1 -3
  270. data/lib/aws/record/validators/length.rb +5 -7
  271. data/lib/aws/record/validators/method.rb +1 -3
  272. data/lib/aws/record/validators/numericality.rb +6 -8
  273. data/lib/aws/record/validators/presence.rb +1 -3
  274. data/lib/aws/redshift.rb +14 -14
  275. data/lib/aws/redshift/client.rb +596 -592
  276. data/lib/aws/redshift/config.rb +1 -1
  277. data/lib/aws/route_53.rb +30 -30
  278. data/lib/aws/route_53/change_batch.rb +7 -7
  279. data/lib/aws/route_53/client.rb +188 -152
  280. data/lib/aws/route_53/hosted_zone.rb +4 -4
  281. data/lib/aws/route_53/hosted_zone_collection.rb +7 -7
  282. data/lib/aws/route_53/resource_record_set.rb +10 -10
  283. data/lib/aws/route_53/resource_record_set_collection.rb +6 -6
  284. data/lib/aws/s3.rb +79 -79
  285. data/lib/aws/s3/access_control_list.rb +44 -36
  286. data/lib/aws/s3/acl_options.rb +51 -51
  287. data/lib/aws/s3/bucket.rb +146 -146
  288. data/lib/aws/s3/bucket_collection.rb +21 -21
  289. data/lib/aws/s3/bucket_lifecycle_configuration.rb +81 -82
  290. data/lib/aws/s3/bucket_tag_collection.rb +4 -2
  291. data/lib/aws/s3/cipher_io.rb +5 -4
  292. data/lib/aws/s3/client.rb +89 -84
  293. data/lib/aws/s3/client/xml.rb +1 -1
  294. data/lib/aws/s3/config.rb +7 -1
  295. data/lib/aws/s3/cors_rule.rb +2 -0
  296. data/lib/aws/s3/cors_rule_collection.rb +42 -40
  297. data/lib/aws/s3/data_options.rb +16 -11
  298. data/lib/aws/s3/encryption_utils.rb +2 -2
  299. data/lib/aws/s3/errors.rb +7 -7
  300. data/lib/aws/s3/multipart_upload.rb +30 -33
  301. data/lib/aws/s3/multipart_upload_collection.rb +8 -6
  302. data/lib/aws/s3/object_collection.rb +35 -35
  303. data/lib/aws/s3/object_metadata.rb +6 -6
  304. data/lib/aws/s3/object_version.rb +4 -4
  305. data/lib/aws/s3/object_version_collection.rb +15 -15
  306. data/lib/aws/s3/policy.rb +2 -2
  307. data/lib/aws/s3/prefixed_collection.rb +9 -5
  308. data/lib/aws/s3/presigned_post.rb +39 -37
  309. data/lib/aws/s3/request.rb +11 -11
  310. data/lib/aws/s3/s3_object.rb +210 -200
  311. data/lib/aws/s3/tree.rb +25 -27
  312. data/lib/aws/s3/tree/child_collection.rb +3 -3
  313. data/lib/aws/s3/tree/leaf_node.rb +2 -2
  314. data/lib/aws/s3/tree/parent.rb +1 -1
  315. data/lib/aws/s3/website_configuration.rb +13 -13
  316. data/lib/aws/simple_db.rb +83 -83
  317. data/lib/aws/simple_db/attribute.rb +9 -7
  318. data/lib/aws/simple_db/attribute_collection.rb +22 -13
  319. data/lib/aws/simple_db/client.rb +107 -107
  320. data/lib/aws/simple_db/config.rb +7 -1
  321. data/lib/aws/simple_db/consistent_read_option.rb +5 -5
  322. data/lib/aws/simple_db/domain.rb +4 -2
  323. data/lib/aws/simple_db/domain_collection.rb +4 -4
  324. data/lib/aws/simple_db/domain_metadata.rb +5 -5
  325. data/lib/aws/simple_db/errors.rb +9 -9
  326. data/lib/aws/simple_db/item.rb +5 -5
  327. data/lib/aws/simple_db/item_collection.rb +83 -81
  328. data/lib/aws/simple_db/item_data.rb +4 -4
  329. data/lib/aws/simple_db/put_attributes.rb +3 -3
  330. data/lib/aws/simple_email_service.rb +140 -140
  331. data/lib/aws/simple_email_service/client.rb +82 -76
  332. data/lib/aws/simple_email_service/config.rb +1 -2
  333. data/lib/aws/simple_email_service/email_address_collection.rb +3 -3
  334. data/lib/aws/simple_email_service/identity.rb +8 -8
  335. data/lib/aws/simple_email_service/quotas.rb +8 -6
  336. data/lib/aws/simple_workflow.rb +106 -106
  337. data/lib/aws/simple_workflow/activity_task.rb +15 -22
  338. data/lib/aws/simple_workflow/activity_task_collection.rb +15 -15
  339. data/lib/aws/simple_workflow/activity_type.rb +23 -23
  340. data/lib/aws/simple_workflow/activity_type_collection.rb +23 -23
  341. data/lib/aws/simple_workflow/client.rb +1004 -956
  342. data/lib/aws/simple_workflow/config.rb +1 -1
  343. data/lib/aws/simple_workflow/count.rb +5 -5
  344. data/lib/aws/simple_workflow/decision_task.rb +129 -129
  345. data/lib/aws/simple_workflow/decision_task_collection.rb +59 -59
  346. data/lib/aws/simple_workflow/domain.rb +11 -11
  347. data/lib/aws/simple_workflow/domain_collection.rb +26 -26
  348. data/lib/aws/simple_workflow/history_event.rb +32 -32
  349. data/lib/aws/simple_workflow/history_event_collection.rb +3 -3
  350. data/lib/aws/simple_workflow/option_formatters.rb +5 -5
  351. data/lib/aws/simple_workflow/request.rb +1 -1
  352. data/lib/aws/simple_workflow/resource.rb +1 -1
  353. data/lib/aws/simple_workflow/type.rb +8 -8
  354. data/lib/aws/simple_workflow/type_collection.rb +15 -15
  355. data/lib/aws/simple_workflow/workflow_execution.rb +70 -72
  356. data/lib/aws/simple_workflow/workflow_execution_collection.rb +130 -130
  357. data/lib/aws/simple_workflow/workflow_type.rb +27 -25
  358. data/lib/aws/simple_workflow/workflow_type_collection.rb +20 -20
  359. data/lib/aws/sns.rb +25 -25
  360. data/lib/aws/sns/client.rb +55 -55
  361. data/lib/aws/sns/config.rb +1 -1
  362. data/lib/aws/sns/policy.rb +1 -1
  363. data/lib/aws/sns/subscription.rb +7 -7
  364. data/lib/aws/sns/subscription_collection.rb +5 -5
  365. data/lib/aws/sns/topic.rb +49 -49
  366. data/lib/aws/sns/topic_collection.rb +2 -2
  367. data/lib/aws/sns/topic_subscription_collection.rb +5 -5
  368. data/lib/aws/sqs.rb +20 -20
  369. data/lib/aws/sqs/client.rb +78 -78
  370. data/lib/aws/sqs/config.rb +1 -1
  371. data/lib/aws/sqs/errors.rb +12 -12
  372. data/lib/aws/sqs/queue.rb +66 -67
  373. data/lib/aws/sqs/queue_collection.rb +16 -8
  374. data/lib/aws/sqs/received_message.rb +7 -6
  375. data/lib/aws/storage_gateway.rb +21 -21
  376. data/lib/aws/storage_gateway/client.rb +269 -202
  377. data/lib/aws/storage_gateway/config.rb +1 -1
  378. data/lib/aws/sts.rb +10 -8
  379. data/lib/aws/sts/client.rb +35 -35
  380. data/lib/aws/sts/session.rb +3 -3
  381. data/lib/aws/version.rb +1 -2
  382. metadata +23 -21
  383. data/lib/aws/core/autoloader.rb +0 -64
  384. data/lib/net/http/connection_pool.rb +0 -226
  385. data/lib/net/http/connection_pool/connection.rb +0 -189
  386. data/lib/net/http/connection_pool/session.rb +0 -126
@@ -141,7 +141,7 @@ module AWS
141
141
  element("DeleteMarker") { boolean_value }
142
142
  list
143
143
  end
144
- element("Error") { list; rename(:errors) }
144
+ element("Error") { list; rename(:errors) }
145
145
  end
146
146
 
147
147
  CompleteMultipartUpload = BaseGrammar.customize
@@ -13,7 +13,13 @@
13
13
 
14
14
  AWS::Core::Configuration.module_eval do
15
15
 
16
- add_service 'S3', 's3', 's3.amazonaws.com'
16
+ add_service 'S3', 's3' do |region|
17
+ if region == 'us-east-1'
18
+ 's3.amazonaws.com'
19
+ else
20
+ 's3-%s.amazonaws.com' % region
21
+ end
22
+ end
17
23
 
18
24
  add_option :s3_force_path_style, false, :boolean => true
19
25
 
@@ -16,6 +16,8 @@ module AWS
16
16
 
17
17
  # Represents a single CORS rule for an S3 {Bucket}.
18
18
  #
19
+ # @example
20
+ #
19
21
  # rule = bucket.cors.first
20
22
  # rule.allowed_methods #=> ['GET', 'HEAD']
21
23
  # rule.allowed_origins #=> ['*']
@@ -16,50 +16,49 @@ module AWS
16
16
 
17
17
  # Manages the CORS rules for a single bucket.
18
18
  #
19
- # == Getting Rules
19
+ # ## Getting Rules
20
20
  #
21
21
  # To get the CORS rules for a bucket, use the {Bucket#cors} method. This
22
22
  # returns a CORSRuleCollection for the bucket. The collection is
23
23
  # enumerable.
24
24
  #
25
- # # enumerating all rules for a buck
26
- # bucket.cors.each do |rule|
27
- # # rule is a CORSRule object
28
- # end
25
+ # # enumerating all rules for a buck
26
+ # bucket.cors.each do |rule|
27
+ # # rule is a CORSRule object
28
+ # end
29
29
  #
30
- # == Setting Rules
30
+ # ## Setting Rules
31
31
  #
32
32
  # You can set the rules for a bucket (replacing all existing rules) using
33
33
  # the {#set} method.
34
34
  #
35
- # # accepts a list of one or more rules
36
- # bucket.rules.set(rule1, rule2)
35
+ # # accepts a list of one or more rules
36
+ # bucket.rules.set(rule1, rule2)
37
37
  #
38
- # # rules can be an array of rules
39
- # bucket.rules.set(rules)
38
+ # # rules can be an array of rules
39
+ # bucket.rules.set(rules)
40
40
  #
41
- # # passing an empty list or array removes all rules
42
- # bucket.rules.set([])
43
- # bucket.rules.clear # does the same thing
41
+ # # passing an empty list or array removes all rules
42
+ # bucket.rules.set([])
43
+ # bucket.rules.clear # does the same thing
44
44
  #
45
45
  # Each rule can be a Hash, a {CORSRule} or another {CORSRuleCollection}.
46
46
  # See {Client#put_bucket_cors} for a list of keys for a rule hash.
47
47
  #
48
- # == Adding Rules
48
+ # ## Adding Rules
49
49
  #
50
50
  # Adding rules is the same as setting rules. Rules you add will be
51
51
  # appended to the end of the existing list of rules.
52
52
  #
53
- # # add one or more rules
54
- # bucket.rules.add(rules)
53
+ # # add one or more rules
54
+ # bucket.rules.add(rules)
55
55
  #
56
- # == Deleting Rules
56
+ # ## Deleting Rules
57
57
  #
58
58
  # To remove a rule, use the {#delete_if} method.
59
59
  #
60
- # # delete rules that allow access from any domain
61
- # bucket.cors.delete_if{|rule| rule.allowed_origins.include?('*')
62
- #
60
+ # # delete rules that allow access from any domain
61
+ # bucket.cors.delete_if{|rule| rule.allowed_origins.include?('*')
63
62
  class CORSRuleCollection
64
63
 
65
64
  include Core::Collection::Simple
@@ -77,18 +76,18 @@ module AWS
77
76
  # Replaces the CORS rules attached to this bucket. You can pass
78
77
  # one or more rules as an array or a list.
79
78
  #
80
- # # replace all exisitng rules with a single rule
81
- # bucket.cors.set(
82
- # :allowed_methods => %w(GET),
83
- # :allowed_origins => %w(http://*.mydomain.com),
84
- # :max_age_seconds => 3600)
79
+ # # replace all exisitng rules with a single rule
80
+ # bucket.cors.set(
81
+ # :allowed_methods => %w(GET),
82
+ # :allowed_origins => %w(http://*.mydomain.com),
83
+ # :max_age_seconds => 3600)
85
84
  #
86
85
  # If you pass an empty array, all of the rules will be removed from
87
86
  # the bucket.
88
87
  #
89
- # # these two lines are equivilent
90
- # bucket.cors.clear
91
- # bucket.cors.set([])
88
+ # # these two lines are equivilent
89
+ # bucket.cors.clear
90
+ # bucket.cors.set([])
92
91
  #
93
92
  # @param [Hash,CORSRule,CORSRuleCollection] rules A list or array
94
93
  # of one or more rules to set. Each rule may be a Hash, a CORSRule
@@ -113,19 +112,19 @@ module AWS
113
112
 
114
113
  # Add one or more CORS rules to this bucket.
115
114
  #
116
- # # adding a single rule as a hash
117
- # bucket.cors.add(
118
- # :allowed_methods => %w(GET HEAD),
119
- # :allowed_origins => %w(*),
120
- # :max_age_seconds => 3600)
115
+ # # adding a single rule as a hash
116
+ # bucket.cors.add(
117
+ # :allowed_methods => %w(GET HEAD),
118
+ # :allowed_origins => %w(*),
119
+ # :max_age_seconds => 3600)
121
120
  #
122
121
  # You can add multiple rules in a single call:
123
122
  #
124
- # # each rule may be a hash, CORSRule or a CORSRuleCollection,
125
- # bucket.cors.add(rules)
123
+ # # each rule may be a hash, CORSRule or a CORSRuleCollection,
124
+ # bucket.cors.add(rules)
126
125
  #
127
- # # alternatively you can pass a list of rules
128
- # bucket.cors.add(rule1, rule2, ...)
126
+ # # alternatively you can pass a list of rules
127
+ # bucket.cors.add(rule1, rule2, ...)
129
128
  #
130
129
  # @param (see #set)
131
130
  # @return (see #set)
@@ -134,14 +133,15 @@ module AWS
134
133
  end
135
134
  alias_method :create, :add
136
135
 
137
- # Deletes every rule for which the block evaluates to +true+.
136
+ # Deletes every rule for which the block evaluates to `true`.
137
+ #
138
+ # @example Remove all rules that are open to the 'world'
138
139
  #
139
- # # remove all rules that are open to the 'world'
140
140
  # bucket.cors.delete_if{|rule| rule.allowed_origins.include?('*') }
141
141
  #
142
142
  # @yield [rule]
143
143
  # @yieldparam [CORSRule] rule
144
- # @yieldreturn [Boolean] Return +true+ for each rule you want to delete.
144
+ # @yieldreturn [Boolean] Return `true` for each rule you want to delete.
145
145
  # @return (see #set)
146
146
  def delete_if &block
147
147
  rules = []
@@ -153,6 +153,8 @@ module AWS
153
153
 
154
154
  # Removes all CORS rules attached to this bucket.
155
155
  #
156
+ # @example
157
+ #
156
158
  # bucket.cors.count #=> 3
157
159
  # bucket.cors.clear
158
160
  # bucket.cors.count #=> 0
@@ -126,8 +126,8 @@ module AWS
126
126
 
127
127
  end
128
128
 
129
- # @return [Boolean] Returns +true+ if the object responds to
130
- # +#read+ and +#eof?+.
129
+ # @return [Boolean] Returns `true` if the object responds to
130
+ # `#read` and `#eof?`.
131
131
  def io_like? io
132
132
  io.respond_to?(:read) and io.respond_to?(:eof?)
133
133
  end
@@ -153,16 +153,13 @@ module AWS
153
153
  @eof = false
154
154
  end
155
155
 
156
- def read bytes = nil
157
- if bytes
158
- buffer = StringIO.new
159
- @write_block.call(buffer, bytes)
160
- buffer.rewind
161
- @eof = true if buffer.size < bytes
162
- buffer.size == 0 ? nil : buffer.read
156
+ def read bytes = nil, output_buffer = nil
157
+ data = if bytes
158
+ (@eof) ? nil : read_chunk(bytes)
163
159
  else
164
- read_all
160
+ (@eof) ? "" : read_all
165
161
  end
162
+ output_buffer ? output_buffer.replace(data || '') : data
166
163
  end
167
164
 
168
165
  def eof?
@@ -171,9 +168,17 @@ module AWS
171
168
 
172
169
  protected
173
170
 
171
+ def read_chunk bytes
172
+ buffer = StringIO.new
173
+ @write_block.call(buffer, bytes)
174
+ buffer.rewind
175
+ @eof = true if buffer.size < bytes
176
+ buffer.read
177
+ end
178
+
174
179
  def read_all
175
180
  buffer = StringIO.new
176
- buffer << read(1024 * 1024 * 5) until eof?
181
+ buffer << read_chunk(1024 * 1024 * 5) until @eof
177
182
  buffer.rewind
178
183
  buffer.read
179
184
  end
@@ -31,7 +31,7 @@ module AWS
31
31
  # @return [String] Returns the data encrypted with the key given.
32
32
  def encrypt data, key
33
33
  rsa = OpenSSL::PKey::RSA
34
- ## Encrypting data key
34
+ # Encrypting data key
35
35
  case key
36
36
  when rsa # Asymmetric encryption
37
37
  key.public_encrypt(data)
@@ -97,7 +97,7 @@ module AWS
97
97
  #
98
98
  # @param [String] iv IV for the cipher.
99
99
  #
100
- # @return [OpenSSL::Cipher] Will return a configured +OpenSSL::Cipher+.
100
+ # @return [OpenSSL::Cipher] Will return a configured `OpenSSL::Cipher`.
101
101
  def get_aes_cipher mode, block_mode, key = nil, iv = nil
102
102
 
103
103
  # If no key given, default to 256 bit
@@ -18,13 +18,13 @@ module AWS
18
18
  # types that S3 can return. You can use these classes to rescue
19
19
  # specific errors, for example:
20
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
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
28
  #
29
29
  # All errors raised as a result of error responses from the
30
30
  # service are instances of either {ClientError} or {ServerError}.
@@ -70,17 +70,17 @@ module AWS
70
70
  true
71
71
  end
72
72
 
73
- # @return The upload initiator. This object will have +:id+
74
- # and +:display_name+ methods; if the initiator is an IAM
75
- # user, the +:id+ method will return the ARN of the user, and
73
+ # @return The upload initiator. This object will have `:id`
74
+ # and `:display_name` methods; if the initiator is an IAM
75
+ # user, the `:id` method will return the ARN of the user, and
76
76
  # if the initiator is an AWS account, this method will return
77
77
  # the same data as {#owner}.
78
78
  def initiator
79
79
  client.list_parts(base_opts).initiator
80
80
  end
81
81
 
82
- # @return The upload owner. This object will have +:id+
83
- # and +:display_name+ methods.
82
+ # @return The upload owner. This object will have `:id`
83
+ # and `:display_name` methods.
84
84
  def owner
85
85
  client.list_parts(base_opts).owner
86
86
  end
@@ -88,8 +88,8 @@ module AWS
88
88
  # @return [Symbol] The class of storage used to store the
89
89
  # uploaded object. Possible values:
90
90
  #
91
- # * +:standard+
92
- # * +:reduced_redundancy?+
91
+ # * `:standard`
92
+ # * `:reduced_redundancy?`
93
93
  def storage_class
94
94
  client.list_parts(base_opts).storage_class.downcase.to_sym
95
95
  end
@@ -129,57 +129,54 @@ module AWS
129
129
  #
130
130
  # @overload add_part(data, options = {})
131
131
  #
132
- # @param data The data to upload. Valid values include:
132
+ # @param data The data to upload.
133
+ # Valid values include:
133
134
  #
134
- # * A string
135
+ # * A string
136
+ # * A Pathname object
137
+ # * Any object responding to `read` and `eof?`; the object
138
+ # must support the following access methods:
135
139
  #
136
- # * A Pathname object
140
+ # read # all at once
141
+ # read(length) until eof? # in chunks
137
142
  #
138
- # * Any object responding to +read+ and +eof?+; the object
139
- # must support the following access methods:
140
- #
141
- # read # all at once
142
- # read(length) until eof? # in chunks
143
- #
144
- # If you specify data this way, you must also include
145
- # the +:content_length+ option.
143
+ # If you specify data this way, you must also include
144
+ # the `:content_length` option.
146
145
  #
147
146
  # @param [Hash] options Additional options for the upload.
148
147
  #
149
148
  # @option options [Integer] :content_length If provided,
150
149
  # this option must match the total number of bytes written
151
150
  # to S3 during the operation. This option is required if
152
- # +:data+ is an IO-like object without a +size+ method.
151
+ # `:data` is an IO-like object without a `size` method.
153
152
  #
154
153
  # @overload add_part(options)
155
154
  #
156
155
  # @param [Hash] options Options for the upload. Either
157
- # +:data+ or +:file+ is required.
156
+ # `:data` or `:file` is required.
158
157
  #
159
158
  # @option options :data The data to upload. Valid values
160
159
  # include:
161
160
  #
162
- # * A string
163
- #
164
- # * A Pathname object
165
- #
166
- # * Any object responding to +read+ and +eof?+; the object
167
- # must support the following access methods:
161
+ # * A string
162
+ # * A Pathname object
163
+ # * Any object responding to `read` and `eof?`; the object
164
+ # must support the following access methods:
168
165
  #
169
- # read # all at once
170
- # read(length) until eof? # in chunks
166
+ # read # all at once
167
+ # read(length) until eof? # in chunks
171
168
  #
172
- # If you specify data this way, you must also include
173
- # the +:content_length+ option.
169
+ # If you specify data this way, you must also include
170
+ # the `:content_length` option.
174
171
  #
175
172
  # @option options [String] :file Can be specified instead of
176
- # +:data+; its value specifies the path of a file to
173
+ # `:data`; its value specifies the path of a file to
177
174
  # upload.
178
175
  #
179
176
  # @option options [Integer] :content_length If provided,
180
177
  # this option must match the total number of bytes written
181
178
  # to S3 during the operation. This option is required if
182
- # +:data+ is an IO-like object without a +size+ method.
179
+ # `:data` is an IO-like object without a `size` method.
183
180
  #
184
181
  # @option options [Integer] :part_number The part number.
185
182
  def add_part(data_or_options, options = {})
@@ -257,7 +254,7 @@ module AWS
257
254
  # enabled, returns the {ObjectVersion} representing the
258
255
  # version that was uploaded. If versioning is disabled,
259
256
  # returns the object. If no upload was attempted (e.g. if it
260
- # was aborted or if no parts were uploaded), returns +nil+.
257
+ # was aborted or if no parts were uploaded), returns `nil`.
261
258
  def close
262
259
  if aborted?
263
260
  nil
@@ -17,14 +17,16 @@ module AWS
17
17
  # Represents the uploads in progress for a bucket.
18
18
  #
19
19
  # @example Finding uploads by prefix
20
- # bucket.multipart_uploads.with_prefix("photos/").
21
- # map { |upload| upload.object.key }
22
- # # => ["photos/1.jpg", "photos/2.jpg", ...]
20
+ #
21
+ # bucket.multipart_uploads.with_prefix("photos/").
22
+ # map { |upload| upload.object.key }
23
+ # # => ["photos/1.jpg", "photos/2.jpg", ...]
23
24
  #
24
25
  # @example Browsing with a tree interface
25
- # bucket.multipart_uploads.with_prefix("photos").as_tree.
26
- # children.select(&:branch?).map(&:prefix)
27
- # # => ["photos/2010", "photos/2011", ...]
26
+ #
27
+ # bucket.multipart_uploads.with_prefix("photos").as_tree.
28
+ # children.select(&:branch?).map(&:prefix)
29
+ # # => ["photos/2010", "photos/2011", ...]
28
30
  #
29
31
  # @see Tree
30
32
  class MultipartUploadCollection
@@ -16,45 +16,45 @@ module AWS
16
16
 
17
17
  # Represents a collection of S3 objects.
18
18
  #
19
- # == Getting an S3Object by Key
19
+ # ## Getting an S3Object by Key
20
20
  #
21
21
  # If you know the key of the object you want, you can reference it this way:
22
22
  #
23
- # # this will not make any requests against S3
24
- # object = bucket.objects['foo.jpg']
25
- # object.key #=> 'foo.jpg'
23
+ # # this will not make any requests against S3
24
+ # object = bucket.objects['foo.jpg']
25
+ # object.key #=> 'foo.jpg'
26
26
  #
27
- # == Finding objects with a Prefix
27
+ # ## Finding objects with a Prefix
28
28
  #
29
29
  # Given a bucket with the following keys:
30
30
  #
31
- # photos/sunset.jpg
32
- # photos/sunrise.jpg
33
- # photos/winter.jpg
34
- # videos/comedy.mpg
35
- # videos/dancing.mpg
31
+ # photos/sunset.jpg
32
+ # photos/sunrise.jpg
33
+ # photos/winter.jpg
34
+ # videos/comedy.mpg
35
+ # videos/dancing.mpg
36
36
  #
37
37
  # You can list objects that share a prefix:
38
38
  #
39
- # bucket.objects.with_prefix('videos').collect(&:key)
40
- # #=> ['videos/comedy.mpg', 'videos/dancing.mpg']
39
+ # bucket.objects.with_prefix('videos').collect(&:key)
40
+ # #=> ['videos/comedy.mpg', 'videos/dancing.mpg']
41
41
  #
42
- # == Exploring Objects with a Tree Interface
42
+ # ## Exploring Objects with a Tree Interface
43
43
  #
44
44
  # Given a bucket with the following keys:
45
45
  #
46
- # README.txt
47
- # videos/wedding.mpg
48
- # videos/family_reunion.mpg
49
- # photos/2010/house.jpg
50
- # photos/2011/fall/leaves.jpg
51
- # photos/2011/summer/vacation.jpg
52
- # photos/2011/summer/family.jpg
46
+ # README.txt
47
+ # videos/wedding.mpg
48
+ # videos/family_reunion.mpg
49
+ # photos/2010/house.jpg
50
+ # photos/2011/fall/leaves.jpg
51
+ # photos/2011/summer/vacation.jpg
52
+ # photos/2011/summer/family.jpg
53
53
  #
54
- # tree = bucket.objects.with_prefix('photos').as_tree
54
+ # tree = bucket.objects.with_prefix('photos').as_tree
55
55
  #
56
- # directories = tree.children.select(&:branch?).collect(&:prefix)
57
- # #=> ['photos/2010', 'photos/2011']
56
+ # directories = tree.children.select(&:branch?).collect(&:prefix)
57
+ # #=> ['photos/2010', 'photos/2011']
58
58
  #
59
59
  class ObjectCollection
60
60
 
@@ -105,25 +105,25 @@ module AWS
105
105
 
106
106
  # Deletes the objects provided in as few requests as possible.
107
107
  #
108
- # # delete 2 objects (by key) in a single request
109
- # bucket.objects.delete('abc', 'xyz')
108
+ # # delete 2 objects (by key) in a single request
109
+ # bucket.objects.delete('abc', 'xyz')
110
110
  #
111
111
  # You can delete objects also by passing their S3Object representation:
112
112
  #
113
- # to_delete = []
114
- # to_delete << buckets.objects['foo']
115
- # to_delete << buckets.objects['bar']
113
+ # to_delete = []
114
+ # to_delete << buckets.objects['foo']
115
+ # to_delete << buckets.objects['bar']
116
116
  #
117
- # bucket.objects.delete(to_delete)
117
+ # bucket.objects.delete(to_delete)
118
118
  #
119
119
  # @overload delete(objects)
120
120
  # @param [Mixed] objects One or more objects to delete. Each object
121
121
  # can be one of the following:
122
122
  #
123
- # * An object key (string)
124
- # * A hash with :key and :version_id (for versioned objects)
125
- # * An {S3Object} instance
126
- # * An {ObjectVersion} instance
123
+ # * An object key (string)
124
+ # * A hash with :key and :version_id (for versioned objects)
125
+ # * An {S3Object} instance
126
+ # * An {ObjectVersion} instance
127
127
  #
128
128
  # @overload delete(objects, options)
129
129
  # Deletes multiple objects, with additional options. The array can
@@ -195,8 +195,8 @@ module AWS
195
195
  # Deletes each object in the collection that returns a true value
196
196
  # from block passed to this method. Deletes are batched for efficiency.
197
197
  #
198
- # # delete text files in the 2009 "folder"
199
- # bucket.objects.with_prefix('2009/').delete_if {|o| o.key =~ /\.txt$/ }
198
+ # # delete text files in the 2009 "folder"
199
+ # bucket.objects.with_prefix('2009/').delete_if {|o| o.key =~ /\.txt$/ }
200
200
  #
201
201
  # @yieldparam [S3Object] object
202
202
  #