aws-sdk 1.8.5 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (386) hide show
  1. checksums.yaml +7 -0
  2. data/.yardopts +1 -0
  3. data/README.rdoc +8 -0
  4. data/lib/aws-sdk.rb +39 -35
  5. data/lib/aws/api_config/CloudFront-2012-07-01.yml +2398 -0
  6. data/lib/aws/api_config/DirectConnect-2012-10-25.yml +475 -0
  7. data/lib/aws/api_config/DynamoDB-2011-12-05.yml +8 -0
  8. data/lib/aws/api_config/DynamoDB-2012-08-10.yml +1516 -0
  9. data/lib/aws/api_config/OpsWorks-2013-02-18.yml +2 -2
  10. data/lib/aws/auto_scaling.rb +44 -44
  11. data/lib/aws/auto_scaling/activity.rb +1 -1
  12. data/lib/aws/auto_scaling/activity_collection.rb +14 -15
  13. data/lib/aws/auto_scaling/client.rb +277 -277
  14. data/lib/aws/auto_scaling/config.rb +1 -1
  15. data/lib/aws/auto_scaling/group.rb +35 -36
  16. data/lib/aws/auto_scaling/group_collection.rb +10 -10
  17. data/lib/aws/auto_scaling/group_options.rb +19 -19
  18. data/lib/aws/auto_scaling/instance.rb +27 -27
  19. data/lib/aws/auto_scaling/instance_collection.rb +10 -10
  20. data/lib/aws/auto_scaling/launch_configuration.rb +3 -3
  21. data/lib/aws/auto_scaling/launch_configuration_collection.rb +1 -1
  22. data/lib/aws/auto_scaling/notification_configuration.rb +2 -2
  23. data/lib/aws/auto_scaling/notification_configuration_collection.rb +37 -38
  24. data/lib/aws/auto_scaling/scaling_policy.rb +3 -3
  25. data/lib/aws/auto_scaling/scaling_policy_collection.rb +6 -6
  26. data/lib/aws/auto_scaling/scaling_policy_options.rb +8 -7
  27. data/lib/aws/auto_scaling/scheduled_action.rb +3 -3
  28. data/lib/aws/auto_scaling/scheduled_action_collection.rb +28 -28
  29. data/lib/aws/auto_scaling/tag_collection.rb +30 -28
  30. data/lib/aws/cloud_formation.rb +95 -94
  31. data/lib/aws/cloud_formation/client.rb +136 -133
  32. data/lib/aws/cloud_formation/config.rb +1 -1
  33. data/lib/aws/cloud_formation/stack.rb +37 -37
  34. data/lib/aws/cloud_formation/stack_collection.rb +28 -27
  35. data/lib/aws/cloud_formation/stack_event.rb +9 -11
  36. data/lib/aws/cloud_formation/stack_output.rb +1 -1
  37. data/lib/aws/cloud_formation/stack_resource.rb +6 -6
  38. data/lib/aws/cloud_formation/stack_resource_collection.rb +11 -12
  39. data/lib/aws/cloud_formation/stack_resource_summary_collection.rb +11 -11
  40. data/lib/aws/cloud_formation/stack_summary_collection.rb +39 -39
  41. data/lib/aws/cloud_front.rb +21 -21
  42. data/lib/aws/cloud_front/client.rb +853 -652
  43. data/lib/aws/cloud_front/request.rb +3 -0
  44. data/lib/aws/cloud_search.rb +22 -22
  45. data/lib/aws/cloud_search/client.rb +322 -315
  46. data/lib/aws/cloud_search/config.rb +1 -1
  47. data/lib/aws/cloud_watch.rb +39 -39
  48. data/lib/aws/cloud_watch/alarm.rb +55 -37
  49. data/lib/aws/cloud_watch/alarm_collection.rb +18 -18
  50. data/lib/aws/cloud_watch/alarm_history_item_collection.rb +2 -2
  51. data/lib/aws/cloud_watch/client.rb +360 -146
  52. data/lib/aws/cloud_watch/config.rb +1 -1
  53. data/lib/aws/cloud_watch/metric.rb +15 -15
  54. data/lib/aws/cloud_watch/metric_alarm_collection.rb +17 -17
  55. data/lib/aws/cloud_watch/metric_collection.rb +16 -16
  56. data/lib/aws/cloud_watch/metric_statistics.rb +11 -11
  57. data/lib/aws/core.rb +243 -225
  58. data/lib/aws/core/async_handle.rb +13 -13
  59. data/lib/aws/core/cacheable.rb +14 -15
  60. data/lib/aws/core/client.rb +40 -15
  61. data/lib/aws/core/collection.rb +42 -46
  62. data/lib/aws/core/collection/with_limit_and_next_token.rb +1 -1
  63. data/lib/aws/core/collection/with_next_token.rb +1 -1
  64. data/lib/aws/core/configuration.rb +97 -133
  65. data/lib/aws/core/credential_providers.rb +16 -16
  66. data/lib/aws/core/data.rb +23 -23
  67. data/lib/aws/core/http/connection_pool.rb +348 -0
  68. data/lib/aws/core/http/net_http_handler.rb +17 -26
  69. data/lib/aws/core/http/patch.rb +102 -0
  70. data/lib/aws/core/http/request.rb +13 -19
  71. data/lib/aws/core/http/response.rb +2 -2
  72. data/lib/aws/core/lazy_error_classes.rb +17 -17
  73. data/lib/aws/core/log_formatter.rb +70 -104
  74. data/lib/aws/core/options/json_serializer.rb +1 -1
  75. data/lib/aws/core/options/validator.rb +4 -4
  76. data/lib/aws/core/page_result.rb +8 -8
  77. data/lib/aws/core/policy.rb +49 -49
  78. data/lib/aws/core/region.rb +72 -0
  79. data/lib/aws/core/region_collection.rb +106 -0
  80. data/lib/aws/core/resource.rb +5 -5
  81. data/lib/aws/core/response.rb +20 -17
  82. data/lib/aws/core/rest_request_builder.rb +4 -4
  83. data/lib/aws/core/service_interface.rb +24 -2
  84. data/lib/aws/core/signature/version_3.rb +2 -2
  85. data/lib/aws/core/uri_escape.rb +1 -1
  86. data/lib/aws/core/xml/frame_stack.rb +1 -1
  87. data/lib/aws/core/xml/grammar.rb +3 -4
  88. data/lib/aws/core/xml/sax_handlers/libxml.rb +2 -2
  89. data/lib/aws/core/xml/sax_handlers/nokogiri.rb +3 -3
  90. data/lib/aws/core/xml/sax_handlers/rexml.rb +5 -5
  91. data/lib/aws/core/xml/stub.rb +9 -9
  92. data/lib/aws/data_pipeline.rb +21 -21
  93. data/lib/aws/data_pipeline/client.rb +189 -133
  94. data/lib/aws/data_pipeline/config.rb +1 -1
  95. data/lib/aws/direct_connect.rb +74 -0
  96. data/lib/aws/direct_connect/client.rb +253 -0
  97. data/lib/aws/direct_connect/config.rb +18 -0
  98. data/lib/aws/direct_connect/errors.rb +22 -0
  99. data/lib/aws/direct_connect/request.rb +27 -0
  100. data/lib/aws/dynamo_db.rb +71 -69
  101. data/lib/aws/dynamo_db/attribute_collection.rb +53 -58
  102. data/lib/aws/dynamo_db/batch_get.rb +23 -23
  103. data/lib/aws/dynamo_db/batch_write.rb +43 -43
  104. data/lib/aws/dynamo_db/binary.rb +9 -9
  105. data/lib/aws/dynamo_db/client.rb +494 -509
  106. data/lib/aws/dynamo_db/client_base.rb +91 -0
  107. data/lib/aws/dynamo_db/client_v2.rb +825 -0
  108. data/lib/aws/dynamo_db/config.rb +1 -1
  109. data/lib/aws/dynamo_db/item.rb +10 -10
  110. data/lib/aws/dynamo_db/item_collection.rb +75 -75
  111. data/lib/aws/dynamo_db/table.rb +85 -85
  112. data/lib/aws/dynamo_db/table_collection.rb +13 -13
  113. data/lib/aws/ec2.rb +132 -142
  114. data/lib/aws/ec2/attachment.rb +31 -36
  115. data/lib/aws/ec2/attachment_collection.rb +1 -1
  116. data/lib/aws/ec2/availability_zone.rb +4 -4
  117. data/lib/aws/ec2/client.rb +2272 -2125
  118. data/lib/aws/ec2/config.rb +1 -1
  119. data/lib/aws/ec2/customer_gateway.rb +6 -6
  120. data/lib/aws/ec2/customer_gateway_collection.rb +6 -6
  121. data/lib/aws/ec2/dhcp_options.rb +3 -3
  122. data/lib/aws/ec2/dhcp_options_collection.rb +10 -10
  123. data/lib/aws/ec2/elastic_ip.rb +15 -15
  124. data/lib/aws/ec2/elastic_ip_collection.rb +11 -15
  125. data/lib/aws/ec2/export_task.rb +4 -4
  126. data/lib/aws/ec2/export_task_collection.rb +11 -11
  127. data/lib/aws/ec2/filtered_collection.rb +6 -8
  128. data/lib/aws/ec2/image.rb +46 -40
  129. data/lib/aws/ec2/image_collection.rb +44 -52
  130. data/lib/aws/ec2/instance.rb +64 -62
  131. data/lib/aws/ec2/instance_collection.rb +47 -50
  132. data/lib/aws/ec2/internet_gateway.rb +6 -6
  133. data/lib/aws/ec2/internet_gateway/attachment.rb +13 -13
  134. data/lib/aws/ec2/internet_gateway_collection.rb +3 -3
  135. data/lib/aws/ec2/key_pair.rb +3 -3
  136. data/lib/aws/ec2/key_pair_collection.rb +12 -12
  137. data/lib/aws/ec2/network_acl.rb +39 -39
  138. data/lib/aws/ec2/network_acl/association.rb +2 -2
  139. data/lib/aws/ec2/network_acl/entry.rb +22 -22
  140. data/lib/aws/ec2/network_acl_collection.rb +2 -2
  141. data/lib/aws/ec2/network_interface.rb +13 -4
  142. data/lib/aws/ec2/network_interface/attachment.rb +3 -3
  143. data/lib/aws/ec2/network_interface_collection.rb +5 -5
  144. data/lib/aws/ec2/permission_collection.rb +1 -1
  145. data/lib/aws/ec2/region.rb +6 -6
  146. data/lib/aws/ec2/region_collection.rb +1 -1
  147. data/lib/aws/ec2/reserved_instances_collection.rb +2 -2
  148. data/lib/aws/ec2/reserved_instances_offering_collection.rb +2 -2
  149. data/lib/aws/ec2/resource_tag_collection.rb +5 -5
  150. data/lib/aws/ec2/route_table.rb +14 -14
  151. data/lib/aws/ec2/route_table/association.rb +22 -22
  152. data/lib/aws/ec2/route_table/route.rb +8 -8
  153. data/lib/aws/ec2/route_table_collection.rb +3 -3
  154. data/lib/aws/ec2/security_group.rb +39 -41
  155. data/lib/aws/ec2/security_group_collection.rb +19 -21
  156. data/lib/aws/ec2/snapshot.rb +3 -3
  157. data/lib/aws/ec2/snapshot_collection.rb +11 -12
  158. data/lib/aws/ec2/subnet.rb +2 -2
  159. data/lib/aws/ec2/subnet_collection.rb +17 -17
  160. data/lib/aws/ec2/tag_collection.rb +1 -1
  161. data/lib/aws/ec2/tagged_collection.rb +7 -7
  162. data/lib/aws/ec2/tagged_item.rb +10 -10
  163. data/lib/aws/ec2/volume.rb +16 -16
  164. data/lib/aws/ec2/volume_collection.rb +9 -12
  165. data/lib/aws/ec2/vpc.rb +6 -6
  166. data/lib/aws/ec2/vpc_collection.rb +10 -10
  167. data/lib/aws/ec2/vpn_connection.rb +4 -4
  168. data/lib/aws/ec2/vpn_connection/telemetry.rb +1 -1
  169. data/lib/aws/ec2/vpn_connection_collection.rb +6 -6
  170. data/lib/aws/ec2/vpn_gateway.rb +2 -2
  171. data/lib/aws/ec2/vpn_gateway_collection.rb +5 -5
  172. data/lib/aws/elastic_beanstalk.rb +12 -12
  173. data/lib/aws/elastic_beanstalk/client.rb +376 -368
  174. data/lib/aws/elastic_beanstalk/config.rb +1 -1
  175. data/lib/aws/elastic_transcoder.rb +5 -5
  176. data/lib/aws/elastic_transcoder/client.rb +283 -283
  177. data/lib/aws/elastic_transcoder/config.rb +1 -1
  178. data/lib/aws/elasticache.rb +12 -12
  179. data/lib/aws/elasticache/client.rb +484 -479
  180. data/lib/aws/elasticache/config.rb +1 -1
  181. data/lib/aws/elb.rb +23 -23
  182. data/lib/aws/elb/availability_zone_collection.rb +34 -34
  183. data/lib/aws/elb/backend_server_policy_collection.rb +24 -24
  184. data/lib/aws/elb/client.rb +153 -153
  185. data/lib/aws/elb/config.rb +1 -1
  186. data/lib/aws/elb/errors.rb +1 -1
  187. data/lib/aws/elb/instance_collection.rb +20 -25
  188. data/lib/aws/elb/listener.rb +3 -3
  189. data/lib/aws/elb/listener_collection.rb +8 -8
  190. data/lib/aws/elb/load_balancer.rb +15 -16
  191. data/lib/aws/elb/load_balancer_collection.rb +36 -24
  192. data/lib/aws/elb/load_balancer_policy.rb +1 -1
  193. data/lib/aws/elb/load_balancer_policy_collection.rb +5 -5
  194. data/lib/aws/emr.rb +28 -26
  195. data/lib/aws/emr/client.rb +165 -149
  196. data/lib/aws/emr/config.rb +1 -1
  197. data/lib/aws/emr/instance_group.rb +1 -1
  198. data/lib/aws/emr/instance_group_collection.rb +1 -1
  199. data/lib/aws/emr/job_flow.rb +27 -26
  200. data/lib/aws/emr/job_flow_collection.rb +34 -34
  201. data/lib/aws/errors.rb +7 -7
  202. data/lib/aws/glacier.rb +21 -21
  203. data/lib/aws/glacier/archive_collection.rb +2 -2
  204. data/lib/aws/glacier/client.rb +139 -140
  205. data/lib/aws/glacier/config.rb +1 -1
  206. data/lib/aws/glacier/vault.rb +2 -2
  207. data/lib/aws/glacier/vault_collection.rb +1 -1
  208. data/lib/aws/iam.rb +133 -144
  209. data/lib/aws/iam/access_key.rb +17 -17
  210. data/lib/aws/iam/access_key_collection.rb +22 -22
  211. data/lib/aws/iam/account_alias_collection.rb +2 -2
  212. data/lib/aws/iam/client.rb +429 -420
  213. data/lib/aws/iam/collection.rb +1 -1
  214. data/lib/aws/iam/config.rb +2 -2
  215. data/lib/aws/iam/group.rb +8 -8
  216. data/lib/aws/iam/group_collection.rb +16 -16
  217. data/lib/aws/iam/group_policy_collection.rb +6 -6
  218. data/lib/aws/iam/group_user_collection.rb +3 -3
  219. data/lib/aws/iam/mfa_device.rb +1 -1
  220. data/lib/aws/iam/mfa_device_collection.rb +9 -9
  221. data/lib/aws/iam/policy_collection.rb +4 -4
  222. data/lib/aws/iam/resource.rb +2 -2
  223. data/lib/aws/iam/server_certificate.rb +1 -1
  224. data/lib/aws/iam/server_certificate_collection.rb +15 -15
  225. data/lib/aws/iam/signing_certificate.rb +29 -29
  226. data/lib/aws/iam/signing_certificate_collection.rb +23 -23
  227. data/lib/aws/iam/user.rb +33 -38
  228. data/lib/aws/iam/user_collection.rb +27 -27
  229. data/lib/aws/iam/user_group_collection.rb +3 -3
  230. data/lib/aws/iam/user_policy_collection.rb +6 -6
  231. data/lib/aws/iam/virtual_mfa_device.rb +12 -12
  232. data/lib/aws/iam/virtual_mfa_device_collection.rb +4 -4
  233. data/lib/aws/import_export.rb +22 -21
  234. data/lib/aws/import_export/client.rb +47 -43
  235. data/lib/aws/ops_works.rb +5 -5
  236. data/lib/aws/ops_works/client.rb +484 -438
  237. data/lib/aws/ops_works/config.rb +1 -1
  238. data/lib/aws/rails.rb +34 -34
  239. data/lib/aws/rds.rb +18 -18
  240. data/lib/aws/rds/client.rb +1286 -1277
  241. data/lib/aws/rds/config.rb +1 -1
  242. data/lib/aws/rds/db_instance.rb +15 -4
  243. data/lib/aws/rds/db_snapshot.rb +1 -1
  244. data/lib/aws/record.rb +50 -24
  245. data/lib/aws/record/abstract_base.rb +52 -60
  246. data/lib/aws/record/attributes.rb +79 -79
  247. data/lib/aws/record/conversion.rb +1 -1
  248. data/lib/aws/record/dirty_tracking.rb +69 -67
  249. data/lib/aws/record/errors.rb +21 -21
  250. data/lib/aws/record/exceptions.rb +2 -2
  251. data/lib/aws/record/hash_model.rb +20 -21
  252. data/lib/aws/record/hash_model/attributes.rb +13 -15
  253. data/lib/aws/record/hash_model/finder_methods.rb +46 -46
  254. data/lib/aws/record/hash_model/scope.rb +31 -31
  255. data/lib/aws/record/model.rb +136 -136
  256. data/lib/aws/record/model/attributes.rb +57 -59
  257. data/lib/aws/record/model/finder_methods.rb +67 -67
  258. data/lib/aws/record/model/scope.rb +48 -49
  259. data/lib/aws/record/naming.rb +1 -1
  260. data/lib/aws/record/scope.rb +23 -19
  261. data/lib/aws/record/validations.rb +253 -271
  262. data/lib/aws/record/validator.rb +3 -3
  263. data/lib/aws/record/validators/acceptance.rb +1 -3
  264. data/lib/aws/record/validators/block.rb +1 -3
  265. data/lib/aws/record/validators/confirmation.rb +1 -3
  266. data/lib/aws/record/validators/count.rb +2 -4
  267. data/lib/aws/record/validators/exclusion.rb +2 -4
  268. data/lib/aws/record/validators/format.rb +2 -4
  269. data/lib/aws/record/validators/inclusion.rb +1 -3
  270. data/lib/aws/record/validators/length.rb +5 -7
  271. data/lib/aws/record/validators/method.rb +1 -3
  272. data/lib/aws/record/validators/numericality.rb +6 -8
  273. data/lib/aws/record/validators/presence.rb +1 -3
  274. data/lib/aws/redshift.rb +14 -14
  275. data/lib/aws/redshift/client.rb +596 -592
  276. data/lib/aws/redshift/config.rb +1 -1
  277. data/lib/aws/route_53.rb +30 -30
  278. data/lib/aws/route_53/change_batch.rb +7 -7
  279. data/lib/aws/route_53/client.rb +188 -152
  280. data/lib/aws/route_53/hosted_zone.rb +4 -4
  281. data/lib/aws/route_53/hosted_zone_collection.rb +7 -7
  282. data/lib/aws/route_53/resource_record_set.rb +10 -10
  283. data/lib/aws/route_53/resource_record_set_collection.rb +6 -6
  284. data/lib/aws/s3.rb +79 -79
  285. data/lib/aws/s3/access_control_list.rb +44 -36
  286. data/lib/aws/s3/acl_options.rb +51 -51
  287. data/lib/aws/s3/bucket.rb +146 -146
  288. data/lib/aws/s3/bucket_collection.rb +21 -21
  289. data/lib/aws/s3/bucket_lifecycle_configuration.rb +81 -82
  290. data/lib/aws/s3/bucket_tag_collection.rb +4 -2
  291. data/lib/aws/s3/cipher_io.rb +5 -4
  292. data/lib/aws/s3/client.rb +89 -84
  293. data/lib/aws/s3/client/xml.rb +1 -1
  294. data/lib/aws/s3/config.rb +7 -1
  295. data/lib/aws/s3/cors_rule.rb +2 -0
  296. data/lib/aws/s3/cors_rule_collection.rb +42 -40
  297. data/lib/aws/s3/data_options.rb +16 -11
  298. data/lib/aws/s3/encryption_utils.rb +2 -2
  299. data/lib/aws/s3/errors.rb +7 -7
  300. data/lib/aws/s3/multipart_upload.rb +30 -33
  301. data/lib/aws/s3/multipart_upload_collection.rb +8 -6
  302. data/lib/aws/s3/object_collection.rb +35 -35
  303. data/lib/aws/s3/object_metadata.rb +6 -6
  304. data/lib/aws/s3/object_version.rb +4 -4
  305. data/lib/aws/s3/object_version_collection.rb +15 -15
  306. data/lib/aws/s3/policy.rb +2 -2
  307. data/lib/aws/s3/prefixed_collection.rb +9 -5
  308. data/lib/aws/s3/presigned_post.rb +39 -37
  309. data/lib/aws/s3/request.rb +11 -11
  310. data/lib/aws/s3/s3_object.rb +210 -200
  311. data/lib/aws/s3/tree.rb +25 -27
  312. data/lib/aws/s3/tree/child_collection.rb +3 -3
  313. data/lib/aws/s3/tree/leaf_node.rb +2 -2
  314. data/lib/aws/s3/tree/parent.rb +1 -1
  315. data/lib/aws/s3/website_configuration.rb +13 -13
  316. data/lib/aws/simple_db.rb +83 -83
  317. data/lib/aws/simple_db/attribute.rb +9 -7
  318. data/lib/aws/simple_db/attribute_collection.rb +22 -13
  319. data/lib/aws/simple_db/client.rb +107 -107
  320. data/lib/aws/simple_db/config.rb +7 -1
  321. data/lib/aws/simple_db/consistent_read_option.rb +5 -5
  322. data/lib/aws/simple_db/domain.rb +4 -2
  323. data/lib/aws/simple_db/domain_collection.rb +4 -4
  324. data/lib/aws/simple_db/domain_metadata.rb +5 -5
  325. data/lib/aws/simple_db/errors.rb +9 -9
  326. data/lib/aws/simple_db/item.rb +5 -5
  327. data/lib/aws/simple_db/item_collection.rb +83 -81
  328. data/lib/aws/simple_db/item_data.rb +4 -4
  329. data/lib/aws/simple_db/put_attributes.rb +3 -3
  330. data/lib/aws/simple_email_service.rb +140 -140
  331. data/lib/aws/simple_email_service/client.rb +82 -76
  332. data/lib/aws/simple_email_service/config.rb +1 -2
  333. data/lib/aws/simple_email_service/email_address_collection.rb +3 -3
  334. data/lib/aws/simple_email_service/identity.rb +8 -8
  335. data/lib/aws/simple_email_service/quotas.rb +8 -6
  336. data/lib/aws/simple_workflow.rb +106 -106
  337. data/lib/aws/simple_workflow/activity_task.rb +15 -22
  338. data/lib/aws/simple_workflow/activity_task_collection.rb +15 -15
  339. data/lib/aws/simple_workflow/activity_type.rb +23 -23
  340. data/lib/aws/simple_workflow/activity_type_collection.rb +23 -23
  341. data/lib/aws/simple_workflow/client.rb +1004 -956
  342. data/lib/aws/simple_workflow/config.rb +1 -1
  343. data/lib/aws/simple_workflow/count.rb +5 -5
  344. data/lib/aws/simple_workflow/decision_task.rb +129 -129
  345. data/lib/aws/simple_workflow/decision_task_collection.rb +59 -59
  346. data/lib/aws/simple_workflow/domain.rb +11 -11
  347. data/lib/aws/simple_workflow/domain_collection.rb +26 -26
  348. data/lib/aws/simple_workflow/history_event.rb +32 -32
  349. data/lib/aws/simple_workflow/history_event_collection.rb +3 -3
  350. data/lib/aws/simple_workflow/option_formatters.rb +5 -5
  351. data/lib/aws/simple_workflow/request.rb +1 -1
  352. data/lib/aws/simple_workflow/resource.rb +1 -1
  353. data/lib/aws/simple_workflow/type.rb +8 -8
  354. data/lib/aws/simple_workflow/type_collection.rb +15 -15
  355. data/lib/aws/simple_workflow/workflow_execution.rb +70 -72
  356. data/lib/aws/simple_workflow/workflow_execution_collection.rb +130 -130
  357. data/lib/aws/simple_workflow/workflow_type.rb +27 -25
  358. data/lib/aws/simple_workflow/workflow_type_collection.rb +20 -20
  359. data/lib/aws/sns.rb +25 -25
  360. data/lib/aws/sns/client.rb +55 -55
  361. data/lib/aws/sns/config.rb +1 -1
  362. data/lib/aws/sns/policy.rb +1 -1
  363. data/lib/aws/sns/subscription.rb +7 -7
  364. data/lib/aws/sns/subscription_collection.rb +5 -5
  365. data/lib/aws/sns/topic.rb +49 -49
  366. data/lib/aws/sns/topic_collection.rb +2 -2
  367. data/lib/aws/sns/topic_subscription_collection.rb +5 -5
  368. data/lib/aws/sqs.rb +20 -20
  369. data/lib/aws/sqs/client.rb +78 -78
  370. data/lib/aws/sqs/config.rb +1 -1
  371. data/lib/aws/sqs/errors.rb +12 -12
  372. data/lib/aws/sqs/queue.rb +66 -67
  373. data/lib/aws/sqs/queue_collection.rb +16 -8
  374. data/lib/aws/sqs/received_message.rb +7 -6
  375. data/lib/aws/storage_gateway.rb +21 -21
  376. data/lib/aws/storage_gateway/client.rb +269 -202
  377. data/lib/aws/storage_gateway/config.rb +1 -1
  378. data/lib/aws/sts.rb +10 -8
  379. data/lib/aws/sts/client.rb +35 -35
  380. data/lib/aws/sts/session.rb +3 -3
  381. data/lib/aws/version.rb +1 -2
  382. metadata +23 -21
  383. data/lib/aws/core/autoloader.rb +0 -64
  384. data/lib/net/http/connection_pool.rb +0 -226
  385. data/lib/net/http/connection_pool/connection.rb +0 -189
  386. data/lib/net/http/connection_pool/session.rb +0 -126
