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
@@ -35,8 +35,8 @@ module AWS
35
35
  # Returns the value for the given name stored in the S3Object's
36
36
  # metadata:
37
37
  #
38
- # bucket.objects['myobject'].metadata['purpose']
39
- # # returns nil if the given metadata key has not been set
38
+ # bucket.objects['myobject'].metadata['purpose']
39
+ # # returns nil if the given metadata key has not been set
40
40
  #
41
41
  # @param [String,Symbol] name The name of the metadata field to
42
42
  # get.
@@ -49,9 +49,9 @@ module AWS
49
49
  # Changes the value of the given name stored in the S3Object's
50
50
  # metadata:
51
51
  #
52
- # object = bucket.object['myobject']
53
- # object.metadata['purpose'] = 'research'
54
- # object.metadata['purpose'] # => 'research'
52
+ # object = bucket.object['myobject']
53
+ # object.metadata['purpose'] = 'research'
54
+ # object.metadata['purpose'] # => 'research'
55
55
  #
56
56
  # @note The name and value of each metadata field must conform
57
57
  # to US-ASCII.
@@ -80,7 +80,7 @@ module AWS
80
80
  self[name]
81
81
  end
82
82
 
83
- # @return [Hash] Returns the user-generated metadata stored with
83
+ # @return [Hash] Returns the user-generated metadata stored with
84
84
  # this S3 Object.
85
85
  def to_h
86
86
  options = {}
@@ -16,8 +16,8 @@ module AWS
16
16
 
17
17
  # Represents a single version of an S3Object.
18
18
  #
19
- # When you enable versioning on a S3 bucket, writing to an object
20
- # will create an object version instead of replacing the existing
19
+ # When you enable versioning on a S3 bucket, writing to an object
20
+ # will create an object version instead of replacing the existing
21
21
  # object.
22
22
  class ObjectVersion
23
23
 
@@ -112,14 +112,14 @@ module AWS
112
112
  end
113
113
 
114
114
  # If you delete an object in a versioned bucket, a delete marker
115
- # is created.
115
+ # is created.
116
116
  # @return [Boolean] Returns true if this version is a delete marker.
117
117
  def delete_marker?
118
118
  if @delete_marker.nil?
119
119
  begin
120
120
  # S3 responds with a 405 (method not allowed) when you try
121
121
  # to HEAD an s3 object version that is a delete marker
122
- metadata['foo']
122
+ metadata['foo']
123
123
  @delete_marker = false
124
124
  rescue Errors::MethodNotAllowed => error
125
125
  @delete_marker = true
@@ -17,31 +17,31 @@ module AWS
17
17
  # For S3 buckets with versioning enabled, objects will store versions
18
18
  # each time you write to them.
19
19
  #
20
- # object = bucket.objects['myobj']
21
- # object.write('1')
22
- # object.write('2')
23
- # object.write('3')
20
+ # object = bucket.objects['myobj']
21
+ # object.write('1')
22
+ # object.write('2')
23
+ # object.write('3')
24
24
  #
25
- # object.versions.collect(&:read)
26
- # #=> ['1', '2', '3']
25
+ # object.versions.collect(&:read)
26
+ # #=> ['1', '2', '3']
27
27
  #
28
28
  # To see all the version id for a particular object, access the any particular version,
29
29
  # and see the latest version:
30
30
  #
31
- # object.versions.each do |version| puts version.version_id end
32
- # #=> T2TwAiZ3SmNr7tOfe0QBa4RZnSb3GSLq
33
- # #=> kAEHC_ysT65bT4P3zyYOP1ELA6ajar_6
34
- # #=> itHPX6m8na_sog0cAtkgP3QITEE8v5ij
31
+ # object.versions.each do |version| puts version.version_id end
32
+ # #=> T2TwAiZ3SmNr7tOfe0QBa4RZnSb3GSLq
33
+ # #=> kAEHC_ysT65bT4P3zyYOP1ELA6ajar_6
34
+ # #=> itHPX6m8na_sog0cAtkgP3QITEE8v5ij
35
35
  #
36
- # object.versions['itHPX6m8na_sog0cAtkgP3QITEE8v5ij']
37
- # #=> <AWS::S3::ObjectVersion:<<bucket>>:myobj:itHPX6m8na_sog0cAtkgP3QITEE8v5ij>
36
+ # object.versions['itHPX6m8na_sog0cAtkgP3QITEE8v5ij']
37
+ # #=> <AWS::S3::ObjectVersion:<<bucket>>:myobj:itHPX6m8na_sog0cAtkgP3QITEE8v5ij>
38
38
  #
39
- # object.versions.latest
40
- # #=> <AWS::S3::ObjectVersion:<<bucket>>:myobj:T2TwAiZ3SmNr7tOfe0QBa4RZnSb3GSLq>
39
+ # object.versions.latest
40
+ # #=> <AWS::S3::ObjectVersion:<<bucket>>:myobj:T2TwAiZ3SmNr7tOfe0QBa4RZnSb3GSLq>
41
41
  #
42
42
  # If you know the id of a particular version you can get that object.
43
43
  #
44
- # bucket.objects['myobj'].version[version_id].delete
44
+ # bucket.objects['myobj'].version[version_id].delete
45
45
  #
46
46
  class ObjectVersionCollection
47
47
 
@@ -58,11 +58,11 @@ module AWS
58
58
  "#{prefix}#{resource.name}"
59
59
  when S3Object
60
60
  "#{prefix}#{resource.bucket.name}/#{resource.key}"
61
- when ObjectCollection
61
+ when ObjectCollection
62
62
  "#{prefix}#{resource.bucket.name}/#{resource.prefix}*"
63
63
  when /^arn:/
64
64
  resource
65
- else
65
+ else
66
66
  "arn:aws:s3:::#{resource}"
67
67
  end
68
68
  end
@@ -25,36 +25,40 @@ module AWS
25
25
  args.push(options)
26
26
  super(*args)
27
27
  end
28
-
28
+
29
29
  # @return [String,nil] The prefix of this collection.
30
30
  attr_reader :prefix
31
31
 
32
32
  # Returns a new collection with a different prefix
33
33
  #
34
34
  # @example
35
+ #
35
36
  # objects = collection.with_prefix('photos')
36
37
  # objects.prefix #=> 'photos'
37
38
  #
38
39
  # @example Chaining with_prefix replaces previous prefix
40
+ #
39
41
  # objects = collection.with_prefix('photos').with_prefix('videos')
40
42
  # objects.prefix #=> 'videos'
41
43
  #
42
44
  # @example Chaining with_prefix with :append
45
+ #
43
46
  # objects = collection.with_prefix('a/').with_prefix('b/', :append)
44
47
  # objects.prefix #=> 'a/b/'
45
48
  #
46
49
  # @example Chaining with_prefix with :prepend
50
+ #
47
51
  # objects = collection.with_prefix('a/').with_prefix('b/', :prepend)
48
52
  # objects.prefix #=> 'b/a/'
49
53
  #
50
54
  # @param [String] prefix The prefix condition that limits what objects
51
55
  # are returned by this collection.
