aws-sdk 1.8.5 → 1.9.0

Sign up to get free protection for your applications and to get access to all the features.
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
  #