@@ -18,17 +18,16 @@ module AWS
18
18
  # find out which images exist with the characteristics you are
19
19
  # interested in:
20
20
  #
21
- # ec2 = EC2.new
22
- # all_images = ec2.images
23
- # amazon_owned_images = all_images.with_owner('amazon')
24
- # my_images = all_images.with_owner('self')
25
- # tagged_amis = all_images.tagged('mytag')
26
- # tagged_amis.map(&:id) # => ["ami-123", ...]
21
+ # ec2 = EC2.new
22
+ # all_images = ec2.images
23
+ # amazon_owned_images = all_images.with_owner('amazon')
24
+ # my_images = all_images.with_owner('self')
25
+ # tagged_amis = all_images.tagged('mytag')
26
+ # tagged_amis.map(&:id) # => ["ami-123", ...]
27
27
  #
28
28
  # You can also use it to create new images. For example:
29
29
  #
30
- # ec2.images.create(:instance_id => "i-123",
31
- # :name => "my-image")
30
+ # ec2.images.create(:instance_id => "i-123", :name => "my-image")
32
31
  #
33
32
  class ImageCollection < Collection
34
33
 
@@ -49,7 +48,7 @@ module AWS
49
48
 
50
49
  # @return [ImageCollection] A new collection that only includes