52
56
  # @param [Symbol] mode (:replace) If you chain calls to #with_prefix
53
- # the +mode+ affects if the prefix prepends, appends, or replaces.
57
+ # the `mode` affects if the prefix prepends, appends, or replaces.
54
58
  # Valid modes are:
55
- # * +:replace+
56
- # * +:append+
57
- # * +:prepend+
59
+ # * `:replace`
60
+ # * `:append`
61
+ # * `:prepend`
58
62
  # @return [Collection] Returns a new collection with a modified prefix.
59
63
  def with_prefix prefix, mode = :replace
60
64
  new_prefix = case mode
@@ -43,9 +43,11 @@ module AWS
43
43
  # END
44
44
  #
45
45
  # @example Restricting the size of the uploaded object
46
+ #
46
47
  # bucket.presigned_post(:content_length => 1..(10*1024))
47
48
  #
48
49
  # @example Restricting the key prefix
50
+ #
49
51
  # bucket.presigned_post.where(:key).starts_with("photos/")
50
52
  #
51
53
  class PresignedPost
@@ -103,7 +105,7 @@ module AWS
103
105
  # using the form fields.
104
106
  #
105
107
  # @param [Hash] opts Additional options for the upload. Aside
106
- # from +:secure+, +:expires+, +:content_length+ and +:ignore+
108
+ # from `:secure`, `:expires`, `:content_length` and `:ignore`
107
109
  # the values provided here will be stored in the hash returned
108
110
  # from the {#fields} method, and the policy in that hash will
109
111
  # restrict their values to the values provided. If you
@@ -148,19 +150,19 @@ module AWS
148
150
  #
149
151
  # @option options [Symbol] :acl A canned access control
150
152
  # policy. Valid values are:
151
- # * +:private+
152
- # * +:public_read+
153
- # * +:public_read_write+
154
- # * +:authenticated_read+
155
- # * +:bucket_owner_read+
156
- # * +:bucket_owner_full_control+
153
+ # * `:private`
154
+ # * `:public_read`
155
+ # * `:public_read_write`
156
+ # * `:authenticated_read`
157
+ # * `:bucket_owner_read`
158
+ # * `:bucket_owner_full_control`
157
159
  #
158
160
  # @option options [Symbol] :server_side_encryption (nil) If this
159
161
  # option is set, the object will be stored using server side
160
- # encryption. The only valid value is +:aes256+, which
162
+ # encryption. The only valid value is `:aes256`, which
161
163
  # specifies that the object should be stored using the AES
162
164
  # encryption algorithm with 256 bit keys. By default, this
163
- # option uses the value of the +:s3_server_side_encryption+
165
+ # option uses the value of the `:s3_server_side_encryption`
164
166
  # option in the current configuration; for more information,
165
167
  # see {AWS.config}.
166
168
  #
@@ -169,7 +171,7 @@ module AWS
169
171
  #
170
172
  # @option opts [Integer] :success_action_status The status
171
173
  # code returned to the client upon successful upload if
172
- # +:success_action_redirect+ is not specified. Accepts the
174
+ # `:success_action_redirect` is not specified. Accepts the
173
175
  # values 200, 201, or 204 (default).
174
176
  #
175
177
  # If the value is set to 200 or 204, Amazon S3 returns an
@@ -178,7 +180,7 @@ module AWS
178
180
  # If the value is set to 201, Amazon S3 returns an XML
179
181
  # document with a 201 status code. For information on the
180
182
  # content of the XML document, see
181
- # {POST Object}[http://docs.amazonwebservices.com/AmazonS3/2006-03-01/API/index.html?RESTObjectPOST.html].
183
+ # [POST Object](http://docs.amazonwebservices.com/AmazonS3/2006-03-01/API/index.html?RESTObjectPOST.html).
182
184
  #
183
185
  # @option opts [Hash] :metadata A hash of the metadata fields
184
186
  # included in the signed fields. Additional metadata fields
@@ -223,7 +225,7 @@ module AWS
223
225
 
224
226
  # @return [URI::HTTP, URI::HTTPS] The URL to which the form
225
227
  # fields should be POSTed. If you are using the fields in
226
- # an HTML form, this is the URL to put in the +action+
228
+ # an HTML form, this is the URL to put in the `action`
227
229
  # attribute of the form tag.
228
230
  def url
229
231
  req = Request.new
@@ -255,17 +257,17 @@ module AWS
255
257
  # Specifies that the value of the field must begin with the
256
258
  # provided value. If you are specifying a condition on the
257
259
  # "key" field, note that this check takes place after the
258
- # +${filename}+ variable is expanded. This is only valid
260
+ # `${filename}` variable is expanded. This is only valid
259
261
  # for the following fields:
260
262
  #
261
- # * +:key+
262
- # * +:cache_control+
263
- # * +:content_type+
264
- # * +:content_disposition+
265
- # * +:content_encoding+
266
- # * +:expires_header+
267
- # * +:acl+
268
- # * +:success_action_redirect+
263
+ # * `:key`
264
+ # * `:cache_control`
265
+ # * `:content_type`
266
+ # * `:content_disposition`
267
+ # * `:content_encoding`
268
+ # * `:expires_header`
269
+ # * `:acl`
270
+ # * `:success_action_redirect`
269
271
  # * metadata fields (see {#where_metadata})
270
272
  def starts_with(prefix)
271
273
  @post.with_prefix_condition(@field, prefix)
@@ -273,8 +275,8 @@ module AWS
273
275
 
274
276
  # Specifies that the value of the field must be in the given
275
277
  # range. This may only be used to constrain the
276
- # +:content_length+ field,
277
- # e.g. <tt>presigned_post.with(:conent_length).in(1..4)</tt>.
278
+ # `:content_length` field,
279
+ # e.g. `presigned_post.with(:conent_length).in(1..4)`.
278
280
  def in(range)
279
281
  @post.refine(:content_length => range)
280
282
  end
@@ -290,16 +292,16 @@ module AWS
290
292
  # @param [Symbol] field The field for which a condition should
291
293
  # be added. Valid values:
292
294
  #
293
- # * +:key+
294
- # * +:content_length+
295
- # * +:cache_control+
296
- # * +:content_type+
297
- # * +:content_disposition+
298
- # * +:content_encoding+
299
- # * +:expires_header+
300
- # * +:acl+
301
- # * +:success_action_redirect+
302
- # * +:success_action_status+
295
+ # * `:key`
296
+ # * `:content_length`
297
+ # * `:cache_control`
298
+ # * `:content_type`
299
+ # * `:content_disposition`
300
+ # * `:content_encoding`
301
+ # * `:expires_header`
302
+ # * `:acl`
303
+ # * `:success_action_redirect`
304
+ # * `:success_action_status`
303
305
  #
304
306
  # @return [ConditionBuilder] An object that allows you to
305
307
  # specify a condition on the field.
@@ -317,7 +319,7 @@ module AWS
317
319
  # then S3 will reject it.
318
320
  #
319
321
  # @param [Symbol, String] field The name of the metadata