51
50
  # images owned by one or more of the specified AWS accounts.
52
- # The IDs +:amazon+ and +:self+ can be used to include AMIs
51
+ # The IDs `:amazon` and `:self` can be used to include AMIs
53
52
  # owned by Amazon or AMIs owned by you, respectively.
54
53
  #
55
54
  # @param [Array of Strings] owners The AWS account IDs by
@@ -60,9 +59,9 @@ module AWS
60
59
 
61
60
  # @return [ImageCollection] A new collection that only includes
62
61
  # images for which the specified user ID has explicit launch
63
- # permissions. The user ID can be an AWS account ID, +:self+
62
+ # permissions. The user ID can be an AWS account ID, `:self`
64
63
  # to return AMIs for which the sender of the request has
65
- # explicit launch permissions, or +:all+ to return AMIs with
64
+ # explicit launch permissions, or `:all` to return AMIs with
66
65
  # public launch permissions.
67
66
  #
68
67
  # @param [Array of Strings] users The AWS account IDs by which
@@ -88,35 +87,34 @@ module AWS
88
87
 
89
88
  # Creates an AMI. There are several ways to create an AMI
90
89
  # using this method; for detailed information on each strategy
91
- # see {the EC2 Developer
92
- # Guide}[http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/creating-an-ami.html].
90
+ # see [the EC2 Developer Guide](http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/creating-an-ami.html).
93
91
  #
94
92
  # @param [Hash] options Options for creating the image.
95
- # +:name+ is required, and you must also specify one of the
93
+ # `:name` is required, and you must also specify one of the
96
94
  # following options:
97
95
  #
98
- # * +:instance_id+
99
- # * +:image_location+
100
- # * +:root_device_name+
96
+ # * `:instance_id`
97
+ # * `:image_location`
98
+ # * `:root_device_name`
101
99
  #
102
100
  # @option options [String] :instance_id The ID of a running
103
101
  # instance. This instance will be rebooted unless
104
- # +:no_reboot+ is set to +true+.
102
+ # `:no_reboot` is set to `true`.
105
103
  #
106
104
  # @option options [String] :description A description of the
107
105
  # new image.
108
106
  #
109
107
  # @option options [Boolean] :no_reboot By default this
110
- # option is set to +false+, which means Amazon EC2
108
+ # option is set to `false`, which means Amazon EC2
111
109
  # attempts to cleanly shut down the instance before image
112
110
  # creation and reboots the instance afterwards. When the
113
- # option is set to +true+, Amazon EC2 does not shut down
111
+ # option is set to `true`, Amazon EC2 does not shut down
114
112
  # the instance before creating the image. When this option
115
113
  # is used, file system integrity on the created image cannot