320
- # attribute. For example, +:color+ corresponds to the
322
+ # attribute. For example, `:color` corresponds to the
321
323
  # "x-amz-meta-color" field in the POST body.
322
324
  #
323
325
  # @return [ConditionBuilder] An object that allows you to
@@ -494,14 +496,14 @@ module AWS
494
496
 
495
497
  conditions = self.conditions.inject([]) do |list, (field, field_conds)|
496
498
  list + field_conds
497
- end
498
-
499
+ end
500
+
499
501
  conditions << { "bucket" => bucket.name }
500
502
  conditions += key_conditions
501
503
  conditions += optional_fields.map { |(n, v)| Hash[[[n, v]]] }
502
504
  conditions += range_conditions
503
505
  conditions += ignored_conditions
504
-
506
+
505
507
  if token = config.credential_provider.session_token
506
508
  conditions << { "x-amz-security-token" => token }
507
509
  end
@@ -83,12 +83,12 @@ module AWS
83
83
 
84
84
  # From the S3 developer guide:
85
85
  #
86
- # StringToSign =
87
- # HTTP-Verb + "\n" +
88
- # content-md5 + "\n" +
89
- # content-type + "\n" +
90
- # date + "\n" +
91
- # CanonicalizedAmzHeaders + CanonicalizedResource;
86
+ # StringToSign =
87
+ # HTTP-Verb ` "\n" `
88
+ # content-md5 ` "\n" `
89
+ # content-type ` "\n" `
90
+ # date ` "\n" `
91
+ # CanonicalizedAmzHeaders + CanonicalizedResource;
92
92
  #
93
93
  def string_to_sign