116
114
  # be guaranteed.
117
115
  #
118
116
  # *Note*: This option is only valid when used with
119
- # +:instance_id+.
117
+ # `:instance_id`.
120
118
  #
121
119
  # @option options [String] :image_location Full path to your
122
120
  # AMI manifest in Amazon S3 storage. This must be of the
@@ -125,24 +123,24 @@ module AWS
125
123
  # @option options [String] :architecture The architecture of
126
124
  # the image. Valid values:
127
125
  #
128
- # * +:i386+
129
- # * +:x86_64+
126
+ # * `:i386`
127
+ # * `:x86_64`
130
128
  #
131
- # *Note*: This option is only valid with +:image_location+
132
- # or +:root_device_name+
129
+ # *Note*: This option is only valid with `:image_location`
130
+ # or `:root_device_name`
133
131
  #
134
132
  # @option options [String] :kernel_id The ID of the kernel to
135
133
  # select.
136
134
  #
137
- # *Note*: This option is only valid with +:image_location+
138
- # or +:root_device_name+
135
+ # *Note*: This option is only valid with `:image_location`
136
+ # or `:root_device_name`
139
137
  #
140
138
  # @option options [Image] :kernel The kernel image to use.
141
- # Equivalent to passing +:kernel_id+ with the ID of the
139
+ # Equivalent to passing `:kernel_id` with the ID of the
142
140
  # image.
143
141
  #
144
- # *Note*: This option is only valid with +:image_location+
145
- # or +:root_device_name+
142
+ # *Note*: This option is only valid with `:image_location`
143
+ # or `:root_device_name`
146
144
  #
147
145
  # @option options [String] :ramdisk_id The ID of the RAM disk
148
146
  # to select. Some kernels require additional drivers at
@@ -151,15 +149,15 @@ module AWS
151
149
  # requirements, refer to the Resource Center and search for
152
150
  # the kernel ID.
153
151
  #
154
- # *Note*: This option is only valid with +:image_location+
155
- # or +:root_device_name+
152
+ # *Note*: This option is only valid with `:image_location`
153
+ # or `:root_device_name`
156
154
  #
157
155
  # @option options [Image] :ramdisk The ramdisk image to use.
158
- # Equivalent to passing +:ramdisk_id+ with the ID of the
156
+ # Equivalent to passing `:ramdisk_id` with the ID of the
159
157
  # image.
160
158
  #
161
- # *Note*: This option is only valid with +:image_location+
162
- # or +:root_device_name+
159
+ # *Note*: This option is only valid with `:image_location`
160
+ # or `:root_device_name`
163
161
  #
164
162
  # @option options [String] :root_device_name The root device
165
163
  # name (e.g., /dev/sda1, or xvda).
@@ -169,23 +167,17 @@ module AWS
169
167
  # each entry determines how that device is mapped. Valid
170
168
  # values include:
171
169
  #
172
- # * A string, which is interpreted as a virtual device name.
173
- #
174
- # * A hash with any of the following options. One of
175
- # +:snapshot+, +:snapshot_id+ or +:volume_size+ is
176
- # required.
177
- #
178
- # [:snapshot] A snapshot to use when creating the block
179
- # device.
180
- #
181
- # [:snapshot_id] The ID of a snapshot to use when creating
182
- # the block device.
183
- #
184
- # [:volume_size] The size of volume to create, in gigabytes.
185
- #
186
- # [:delete_on_termination] Setting this to true causes EC2
187
- # to delete the volume when the
188
- # instance is terminated.
170
+ # * A string, which is interpreted as a virtual device name.
171
+ # * A hash with any of the following options. One of
172
+ # `:snapshot`, `:snapshot_id` or `:volume_size` is
173
+ # required.
174
+ #
175
+ # * `:snapshot` - A snapshot to use when creating the block device.
176
+ # * `:snapshot_id` - The ID of a snapshot to use when creating
177
+ # the block device.
178
+ # * `:volume_size` -] The size of volume to create, in gigabytes.
179
+ # * `:delete_on_termination` - Setting this to true causes EC2
180
+ # to delete the volume when the instance is terminated.
189
181
  # @return [Image]
190
182
  def create options = {}
191
183
  resp = case
@@ -25,11 +25,11 @@ module AWS
25
25
  # The instance must be in a stopped state to change user data;
26
26
  # for example:
27
27
  #
28
- # i.user_data # => "HELLO"
29
- # i.status # => :running
30
- # i.user_data = "GOODBYE" # raises an exception
31
- # i.stop; sleep 1 until i.status == :stopped
32
- # i.user_data = "GOODBYE" # => "GOODBYE"
28
+ # i.user_data # => "HELLO"
29
+ # i.status # => :running
30
+ # i.user_data = "GOODBYE" # raises an exception
31
+ # i.stop; sleep 1 until i.status == :stopped
32
+ # i.user_data = "GOODBYE" # => "GOODBYE"
33
33
  #
34
34
  # @attr [String] instance_type The instance type,
35
35
  # e.g. "m1.small". The instance must be in a stopped state to
@@ -45,11 +45,10 @@ module AWS
45
45
  # @attr [String] instance_initiated_shutdown_behavior Valid
46
46
  # values are:
47
47
  #
48
- # ["stop"] When the instance shuts down, it will go into a
49
- # "stopped" state.
50
- #
51
- # ["terminate"] When the instance shuts down, it will be
52
- # terminated.
48
+ # * "stop"] When the instance shuts down, it will go into a
49
+ # "stopped" state.
50
+ # * "terminate"] When the instance shuts down, it will be
51
+ # terminated.
53
52
  #
54
53
  # @attr_reader [String] image_id Image ID of the AMI used to
55
54
  # launch the instance.
@@ -68,8 +67,9 @@ module AWS
68
67
  # @attr_reader [Symbol] root_device_type The root device type
69
68
  # used by the AMI. The AMI can use an Amazon EBS or instance
70
69
  # store root device. Valid values:
71
- # * +:ebs+
72
- # * +:instance_store+
70
+ #
71
+ # * `:ebs`
72
+ # * `:instance_store`
73
73
  #
74
74
  # @attr_reader [String] root_device_name The name of the root
75
75
  # device.
@@ -90,23 +90,25 @@ module AWS
90
90
  # @attr_reader [String] ip_address The IP address of the
91
91
  # instance.
92
92
  #
93
- # @attr_reader [Symbol] status The instance status. Valid values are:
94
- # * +:pending+
95
- # * +:running+
96
- # * +:shutting_down+
97
- # * +:terminated+
98
- # * +:stopping+
99
- # * +:stopped+
93
+ # @attr_reader [Symbol] status The instance status.
94
+ # Valid values are:
95
+ #
96
+ # * `:pending`
97
+ # * `:running`
98
+ # * `:shutting_down`
99
+ # * `:terminated`
100
+ # * `:stopping`
101
+ # * `:stopped`
100
102
  #
101
103
  # @attr_reader [Integer] status_code The numeric instance status code.
102
104
  #
103
- # @attr_reader [Symbol] architecture The architecture of the
104
- # image.
105
+ # @attr_reader [Symbol] architecture The architecture of the image.
105
106
  #
106
107
  # @attr_reader [Symbol] virtualization_type The instance's
107
108
  # virtualization type. Valid values:
108
- # * +:paravirtual+
109
- # * +:hvm+
109
+ #
110
+ # * `:paravirtual`
111
+ # * `:hvm`
110
112
  #
111
113
  # @attr_reader [String] reservation_id The ID of the reservation
112
114
  # in which this instance was launched.
@@ -120,9 +122,10 @@ module AWS
120
122
  #
121
123
  # @attr_reader [Symbol] monitoring The status of CloudWatch
122
124
  # monitoring for the instance. Valid values:
123
- # * +:enabled+
124
- # * +:disabled+
125
- # * +:pending+
125
+ #
126
+ # * `:enabled`
127
+ # * `:disabled`
128
+ # * `:pending`
126
129
  #
127
130
  # @attr_reader [String] state_transition_reason A string
128
131
  # describing the reason for the last state transition.
@@ -135,8 +138,9 @@ module AWS
135
138
  #
136
139
  # @attr_reader [Symbol] hypervisor The instance's hypervisor
137
140
  # type. Valid values:
138
- # * +:ovm+
139
- # * +:xen+
141
+ #
142
+ # * `:ovm`
143
+ # * `:xen`
140
144
  #
141
145
  # @attr_reader [String] client_token Idempotency token you
142
146
  # provided when you launched the instance.
@@ -458,22 +462,22 @@ module AWS
458
462
 
459
463
  # Returns a list of block device mappings.
460
464
  #
461
- # instance.block_devices
462
- # #=>
463
- # [
464
- # {
465
- # :device_name => "/dev/sda2",
466
- # :ebs => {
467
- # :volume_id => "vol-123",
468
- # :status => "attaching",
469
- # :attach_time => time,
470
- # :delete_on_termination => true
465
+ # instance.block_devices
466
+ # #=>
467
+ # [
468
+ # {
469
+ # :device_name => "/dev/sda2",
470
+ # :ebs => {
471
+ # :volume_id => "vol-123",
472
+ # :status => "attaching",
473
+ # :attach_time => time,
474
+ # :delete_on_termination => true
475
+ # }
476
+ # }, {
477
+ # :device_name => "/dev/sdb",
478
+ # :virtual_name => "ephemeral0",
471
479
  # }