94
94
  [
@@ -112,11 +112,11 @@ module AWS
112
112
 
113
113
  # From the S3 developer guide
114
114
  #
115
- # CanonicalizedResource =
116
- # [ "/" + Bucket ] +
117
- # <HTTP-Request-URI, from the protocol name up to the querystring> +
118
- # [ sub-resource, if present. e.g. "?acl", "?location",
119
- # "?logging", or "?torrent"];
115
+ # CanonicalizedResource =
116
+ # [ "/" ` Bucket ] `
117
+ # <HTTP-Request-URI, from the protocol name up to the querystring> +
118
+ # [ sub-resource, if present. e.g. "?acl", "?location",
119
+ # "?logging", or "?torrent"];
120
120
  #
121
121
  def canonicalized_resource
122
122
 
@@ -20,57 +20,57 @@ module AWS
20
20
  # Represents an object in S3. Objects live in a bucket and have
21
21
  # unique keys.
22
22
  #
23
- # = Getting Objects
23
+ # # Getting Objects
24
24
  #
25
25
  # You can get an object by its key.
26
26
  #
27
- # s3 = AWS::S3.new
28
- # obj = s3.buckets['my-bucket'].objects['key'] # no request made
27
+ # s3 = AWS::S3.new
28
+ # obj = s3.buckets['my-bucket'].objects['key'] # no request made
29
29
  #
30
30
  # You can also get objects by enumerating a objects in a bucket.
31
31
  #
32
- # bucket.objects.each do |obj|
33
- # puts obj.key
34
- # end
32
+ # bucket.objects.each do |obj|
33
+ # puts obj.key
34
+ # end
35
35
  #
36
36
  # See {ObjectCollection} for more information on finding objects.
37
37
  #
38
- # = Creating Objects
38
+ # # Creating Objects
39
39
  #
40
40
  # You create an object by writing to it. The following two
41
41
  # expressions are equivalent.
42
42
  #
43
- # obj = bucket.objects.create('key', 'data')
44
- # obj = bucket.objects['key'].write('data')
43
+ # obj = bucket.objects.create('key', 'data')
44
+ # obj = bucket.objects['key'].write('data')
45
45
  #
46
- # = Writing Objects
46
+ # # Writing Objects
47
47
  #
48
48
  # To upload data to S3, you simply need to call {#write} on an object.
49
49
  #
50
- # obj.write('Hello World!')
51
- # obj.read
52
- # #=> 'Hello World!'
50
+ # obj.write('Hello World!')
51
+ # obj.read
52
+ # #=> 'Hello World!'
53
53
  #
54
- # == Uploading Files
54
+ # ## Uploading Files
55
55
  #
56
56
  # You can upload a file to S3 in a variety of ways. Given a path
57
57
  # to a file (as a string) you can do any of the following:
58
58
  #
59
- # # specify the data as a path to a file
60
- # obj.write(Pathname.new(path_to_file))
59
+ # # specify the data as a path to a file
60
+ # obj.write(Pathname.new(path_to_file))
61
61
  #
62
- # # also works this way
63
- # obj.write(:file => path_to_file)
62
+ # # also works this way
63
+ # obj.write(:file => path_to_file)
64
64
  #
65
- # # Also accepts an open file object
66
- # file = File.open(path_to_file, 'r')
67
- # obj.write(file)
65
+ # # Also accepts an open file object
66
+ # file = File.open(path_to_file, 'r')
67
+ # obj.write(file)
68
68
  #
69
69
  # All three examples above produce the same result. The file
70
70
  # will be streamed to S3 in chunks. It will not be loaded
71
71
  # entirely into memory.
72
72
  #
73
- # == Streaming Uploads
73
+ # ## Streaming Uploads
74
74
  #
75
75
  # When you call {#write} with any IO-like object (must respond to
76
76
  # #read and #eof?), it will be streamed to S3 in chunks.
@@ -78,160 +78,160 @@ module AWS
78
78
  # While it is possible to determine the size of many IO objects, you may
79
79
  # have to specify the :content_length of your IO object.
80
80
  # If the exact size can not be known, you may provide an
81
- # +:estimated_content_length+. Depending on the size (actual or
81
+ # `:estimated_content_length`. Depending on the size (actual or
82
82
  # estimated) of your data, it will be uploaded in a single request or
83
83
  # in multiple requests via {#multipart_upload}.
84
84
  #
85
85
  # You may also stream uploads to S3 using a block:
86
86
  #
87
- # obj.write do |buffer, bytes|
88
- # # writing fewer than the requested number of bytes to the buffer
89
- # # will cause write to stop yielding to the block
90
- # end
87
+ # obj.write do |buffer, bytes|
88
+ # # writing fewer than the requested number of bytes to the buffer
89
+ # # will cause write to stop yielding to the block
90
+ # end
91
91
  #
92
- # = Reading Objects
92
+ # # Reading Objects
93
93
  #
94
94
  # You can read an object directly using {#read}. Be warned, this will
95
95
  # load the entire object into memory and is not recommended for large
96
96
  # objects.
97
97
  #
98
- # obj.write('abc')
99
- # puts obj.read
100
- # #=> abc
98
+ # obj.write('abc')
99
+ # puts obj.read
100
+ # #=> abc
101
101
  #
102
- # == Streaming Downloads
102
+ # ## Streaming Downloads
103
103
  #
104
104
  # If you want to stream an object from S3, you can pass a block
105
105
  # to {#read}.
106
106
  #
107
- # File.open('output', 'w') do |file|
108
- # large_object.read do |chunk|
109
- # file.write(chunk)
107
+ # File.open('output', 'w') do |file|
108
+ # large_object.read do |chunk|
109
+ # file.write(chunk)
110
+ # end
110
111
  # end
111
- # end
112
112
  #
113
- # = Encryption
113
+ # # Encryption
114
114
  #
115
115
  # Amazon S3 can encrypt objects for you service-side. You can also
116
116
  # use client-side encryption.
117
117
  #
118
- # == Server Side Encryption
118
+ # ## Server Side Encryption
119
119
  #
120
120
  # Amazon S3 provides server side encryption for an additional cost.
121
121
  # You can specify to use server side encryption when writing an object.
122
122
  #
123
- # obj.write('data', :server_side_encryption => :aes256)
123
+ # obj.write('data', :server_side_encryption => :aes256)
124
124
  #
125
125
  # You can also make this the default behavior.
126
126
  #
127
- # AWS.config(:s3_server_side_encryption => :aes256)
127
+ # AWS.config(:s3_server_side_encryption => :aes256)
128
128
  #
129
- # s3 = AWS::S3.new
130
- # s3.buckets['name'].objects['key'].write('abc') # will be encrypted
129
+ # s3 = AWS::S3.new
130
+ # s3.buckets['name'].objects['key'].write('abc') # will be encrypted
131
131
  #
132
- # == Client Side Encryption
132
+ # ## Client Side Encryption
133
133
  #
134
134
  # Client side encryption utilizes envelope encryption, so that your keys are
135
135
  # never sent to S3. You can use a symetric key or an asymmetric
136
136
  # key pair.
137
137
  #
138
- # === Symmetric Key Encryption
138
+ # ### Symmetric Key Encryption
139
139
  #
140
140
  # An AES key is used for symmetric encryption. The key can be 128, 192,
141
141
  # and 256 bit sizes. Start by generating key or read a previously
142
142
  # generated key.
143
143
  #
144
- # # generate a new random key
145
- # my_key = OpenSSL::Cipher.new("AES-256-ECB").random_key
144
+ # # generate a new random key
145
+ # my_key = OpenSSL::Cipher.new("AES-256-ECB").random_key
146
146
  #
147
- # # read an existing key from disk
148
- # my_key = File.read("my_key.der")
147
+ # # read an existing key from disk
148
+ # my_key = File.read("my_key.der")
149
149
  #
150
150
  # Now you can encrypt locally and upload the encrypted data to S3.
151
151
  # To do this, you need to provide your key.
152
152
  #
153
- # obj = bucket.objects["my-text-object"]
153
+ # obj = bucket.objects["my-text-object"]
154
154
  #
155
- # # encrypt then upload data
156
- # obj.write("MY TEXT", :encryption_key => my_key)
155
+ # # encrypt then upload data
156
+ # obj.write("MY TEXT", :encryption_key => my_key)
157
157
  #
158
- # # try read the object without decrypting, oops
159
- # obj.read
160
- # #=> '.....'
158
+ # # try read the object without decrypting, oops
159
+ # obj.read
160
+ # #=> '.....'
161
161
  #
162
162
  # Lastly, you can download and decrypt by providing the same key.
163
163
  #
164
- # obj.read(:encryption_key => my_key)
165
- # #=> "MY TEXT"
164
+ # obj.read(:encryption_key => my_key)
165
+ # #=> "MY TEXT"
166
166
  #
167
- # === Asymmetric Key Pair
167
+ # ### Asymmetric Key Pair
168
168
  #
169
169
  # A RSA key pair is used for asymmetric encryption. The public key is used
170
170
  # for encryption and the private key is used for decryption. Start
171
171
  # by generating a key.
172
172
  #
173
- # my_key = OpenSSL::PKey::RSA.new(1024)
173
+ # my_key = OpenSSL::PKey::RSA.new(1024)
174
174
  #
175
175
  # Provide your key to #write and the data will be encrypted before it
176
176
  # is uploaded. Pass the same key to #read to decrypt the data
177
177
  # when you download it.
178
178
  #
179
- # obj = bucket.objects["my-text-object"]
179
+ # obj = bucket.objects["my-text-object"]
180
180
  #
181
- # # encrypt and upload the data
182
- # obj.write("MY TEXT", :encryption_key => my_key)
181
+ # # encrypt and upload the data
182
+ # obj.write("MY TEXT", :encryption_key => my_key)
183
183
  #
184
- # # download and decrypt the data
185
- # obj.read(:encryption_key => my_key)
186
- # #=> "MY TEXT"
184
+ # # download and decrypt the data
185
+ # obj.read(:encryption_key => my_key)
186
+ # #=> "MY TEXT"
187
187
  #
188
- # === Configuring storage locations
188
+ # ### Configuring storage locations
189
189
  #
190
190
  # By default, encryption materials are stored in the object metadata.
191
191
  # If you prefer, you can store the encryption materials in a separate
192
192
  # object in S3. This object will have the same key + '.instruction'.
193
193
  #
194
- # # new object, does not exist yet
195
- # obj = bucket.objects["my-text-object"]
194
+ # # new object, does not exist yet
195
+ # obj = bucket.objects["my-text-object"]
196
196
  #
197
- # # no instruction file present
198
- # bucket.objects['my-text-object.instruction'].exists?
199
- # #=> false
197
+ # # no instruction file present
198
+ # bucket.objects['my-text-object.instruction'].exists?
199
+ # #=> false
200
200
  #
201
- # # store the encryption materials in the instruction file
202
- # # instead of obj#metadata
203
- # obj.write("MY TEXT",
204
- # :encryption_key => MY_KEY,
205
- # :encryption_materials_location => :instruction_file)
201
+ # # store the encryption materials in the instruction file
202
+ # # instead of obj#metadata
203
+ # obj.write("MY TEXT",
204
+ # :encryption_key => MY_KEY,
205
+ # :encryption_materials_location => :instruction_file)
206
206
  #
207
- # bucket.objects['my-text-object.instruction'].exists?
208
- # #=> true
207
+ # bucket.objects['my-text-object.instruction'].exists?
208
+ # #=> true
209
209
  #
210
210
  # If you store the encryption materials in an instruction file, you
211
211
  # must tell #read this or it will fail to find your encryption materials.
212
212
  #
213
- # # reading an encrypted file whos materials are stored in an
214
- # # instruction file, and not metadata
215
- # obj.read(:encryption_key => MY_KEY,
216
- # :encryption_materials_location => :instruction_file)
213
+ # # reading an encrypted file whos materials are stored in an
214
+ # # instruction file, and not metadata
215
+ # obj.read(:encryption_key => MY_KEY,
216
+ # :encryption_materials_location => :instruction_file)
217
217
  #
218
- # === Configuring default behaviors
218
+ # ### Configuring default behaviors
219
219
  #
220
220
  # You can configure the default key such that it will automatically
221
221
  # encrypt and decrypt for you. You can do this globally or for a
222
222
  # single S3 interface
223
223
  #
224
- # # all objects uploaded/downloaded with this s3 object will be
225
- # # encrypted/decrypted
226
- # s3 = AWS::S3.new(:s3_encryption_key => "MY_KEY")
224
+ # # all objects uploaded/downloaded with this s3 object will be
225
+ # # encrypted/decrypted
226
+ # s3 = AWS::S3.new(:s3_encryption_key => "MY_KEY")
227
227
  #
228
- # # set the key to always encrypt/decrypt
229
- # AWS.config(:s3_encryption_key => "MY_KEY")
228
+ # # set the key to always encrypt/decrypt
229
+ # AWS.config(:s3_encryption_key => "MY_KEY")
230
230
  #
231
231
  # You can also configure the default storage location for the encryption
232
232
  # materials.
233
233
  #
234
- # AWS.config(:s3_encryption_materials_location => :instruction_file)
234
+ # AWS.config(:s3_encryption_materials_location => :instruction_file)
235
235
  #
236
236
  class S3Object
237
237
 
@@ -266,7 +266,7 @@ module AWS
266
266
  end
267
267
  alias_method :eql?, :==
268
268
 
269
- # @return [Boolean] Returns +true+ if the object exists in S3.
269
+ # @return [Boolean] Returns `true` if the object exists in S3.
270
270
  def exists?
271
271
  head
272
272
  rescue Errors::NoSuchKey => e
@@ -283,7 +283,7 @@ module AWS
283
283
  # * content_type (as sent to S3 when uploading the object)
284
284
  # * etag (typically the object's MD5)
285
285
  # * server_side_encryption (the algorithm used to encrypt the
286
- # object on the server side, e.g. +:aes256+)
286
+ # object on the server side, e.g. `:aes256`)
287
287
  #
288
288
  # @param [Hash] options
289
289
  # @option options [String] :version_id Which version of this object
@@ -337,7 +337,7 @@ module AWS
337
337
  end
338
338
 
339
339
  # @return [Symbol, nil] Returns the algorithm used to encrypt
340
- # the object on the server side, or +nil+ if SSE was not used
340
+ # the object on the server side, or `nil` if SSE was not used
341
341
  # when storing the object.
342
342
  def server_side_encryption
343
343
  head[:server_side_encryption]
@@ -382,7 +382,7 @@ module AWS
382
382
  # of this object will be deleted. Only works for buckets that have
383
383
  # had versioning enabled.
384
384
  #
385
- # @option [Boolean] :delete_instruction_file (false) Set this to +true+
385
+ # @option [Boolean] :delete_instruction_file (false) Set this to `true`
386
386
  # if you use client-side encryption and the encryption materials
387
387
  # were stored in a separate object in S3 (key.instruction).
388
388
  #
@@ -407,7 +407,7 @@ module AWS
407
407
  end
408
408
 
409
409
  # Restores a temporary copy of an archived object from the
410
- # Glacier storage tier. After the specified +days+, Amazon
410
+ # Glacier storage tier. After the specified `days`, Amazon
411
411
  # S3 deletes the temporary copy. Note that the object
412
412
  # remains archived; Amazon S3 deletes only the restored copy.
413
413
  #
@@ -415,7 +415,7 @@ module AWS
415
415
  # {#restore_in_progress?} to check the status of the operation.
416
416
  #
417
417
  # @option [Integer] :days (1) the number of days to keep the object
418
- # @return [Boolean] +true+ if a restore can be initiated.
418
+ # @return [Boolean] `true` if a restore can be initiated.
419
419
  # @since 1.7.2
420
420
  def restore options = {}
421
421
  options[:days] ||= 1
@@ -439,6 +439,8 @@ module AWS
439
439
  # Returns a collection representing all the object versions
440
440
  # for this object.
441
441
  #
442
+ # @example
443
+ #
442
444
  # bucket.versioning_enabled? # => true
443
445
  # version = bucket.objects["mykey"].versions.latest
444
446
  #
@@ -449,32 +451,32 @@ module AWS
449
451
 
450
452
  # Uploads data to the object in S3.
451
453
  #
452
- # obj = s3.buckets['bucket-name'].objects['key']
454
+ # obj = s3.buckets['bucket-name'].objects['key']
453
455
  #
454
- # # strings
455
- # obj.write("HELLO")
456
+ # # strings
457
+ # obj.write("HELLO")
456
458
  #
457
- # # files (by path)
458
- # obj.write(Pathname.new('path/to/file.txt'))
459
+ # # files (by path)
460
+ # obj.write(Pathname.new('path/to/file.txt'))
459
461
  #
460
- # # file objects
461
- # obj.write(File.open('path/to/file.txt', 'r'))
462
+ # # file objects
463
+ # obj.write(File.open('path/to/file.txt', 'r'))
462
464
  #
463
- # # IO objects (must respond to #read and #eof?)
464
- # obj.write(io)
465
+ # # IO objects (must respond to #read and #eof?)
466
+ # obj.write(io)
465
467
  #
466
- # === Multipart Uploads vs Single Uploads
468
+ # ### Multipart Uploads vs Single Uploads
467
469
  #
468
470
  # This method will intelligently choose between uploading the
469
471
  # file in a signal request and using {#multipart_upload}.
470
472
  # You can control this behavior by configuring the thresholds
471
473
  # and you can disable the multipart feature as well.
472
474
  #
473
- # # always send the file in a single request
474
- # obj.write(file, :single_request => true)
475
+ # # always send the file in a single request
476
+ # obj.write(file, :single_request => true)
475
477
  #
476
- # # upload the file in parts if the total file size exceeds 100MB
477
- # obj.write(file, :multipart_threshold => 100 * 1024 * 1024)
478
+ # # upload the file in parts if the total file size exceeds 100MB
479
+ # obj.write(file, :multipart_threshold => 100 * 1024 * 1024)
478
480
  #
479
481
  # @overload write(data, options = {})
480
482
  #
@@ -484,25 +486,25 @@ module AWS
484
486
  # * Pathname
485
487
  # * File
486
488
  # * IO
487
- # * Any object that responds to +#read+ and +#eof?+.
489
+ # * Any object that responds to `#read` and `#eof?`.
488
490
  #
489
491
  # @param options [Hash] Additional upload options.
490
492
  #
491
493
  # @option options [Integer] :content_length If provided, this
492
494
  # option must match the total number of bytes written to S3.
493
495
  # This options is *required* when it is not possible to
494
- # automatically determine the size of +data+.
496
+ # automatically determine the size of `data`.
495
497
  #
496
498
  # @option options [Integer] :estimated_content_length When uploading
497
499
  # data of unknown content length, you may specify this option to
498
500
  # hint what mode of upload should take place. When
499
- # +:estimated_content_length+ exceeds the +:multipart_threshold+,
501
+ # `:estimated_content_length` exceeds the `:multipart_threshold`,
500
502
  # then the data will be uploaded in parts, otherwise it will
501
503
  # be read into memory and uploaded via {Client#put_object}.
502
504
  #
503
- # @option options [Boolean] :single_request (false) When +true+,
505
+ # @option options [Boolean] :single_request (false) When `true`,
504
506
  # this method will always upload the data in a single request
505
- # (via {Client#put_object}). When +false+, this method will
507
+ # (via {Client#put_object}). When `false`, this method will
506
508
  # choose between {Client#put_object} and {#multipart_upload}.
507
509
  #
508
510
  # @option options [Integer] :multipart_threshold (16777216) Specifies
@@ -519,18 +521,18 @@ module AWS
519
521
  #
520
522
  # @option options [Hash] :metadata A hash of metadata to be
521
523
  # included with the object. These will be sent to S3 as
522
- # headers prefixed with +x-amz-meta+. Each name, value pair
524
+ # headers prefixed with `x-amz-meta`. Each name, value pair
523
525
  # must conform to US-ASCII.
524
526
  #
525
527
  # @option options [Symbol,String] :acl (:private) A canned access
526
528
  # control policy. Valid values are:
527
529
  #
528
- # * +:private+
529
- # * +:public_read+
530
- # * +:public_read_write+
531
- # * +:authenticated_read+
532
- # * +:bucket_owner_read+
533
- # * +:bucket_owner_full_control+
530
+ # * `:private`
531
+ # * `:public_read`
532
+ # * `:public_read_write`
533
+ # * `:authenticated_read`
534
+ # * `:bucket_owner_read`
535
+ # * `:bucket_owner_full_control`
534
536
  #
535
537
  # @option options [String] :grant_read
536
538
  #
@@ -542,7 +544,7 @@ module AWS
542
544
  #
543
545
  # @option options [String] :grant_full_control
544
546
  #
545
- # @option options [Boolean] :reduced_redundancy (false) When +true+,
547
+ # @option options [Boolean] :reduced_redundancy (false) When `true`,
546
548
  # this object will be stored with Reduced Redundancy Storage.
547
549
  #
548
550
  # @option options :cache_control [String] Can be used to specify
@@ -556,7 +558,7 @@ module AWS
556
558
  # @option options :content_encoding [String] Specifies what
557
559
  # content encodings have been applied to the object and thus
558
560
  # what decoding mechanisms must be applied to obtain the
559
- # media-type referenced by the +Content-Type+ header field.
561
+ # media-type referenced by the `Content-Type` header field.
560
562
  # See
561
563
  # http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11
562
564
  #
@@ -568,10 +570,10 @@ module AWS
568
570
  #
569
571
  # @option options [Symbol] :server_side_encryption (nil) If this
570
572
  # option is set, the object will be stored using server side
571
- # encryption. The only valid value is +:aes256+, which
573
+ # encryption. The only valid value is `:aes256`, which
572
574
  # specifies that the object should be stored using the AES
573
575
  # encryption algorithm with 256 bit keys. By default, this
574
- # option uses the value of the +:s3_server_side_encryption+
576
+ # option uses the value of the `:s3_server_side_encryption`
575
577
  # option in the current configuration; for more information,
576
578
  # see {AWS.config}.
577
579
  #
@@ -581,7 +583,7 @@ module AWS
581
583
  # or a symmetric key string (16, 24 or 32 bytes in length).
582
584
  #
583
585
  # @option options [Symbol] :encryption_materials_location (:metadata)
584
- # Set this to +:instruction_file+ if you prefer to store the
586
+ # Set this to `:instruction_file` if you prefer to store the
585
587
  # client-side encryption materials in a separate object in S3
586
588
  # instead of in the object metadata.
587
589
  #
@@ -590,7 +592,7 @@ module AWS
590
592
  #
591
593
  # @return [S3Object, ObjectVersion] If the bucket has versioning
592
594
  # enabled, this methods returns an {ObjectVersion}, otherwise
593
- # this method returns +self+.
595
+ # this method returns `self`.
594
596
  #
595
597
  def write *args, &block
596
598
 
@@ -615,24 +617,28 @@ module AWS
615
617
  # to use.
616
618
  #
617
619
  # @example Uploading an object in two parts
620
+ #
618
621
  # bucket.objects.myobject.multipart_upload do |upload|
619
622
  # upload.add_part("a" * 5242880)
620
623
  # upload.add_part("b" * 2097152)
621
624
  # end
622
625
  #
623
626
  # @example Uploading parts out of order
627
+ #
624
628
  # bucket.objects.myobject.multipart_upload do |upload|
625
629
  # upload.add_part("b" * 2097152, :part_number => 2)
626
630
  # upload.add_part("a" * 5242880, :part_number => 1)
627
631
  # end
628
632
  #
629
633
  # @example Aborting an upload after parts have been added
634
+ #
630
635
  # bucket.objects.myobject.multipart_upload do |upload|
631
636
  # upload.add_part("b" * 2097152, :part_number => 2)
632
637
  # upload.abort
633
638
  # end
634
639
  #
635
640
  # @example Starting an upload and completing it later by ID
641
+ #
636
642
  # upload = bucket.objects.myobject.multipart_upload
637
643
  # upload.add_part("a" * 5242880)
638
644
  # upload.add_part("b" * 2097152)
@@ -643,7 +649,7 @@ module AWS
643
649
  # upload.complete(:remote_parts)
644
650
  #
645
651
  # @yieldparam [MultipartUpload] upload A handle to the upload.
646
- # {MultipartUpload#close} is called in an +ensure+ clause so
652
+ # {MultipartUpload#close} is called in an `ensure` clause so
647
653
  # that the upload will always be either completed or
648
654
  # aborted.
649
655
  #
@@ -651,18 +657,18 @@ module AWS
651
657
  #
652
658
  # @option options [Hash] :metadata A hash of metadata to be
653
659
  # included with the object. These will be sent to S3 as
654
- # headers prefixed with +x-amz-meta+. Each name, value pair
660
+ # headers prefixed with `x-amz-meta`. Each name, value pair
655
661
  # must conform to US-ASCII.
656
662
  #
657
663
  # @option options [Symbol] :acl (private) A canned access
658
664
  # control policy. Valid values are:
659
665
  #
660
- # * +:private+
661
- # * +:public_read+
662
- # * +:public_read_write+
663
- # * +:authenticated_read+
664
- # * +:bucket_owner_read+
665
- # * +:bucket_owner_full_control+
666
+ # * `:private`
667
+ # * `:public_read`
668
+ # * `:public_read_write`
669
+ # * `:authenticated_read`
670
+ # * `:bucket_owner_read`
671
+ # * `:bucket_owner_full_control`
666
672
  #
667
673
  # @option options [Boolean] :reduced_redundancy (false) If true,
668
674
  # Reduced Redundancy Storage will be enabled for the uploaded
@@ -679,7 +685,7 @@ module AWS
679
685
  # @option options :content_encoding [String] Specifies what
680
686
  # content encodings have been applied to the object and thus
681
687
  # what decoding mechanisms must be applied to obtain the
682
- # media-type referenced by the +Content-Type+ header field.
688
+ # media-type referenced by the `Content-Type` header field.
683
689
  # See
684
690
  # http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11
685
691
  #
@@ -688,10 +694,10 @@ module AWS
688
694
  #
689
695
  # @option options [Symbol] :server_side_encryption (nil) If this
690
696
  # option is set, the object will be stored using server side
691
- # encryption. The only valid value is +:aes256+, which
697
+ # encryption. The only valid value is `:aes256`, which
692
698
  # specifies that the object should be stored using the AES
693
699
  # encryption algorithm with 256 bit keys. By default, this
694
- # option uses the value of the +:s3_server_side_encryption+
700
+ # option uses the value of the `:s3_server_side_encryption`
695
701
  # option in the current configuration; for more information,
696
702
  # see {AWS.config}.
697
703
  #
@@ -736,23 +742,23 @@ module AWS
736
742
  # deleting the old object. This function returns the
737
743
  # new object once this is done.
738
744
  #
739
- # bucket = s3.buckets['old-bucket']
740
- # old_obj = bucket.objects['old-key']
745
+ # bucket = s3.buckets['old-bucket']
746
+ # old_obj = bucket.objects['old-key']
741
747
  #
742
- # # renaming an object returns a new object
743
- # new_obj = old_obj.move_to('new-key')
748
+ # # renaming an object returns a new object
749
+ # new_obj = old_obj.move_to('new-key')
744
750
  #
745
- # old_obj.key #=> 'old-key'
746
- # old_obj.exists? #=> false
751
+ # old_obj.key #=> 'old-key'
752
+ # old_obj.exists? #=> false
747
753
  #
748
- # new_obj.key #=> 'new-key'
749
- # new_obj.exists? #=> true
754
+ # new_obj.key #=> 'new-key'
755
+ # new_obj.exists? #=> true
750
756
  #
751
757
  # If you need to move an object to a different bucket, pass
752
- # +:bucket+ or +:bucket_name+.
758
+ # `:bucket` or `:bucket_name`.
753
759
  #
754
- # obj = s3.buckets['old-bucket'].objects['old-key']
755
- # obj.move_to('new-key', :bucket_name => 'new_bucket')
760
+ # obj = s3.buckets['old-bucket'].objects['old-key']
761
+ # obj.move_to('new-key', :bucket_name => 'new_bucket')
756
762
  #
757
763
  # If the copy succeeds, but the then the delete fails, an error
758
764
  # will be raised.
@@ -812,19 +818,19 @@ module AWS
812
818
  # @option options [Symbol] :acl (private) A canned access
813
819
  # control policy. Valid values are:
814
820
  #
815
- # * +:private+
816
- # * +:public_read+
817
- # * +:public_read_write+
818
- # * +:authenticated_read+
819
- # * +:bucket_owner_read+
820
- # * +:bucket_owner_full_control+
821
+ # * `:private`
822
+ # * `:public_read`
823
+ # * `:public_read_write`
824
+ # * `:authenticated_read`
825
+ # * `:bucket_owner_read`
826
+ # * `:bucket_owner_full_control`
821
827
  #
822
828
  # @option options [Symbol] :server_side_encryption (nil) If this
823
829
  # option is set, the object will be stored using server side
824
- # encryption. The only valid value is +:aes256+, which
830
+ # encryption. The only valid value is `:aes256`, which
825
831
  # specifies that the object should be stored using the AES
826
832
  # encryption algorithm with 256 bit keys. By default, this
827
- # option uses the value of the +:s3_server_side_encryption+
833
+ # option uses the value of the `:s3_server_side_encryption`
828
834
  # option in the current configuration; for more information,
829
835
  # see {AWS.config}.
830
836
  #
@@ -924,23 +930,23 @@ module AWS
924
930
  # @option options [Symbol] :acl (private) A canned access
925
931
  # control policy. Valid values are:
926
932
  #
927
- # * +:private+
928
- # * +:public_read+
929
- # * +:public_read_write+
930
- # * +:authenticated_read+
931
- # * +:bucket_owner_read+
932
- # * +:bucket_owner_full_control+
933
+ # * `:private`
934
+ # * `:public_read`
935
+ # * `:public_read_write`
936
+ # * `:authenticated_read`
937
+ # * `:bucket_owner_read`
938
+ # * `:bucket_owner_full_control`
933
939
  #
934
940
  # @option options [Symbol] :server_side_encryption (nil) If this
935
941
  # option is set, the object will be stored using server side
936
- # encryption. The only valid value is +:aes256+, which
942
+ # encryption. The only valid value is `:aes256`, which
937
943
  # specifies that the object should be stored using the AES
938
944
  # encryption algorithm with 256 bit keys. By default, this
939
- # option uses the value of the +:s3_server_side_encryption+
945
+ # option uses the value of the `:s3_server_side_encryption`
940
946
  # option in the current configuration; for more information,
941
947
  # see {AWS.config}.
942
948
  #
943
- # @option options [Boolean] :client_side_encrypted (false) When +true+,
949
+ # @option options [Boolean] :client_side_encrypted (false) When `true`,
944
950
  # the client-side encryption materials will be copied. Without this
945
951
  # option, the key and iv are not guaranteed to be transferred to
946
952
  # the new object.
@@ -977,27 +983,27 @@ module AWS
977
983
  # method, the data will be yielded to the block in chunks as it
978
984
  # is read off the HTTP response.
979
985
  #
980
- # === Read an object from S3 in chunks
986
+ # ### Read an object from S3 in chunks
981
987
  #
982
988
  # When downloading large objects it is recommended to pass a block
983
989
  # to #read. Data will be yielded to the block as it is read off
984
990
  # the HTTP response.
985
991
  #
986
- # # read an object from S3 to a file
987
- # File.open('output.txt', 'w') do |file|
988
- # bucket.objects['key'].read do |chunk|
989
- # file.write(chunk)
992
+ # # read an object from S3 to a file
993
+ # File.open('output.txt', 'w') do |file|
994
+ # bucket.objects['key'].read do |chunk|
995
+ # file.write(chunk)
996
+ # end
990
997
  # end
991
- # end
992
998
  #
993
- # === Reading an object without a block
999
+ # ### Reading an object without a block
994
1000
  #
995
1001
  # When you omit the block argument to #read, then the entire
996
1002
  # HTTP response and read and the object data is loaded into
997
1003
  # memory.
998
1004
  #
999
- # bucket.objects['key'].read
1000
- # #=> 'object-contents-here'
1005
+ # bucket.objects['key'].read
1006
+ # #=> 'object-contents-here'
1001
1007
  #
1002
1008
  # @param [Hash] options
1003
1009
  #
@@ -1006,19 +1012,19 @@ module AWS
1006
1012
  #
1007
1013
  # @option options [Time] :if_unmodified_since If specified, the
1008
1014
  # method will raise
1009
- # <tt>AWS::S3::Errors::PreconditionFailed</tt> unless the
1015
+ # `AWS::S3::Errors::PreconditionFailed` unless the
1010
1016
  # object has not been modified since the given time.
1011
1017
  #
1012
1018
  # @option options [Time] :if_modified_since If specified, the
1013
- # method will raise <tt>AWS::S3::Errors::NotModified</tt> if
1019
+ # method will raise `AWS::S3::Errors::NotModified` if
1014
1020
  # the object has not been modified since the given time.
1015
1021
  #
1016
1022
  # @option options [String] :if_match If specified, the method
1017
- # will raise <tt>AWS::S3::Errors::PreconditionFailed</tt>
1023
+ # will raise `AWS::S3::Errors::PreconditionFailed`
1018
1024
  # unless the object ETag matches the provided value.
1019
1025
  #
1020
1026
  # @option options [String] :if_none_match If specified, the
1021
- # method will raise <tt>AWS::S3::Errors::NotModified</tt> if
1027
+ # method will raise `AWS::S3::Errors::NotModified` if
1022
1028
  # the object ETag matches the provided value.
1023
1029
  #
1024
1030
  # @option options [Range] :range A byte range to read data from
@@ -1026,9 +1032,9 @@ module AWS
1026
1032
  # @option options [OpenSSL::PKey::RSA, String] :encryption_key
1027
1033
  # (nil) If this option is set, the object will be decrypted using
1028
1034
  # envelope encryption. The valid values are OpenSSL asymmetric keys
1029
- # +OpenSSL::Pkey::RSA+ or strings representing symmetric keys
1030
- # of an AES-128/192/256-ECB cipher as a +String+.
1031
- # This value defaults to the value in +s3_encryption_key+;
1035
+ # `OpenSSL::Pkey::RSA` or strings representing symmetric keys
1036
+ # of an AES-128/192/256-ECB cipher as a `String`.
1037
+ # This value defaults to the value in `s3_encryption_key`;
1032
1038
  # for more information, see {AWS.config}.
1033
1039
  #
1034
1040
  # Symmetric Keys:
@@ -1040,10 +1046,10 @@ module AWS
1040
1046
  # key = OpenSSL::PKey::RSA.new(KEY_SIZE)
1041
1047
  #
1042
1048
  # @option options [Symbol] :encryption_materials_location (:metadata)
1043
- # Set this to +:instruction_file+ if the encryption materials
1049
+ # Set this to `:instruction_file` if the encryption materials
1044
1050
  # are not stored in the object metadata
1045
1051
  #
1046
- # @note +:range+ option cannot be used with client-side encryption
1052
+ # @note `:range` option cannot be used with client-side encryption
1047
1053
  #
1048
1054
  # @note All decryption reads incur at least an extra HEAD operation.
1049
1055
  #
@@ -1074,16 +1080,16 @@ module AWS
1074
1080
  end
1075
1081
 
1076
1082
  # Returns the object's access control list. This will be an
1077
- # instance of AccessControlList, plus an additional +change+
1083
+ # instance of AccessControlList, plus an additional `change`
1078
1084
  # method:
1079
1085
  #
1080
- # object.acl.change do |acl|
1081
- # # remove any grants to someone other than the bucket owner
1082
- # owner_id = object.bucket.owner.id
1083
- # acl.grants.reject! do |g|
1084
- # g.grantee.canonical_user_id != owner_id
1085
- # end
1086
- # end
1086
+ # object.acl.change do |acl|
1087
+ # # remove any grants to someone other than the bucket owner
1088
+ # owner_id = object.bucket.owner.id
1089
+ # acl.grants.reject! do |g|
1090
+ # g.grantee.canonical_user_id != owner_id
1091
+ # end
1092
+ # end
1087
1093
  #
1088
1094
  # Note that changing the ACL is not an atomic operation; it
1089
1095
  # fetches the current ACL, yields it to the block, and then
@@ -1130,26 +1136,30 @@ module AWS
1130
1136
  # the permissions of the object.
1131
1137
  #
1132
1138
  # @example Generate a url to read an object
1139
+ #
1133
1140
  # bucket.objects.myobject.url_for(:read)
1134
1141
  #
1135
1142
  # @example Generate a url to delete an object
1143
+ #
1136
1144
  # bucket.objects.myobject.url_for(:delete)
1137
1145
  #
1138
1146
  # @example Override response headers for reading an object
1147
+ #
1139
1148
  # object = bucket.objects.myobject
1140
1149
  # url = object.url_for(:read,
1141
1150
  # :response_content_type => "application/json")
1142
1151
  #
1143
1152
  # @example Generate a url that expires in 10 minutes
1153
+ #
1144
1154
  # bucket.objects.myobject.url_for(:read, :expires => 10*60)
1145
1155
  #
1146
1156
  # @param [Symbol, String] method The HTTP verb or object
1147
1157
  # method for which the returned URL will be valid. Valid
1148
1158
  # values:
1149
1159
  #
1150
- # * +:get+ or +:read+
1151
- # * +:put+ or +:write+
1152
- # * +:delete+
1160
+ # * `:get` or `:read`
1161
+ # * `:put` or `:write`
1162
+ # * `:delete`
1153
1163
  #
1154
1164
  # @param [Hash] options Additional options for generating the URL.
1155
1165
  #
@@ -1164,7 +1174,7 @@ module AWS
1164
1174
  # secure (HTTPS) URL or a plain HTTP url.
1165
1175
  #
1166
1176
  # @option options [String] :endpoint Sets the hostname of the
1167
- # endpoint (overrides config.s3_endpoint).
1177
+ # endpoint.
1168
1178
  #
1169
1179
  # @option options [Integer] :port Sets the port of the
1170
1180
  # endpoint (overrides config.s3_port).
@@ -1254,7 +1264,7 @@ module AWS
1254
1264
  # lower cost. Otherwise, the object will be copied and stored
1255
1265
  # with the standard storage class.
1256
1266
  #
1257
- # @return [true,false] The +value+ parameter.
1267
+ # @return [true,false] The `value` parameter.
1258
1268
  def reduced_redundancy= value
1259
1269
  copy_from(key, :reduced_redundancy => value)
1260
1270
  value
@@ -1287,7 +1297,7 @@ module AWS
1287
1297
  end
1288
1298
  end
1289
1299
 
1290
- # @return [Boolean] Returns +true+ if the :data option is large or
1300
+ # @return [Boolean] Returns `true` if the :data option is large or
1291
1301
  # guessed to be larger than a configured threshold.
1292
1302
  def use_multipart? options
1293
1303
  estimated_content_length(options) > multipart_threshold(options) and
@@ -1379,7 +1389,7 @@ module AWS
1379
1389
 
1380
1390
  def request_for_signing(options)
1381
1391
 
1382
- port = [443, 80].include?(config.s3_port) ?
1392
+ port = [443, 80].include?(config.s3_port) ?
1383
1393
  (options[:secure] ? 443 : 80) :
1384
1394
  config.s3_port
1385
1395
 
@@ -1674,13 +1684,13 @@ module AWS
1674
1684
  end
1675
1685
  end
1676
1686
 
1677
- # @return [String] Encodes a +String+ in base 64 regardless of version of
1687
+ # @return [String] Encodes a `String` in base 64 regardless of version of
1678
1688
  # Ruby for http headers (removes newlines).
1679
1689
  def encode64 input
1680
1690
  Base64.encode64(input).split("\n") * ""
1681
1691
  end
1682
1692
 
1683
- # @return [String] Decodes a +String+ in base 64.
1693
+ # @return [String] Decodes a `String` in base 64.
1684
1694
  def decode64 input
1685
1695
  Base64.decode64(input)
1686
1696
  end