472
- # }, {
473
- # :device_name => "/dev/sdb",
474
- # :virtual_name => "ephemeral0",
475
- # }
476
- # ]
480
+ # ]
477
481
  #
478
482
  # @return [Array<Hash>] Returns a list of block device mappings. This
479
483
  # list may contain ephemeral volumes.
@@ -502,7 +506,7 @@ module AWS
502
506
  state ? enable_monitoring : disable_monitoring
503
507
  end
504
508
 
505
- # @return [Booelan] Returns +true+ if CloudWatch monitoring is
509
+ # @return [Booelan] Returns `true` if CloudWatch monitoring is
506
510
  # enabled for this instance.
507
511
  def monitoring_enabled?
508
512
  monitoring == :enabled
@@ -550,17 +554,15 @@ module AWS
550
554
  # parenthesis (()), commas (,), slashes (/), dashes (-), or
551
555
  # underscores(_)
552
556
  #
553
- # @param [Hash] options Additional options for creating the
554
- # image.
557
+ # @param [Hash] options Additional options for creating the image.
555
558
  #
556
- # @option options [String] :description A description of the
557
- # new image.
559
+ # @option options [String] :description A description of the new image.
558
560
  #
559
561
  # @option options [Boolean] :no_reboot By default this
560
- # option is set to +false+, which means Amazon EC2
562
+ # option is set to `false`, which means Amazon EC2
561
563
  # attempts to cleanly shut down the instance before image
562
564
  # creation and reboots the instance afterwards. When the
563
- # option is set to +true+, Amazon EC2 does not shut down
565
+ # option is set to `true`, Amazon EC2 does not shut down
564
566
  # the instance before creating the image. When this option
565
567
  # is used, file system integrity on the created image cannot
566
568
  # be guaranteed.
@@ -685,28 +687,28 @@ module AWS
685
687
  # virtualization environment and then writes the image to a
686
688
  # S3 bucket.
687
689
  #
688
- # == Granting EC2 write access to your bucket
690
+ # ## Granting EC2 write access to your bucket
689
691
  #
690
692
  # Before you can export an image to an S3 bucket, you must modify
691
693
  # the bucket ACL. You only need to do this once per bucket.
692
694
  #
693
- # s3.buckets['bucket-name'].acl.change do |acl|
694
- # acl.grant(:read_acp).to(:amazon_customer_email => 'vm-import-export@amazon.com')
695
- # acl.grant(:write).to(:amazon_customer_email => 'vm-import-export@amazon.com')
696
- # end
695
+ # s3.buckets['bucket-name'].acl.change do |acl|
696
+ # acl.grant(:read_acp).to(:amazon_customer_email => 'vm-import-export@amazon.com')
697
+ # acl.grant(:write).to(:amazon_customer_email => 'vm-import-export@amazon.com')
698
+ # end
697
699
  #
698
- # == Performing the export
700
+ # ## Performing the export
699
701
  #
700
702
  # Simply call #export_to_s3 on your instance. Only instances
701
703
  # derived from your own ImportInstance tasks may be exported.
702
704
  #
703
- # task = ec2.instances['i-12345678'].export_to_s3('bucket-name')
705
+ # task = ec2.instances['i-12345678'].export_to_s3('bucket-name')
704
706
  #
705
- # == Downloading the results
707
+ # ## Downloading the results
706
708
  #
707
709
  # Given a completed export task you can download the final image:
708
710
  #
709
- # File.open('image.ova', 'w') {|f| f.write(task.s3_object.read) }
711
+ # File.open('image.ova', 'w') {|f| f.write(task.s3_object.read) }
710
712
  #
711
713
  # @param [S3::Bucket,String] bucket The destination bucket. May
712
714
  # be the name of the bucket (string) or a {S3::Bucket} object. The
@@ -720,13 +722,13 @@ module AWS
720
722
  # and 'microsoft'.
721
723
  #
722
724
  # @option options [String] :disk_image_format The format for the exported
723
- # image. Defaults to 'vmdk' if +:target_environemnt+ is 'vmware',
725
+ # image. Defaults to 'vmdk' if `:target_environemnt` is 'vmware',
724
726
  # otherwise, 'vhd'.
725
727
  #
726
728
  # @option options [String] :container_format The container format used to
727
729
  # combine disk images with metadata (such as OVF). If absent, only
728
730
  # the disk image will be exported. Defaults to 'ova' if
729
- # +:target_environment+ is 'vmware', otherwise ommited.
731
+ # `:target_environment` is 'vmware', otherwise ommited.
730
732
  #
731
733
  # @option options [String] :description Description of the conversion
732
734
  # task or the resource being exported.
@@ -734,7 +736,7 @@ module AWS
734
736
  # @option options [String] :prefix (nil) The image is written to a
735
737
  # single object in the bucket at the key:
736
738
  #
737
- # "#{prefix}#{export_task_id}.#{disk_image_format}"
739
+ # "#{prefix}#{export_task_id}.#{disk_image_format}"
738
740
  #
739
741
  # @return [ExportTask]
740
742
  #
@@ -17,24 +17,23 @@ require 'uuidtools'
17
17
  module AWS
18
18
  class EC2
19
19
 
20
- ##
21
20
  # Represents a collection of EC2 instances. Typically you
22
21
  # should get an instance of this class by calling
23
22
  # {EC2#instances}.
24
23
  #
25
24
  # To run an instance:
26
25
  #
27
- # ec2.instances.create(:image_id => "ami-1b814f72")
26
+ # ec2.instances.create(:image_id => "ami-1b814f72")
28
27
  #
29
28
  # To get an instance by ID:
30
29
  #
31
- # i = ec2.instances["i-12345678"]
32
- # i.exists?
30
+ # i = ec2.instances["i-12345678"]
31
+ # i.exists?
33
32
  #
34
33
  # To get a map of instance IDs to instance status:
35
34
  #
36
- # ec2.instances.inject({}) { |m, i| m[i.id] = i.status; m }
37
- # # => { "i-12345678" => :running, "i-87654321" => :shutting_down }
35
+ # ec2.instances.inject({}) { |m, i| m[i.id] = i.status; m }
36
+ # # => { "i-12345678" => :running, "i-87654321" => :shutting_down }
38
37
  #
39
38
  class InstanceCollection < Collection
40
39
 
@@ -53,7 +52,7 @@ module AWS
53
52
  # :image_id => "ami-8c1fece5",
54
53
  # :count => 10)
55
54
  #
56
- # sleep 1 while instances.any? {|i| i.status == :pending }
55
+ # sleep 1 while instances.any? {|i| i.status == :pending }
57
56
  #
58
57
  # @example Specifying block device mappings
59
58
  #
@@ -73,7 +72,7 @@ module AWS
73
72
  # :image_id => "ami-8c1fece5",
74
73
  # :subnet => "subnet-abc123ef")
75
74
  #
76
- # @param [Hash] options Options for new instance. +:image_id+ is
75
+ # @param [Hash] options Options for new instance. `:image_id` is
77
76
  # the only required option.
78
77
  #
79
78
  # @option options [Integer] :count How many instances to request. By
@@ -87,34 +86,31 @@ module AWS
87
86
  # ARN of an IAM instance profile. This provides credentials
88
87
  # to the EC2 instance(s) via the instance metadata service.
89
88
  #
90
- # @option options [Hash] :block_device_mappings This must be a
91
- # hash; the keys are device names to map, and the value for
92
- # each entry determines how that device is mapped. Valid
93
- # values include:
94
89
  #
95
- # * A string, which is interpreted as a virtual device name.
96
- #
97
- # * The symbol :no_device, which overrides the default
98
- # mapping for a device so that it is not mapped to anything.
99
- #
100
- # * A hash with any of the following options. One of
101
- # +:snapshot+, +:snapshot_id+ or +:volume_size+ is
102
- # required.
103
- #
104
- # [:snapshot] A snapshot to use when creating the block
105
- # device.
106
- #
107
- # [:snapshot_id] The ID of a snapshot to use when creating
108
- # the block device.
109
- #
110
- # [:volume_size] The size of volume to create, in gigabytes.
111
- #
112
- # [:delete_on_termination] Setting this to true causes EC2
113
- # to delete the volume when the
114
- # instance is terminated.
90
+ # @option options [Array<Hash>] :block_device_mappings Specifies how block
91
+ # devices are exposed to the instance. Each mapping is made up of a
92
+ # virtualName and a deviceName.
93
+ #
94
+ # * `:virtual_name` - (String) Specifies the virtual device name.
95
+ # * `:device_name` - (String) Specifies the device name (e.g.,
96
+ # /dev/sdh).
97
+ # * `:ebs` - (Hash) Specifies parameters used to automatically setup
98
+ # Amazon EBS volumes when the instance is launched.
99
+ # * `:snapshot_id` - (String) The ID of the snapshot from which the
100
+ # volume will be created.
101
+ # * `:volume_size` - (Integer) The size of the volume, in
102
+ # gigabytes.
103
+ # * `:delete_on_termination` - (Boolean) Specifies whether the
104
+ # Amazon EBS volume is deleted on instance termination.
105
+ # * `:volume_type` - (String) Valid values include:
106
+ # * `standard`
107
+ # * `io1`
108
+ # * `:iops` - (Integer)
109
+ # * `:no_device` - (String) Specifies the device name to suppress
110
+ # during instance launch.
115
111
  #
116
112
  # @option options [Boolean] :monitoring_enabled Setting this to
117
- # +true+ enables CloudWatch monitoring on the instances once they
113
+ # `true` enables CloudWatch monitoring on the instances once they
118
114
  # are started.
119
115
  #
120
116
  # @option options [String] :availability_zone Specifies the
@@ -133,12 +129,12 @@ module AWS
133
129
  #
134
130
  # @option options [Array] :security_groups Security groups are used
135
131
  # to determine network access rules for the instances.
136
- # +:security_groups+ can be a single value or an array of values.
132
+ # `:security_groups` can be a single value or an array of values.
137
133
  # Values should be group name strings or {SecurityGroup} objects.
138
134
  #
139
135
  # @option options [Array<String>] :security_group_ids Security groups
140
136
  # are used to determine network access rules for the instances.
141
- # +:security_group_ids+ accepts a single ID or an array of security
137
+ # `:security_group_ids` accepts a single ID or an array of security
142
138
  # group IDs.
143
139
  #
144
140
  # @option options [String] :user_data Arbitrary user data. You
@@ -165,12 +161,12 @@ module AWS
165
161
  # you later want to terminate the instance, you must first
166
162
  # enable API termination. For example:
167
163
  #
168
- # i = ec2.instances.create(:image_id => "ami-8c1fece5",
169
- # :disable_api_termination => true)
170
- # i.api_termination_disabled? # => true
171
- # i.terminate # raises an exception
172
- # i.api_termination_disabled = false
173
- # i.terminate # terminates the instance
164
+ # i = ec2.instances.create(:image_id => "ami-8c1fece5",
165
+ # :disable_api_termination => true)
166
+ # i.api_termination_disabled? # => true
167
+ # i.terminate # raises an exception
168
+ # i.api_termination_disabled = false
169
+ # i.terminate # terminates the instance
174
170
  #
175
171
  # @option options [String] :instance_initiated_shutdown_behavior
176
172
  # Determines whether the instance stops or terminates on
@@ -192,13 +188,13 @@ module AWS
192
188
  # valid for instances launched outside a VPC (e.g. those
193
189
  # launched without the :subnet option).
194
190
  #
195
- # @option options [Boolean] :ebs_optimized (false) EBS-Optimized instances
196
- # enable Amazon EC2 instances to fully utilize the IOPS provisioned on
197
- # an EBS volume. EBS-optimized instances deliver dedicated throughput
191
+ # @option options [Boolean] :ebs_optimized (false) EBS-Optimized instances
192
+ # enable Amazon EC2 instances to fully utilize the IOPS provisioned on
193
+ # an EBS volume. EBS-optimized instances deliver dedicated throughput
198
194
  # between Amazon EC2 and Amazon EBS, with options between 500 Mbps and
199
- # 1000 Mbps depending on the instance type used. When attached to
200
- # EBS-Optimized instances, Provisioned IOPS volumes are designed
201
- # to deliver within 10% of their provisioned performance 99.9% of the time.
195
+ # 1000 Mbps depending on the instance type used. When attached to
196
+ # EBS-Optimized instances, Provisioned IOPS volumes are designed
197
+ # to deliver within 10% of their provisioned performance 99.9% of the time.
202
198
  # *NOTE:* EBS Optimized instances incur an additional service charge. This
203
199
  # optional is only valid for certain instance types.
204
200
  #
@@ -242,9 +238,10 @@ module AWS
242
238
  options[:user_data] = Base64.encode64(options[:user_data]).strip if
243
239
  options[:user_data]
244
240
 
245
- options[:block_device_mappings] =
246
- translate_block_device_mappings(options[:block_device_mappings]) if
247
- options[:block_device_mappings]
241
+ if options[:block_device_mappings].is_a?(Hash)
242
+ options[:block_device_mappings] =
243
+ translate_block_device_mappings(options[:block_device_mappings])
244
+ end
248
245
 
249
246
  options[:monitoring] = { :enabled => true } if
250
247
  options[:monitoring_enabled]