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
@@ -13,6 +13,6 @@
13
13
 
14
14
  AWS::Core::Configuration.module_eval do
15
15
 
16
- add_service 'CloudWatch', 'cloud_watch', 'monitoring.us-east-1.amazonaws.com'
16
+ add_service 'CloudWatch', 'cloud_watch', 'monitoring.%s.amazonaws.com'
17
17
 
18
18
  end
@@ -17,7 +17,7 @@ require 'time'
17
17
  module AWS
18
18
  class CloudWatch
19
19
 
20
- # = Metric
20
+ # # Metric
21
21
  #
22
22
  # Represents a single metric.
23
23
  #
@@ -26,8 +26,8 @@ module AWS
26
26
  # @param [String] namespace The metric namespace.
27
27
  # @param [String] metric_name The metric name.
28
28
  # @param [Hash] options
29
- # @option options [Array<Hash>] :dimensions An array of dimensions.
30
- # Each hash must have a +:name+ and a +value+ key (with string values).
29
+ # @option options [Array<Hash>] :dimensions An array of dimensions.
30
+ # Each hash must have a `:name` and a `value` key (with string values).
31
31
  def initialize namespace, metric_name, options = {}
32
32
  @namespace = namespace
33
33
  @metric_name = metric_name
@@ -53,10 +53,10 @@ module AWS
53
53
 
54
54
  # Publishes metric data points to Amazon CloudWatch.
55
55
  # @param [Array<Hash>] metric_data An array of hashes. Each hash
56
- # must pass +:value+ (number) or +:statistic_values+ (hash).
56
+ # must pass `:value` (number) or `:statistic_values` (hash).
57
57
  # @return [nil]
58
58
  def put_data *metric_data
59
-
59
+
60
60
  metric_opts = {}
61
61
  metric_opts[:metric_name] = metric_name
62
62
  metric_opts[:dimensions] = dimensions unless dimensions.empty?
@@ -74,17 +74,17 @@ module AWS
74
74
 
75
75
  # Gets statistics for this metric.
76
76
  #
77
- # metric = CloudWatch::Metric.new('my/namepace', 'metric-name')
77
+ # metric = CloudWatch::Metric.new('my/namepace', 'metric-name')
78
78
  #
79
- # stats = metric.statistics(
80
- # :start_time => Time.now - 3600,
81
- # :end_time => Time.now,
82
- # :statistics => ['Average'])
79
+ # stats = metric.statistics(
80
+ # :start_time => Time.now - 3600,
81
+ # :end_time => Time.now,
82
+ # :statistics => ['Average'])
83
83
  #
84
- # stats.label #=> 'some-label'
85
- # stats.each do |datapoint|
86
- # # datapoint is a hash
87
- # end
84
+ # stats.label #=> 'some-label'
85
+ # stats.each do |datapoint|
86
+ # # datapoint is a hash
87
+ # end
88
88
  #
89
89
  # @param [Hash] options
90
90
  # @option options [Time,required] :start_time
@@ -111,7 +111,7 @@ module AWS
111
111
 
112
112
  end
113
113
 
114
- # @return [Boolean] Returns +true+ if this metric exists.
114
+ # @return [Boolean] Returns `true` if this metric exists.
115
115
  def exists?
116
116
  !get_resource.data[:metrics].empty?
117
117
  end
@@ -14,32 +14,32 @@
14
14
  module AWS
15
15
  class CloudWatch
16
16
 
17
- # = MetricAlarmCollection
17
+ # # MetricAlarmCollection
18
18
  #
19
19
  # Represents all alarms for a single metric.
20
20
  #
21
- # == Getting an alarm by name
21
+ # ## Getting an alarm by name
22
22
  #
23
23
  # If you know the name of the alarm, you can get a reference using
24
24
  # the {#[]} method.
25
25
  #
26
- # metric.alarms['alarm-name']
26
+ # metric.alarms['alarm-name']
27
27
  #
28
- # == Enumerating Alarms
28
+ # ## Enumerating Alarms
29
29
  #
30
30
  # You can enumerate all alarms for a metric using each (or any of the
31
31
  # methods defined in {Core::Collection}).
32
32
  #
33
- # metric.alarms.each do |alarm|
34
- # puts alarm.name
35
- # end
33
+ # metric.alarms.each do |alarm|
34
+ # puts alarm.name
35
+ # end
36
36
  #
37
- # == Filtering Alarms
37
+ # ## Filtering Alarms
38
38
  #
39
39
  # Use one of the filtering methods to reduce the number of alarms
40
40
  # returned.
41
41
  #
42
- # metric.alarms.with_unit('Seconds').each {|alarm| ... }
42
+ # metric.alarms.with_unit('Seconds').each {|alarm| ... }
43
43
  #
44
44
  class MetricAlarmCollection < AlarmCollection
45
45
 
@@ -80,15 +80,15 @@ module AWS
80
80
  #
81
81
  # @example Filtering by a 1 hour period
82
82
  #
83
- # metric.alarms.filter('period', 3600)
83
+ # metric.alarms.filter('period', 3600)
84
84
  #
85
- # @example Filtering by statistic
85
+ # @example Filtering by statistic
86
86
  #
87
- # my_metric = metrics.filter('statistic', 'maximum')
87
+ # my_metric = metrics.filter('statistic', 'maximum')
88
88
  #
89
89
  # @example Filtering by a unit
90
90
  #
91
- # metrics = metrics.filter('unit', 'Megabits')
91
+ # metrics = metrics.filter('unit', 'Megabits')
92
92
  #
93
93
  # @param [String,Symbol] name
94
94
  # @param [String,Integer] value
@@ -100,7 +100,7 @@ module AWS
100
100
 
101
101
  # Returns a new collection that filters alarms by a period.
102
102
  #
103
- # metric.alarms.with_period(3600).each {|alarm| ... }
103
+ # metric.alarms.with_period(3600).each {|alarm| ... }
104
104
  #
105
105
  # @param [Integer] period
106
106
  # @return [MetricAlarmCollection]
@@ -110,7 +110,7 @@ module AWS
110
110
 
111
111
  # Returns a new collection that filters alarms by a statistic.
112
112
  #
113
- # metric.alarms.with_statistic('Average').each {|alarm| ... }
113
+ # metric.alarms.with_statistic('Average').each {|alarm| ... }
114
114
  #
115
115
  # @param [String] statistic
116
116
  # @return [MetricAlarmCollection]
@@ -120,7 +120,7 @@ module AWS
120
120
 
121
121
  # Returns a new collection that filters alarms by a unit.
122
122
  #
123
- # metric.alarms.with_unit('Percent').each {|alarm| ... }
123
+ # metric.alarms.with_unit('Percent').each {|alarm| ... }
124
124
  #
125
125
  # @param [String] unit
126
126
  # @return [MetricAlarmCollection]
@@ -143,7 +143,7 @@ module AWS
143
143
 
144
144
  alarm = Alarm.new_from(
145
145
  :describe_alarms_for_metric,
146
- details,
146
+ details,
147
147
  details[:alarm_name],
148
148
  :config => config)
149
149
 
@@ -63,17 +63,17 @@ module AWS
63
63
 
64
64
  # Returns a collection filtered by the given dimension:
65
65
  #
66
- # metric = metrics.with_dimension('name', 'value').first
66
+ # metric = metrics.with_dimension('name', 'value').first
67
67
  #
68
68
  # You can chain calls to #with_dimension. Additional dimensions are
69
69
  # added.
70
70
  #
71
- # metrics = metrics.
72
- # with_dimension('d1', 'v1').
73
- # with_dimension('d2', 'v2').
74
- # with_dimension('d3', 'v3')
71
+ # metrics = metrics.
72
+ # with_dimension('d1', 'v1').
73
+ # with_dimension('d2', 'v2').
74
+ # with_dimension('d3', 'v3')
75
75
  #
76
- # metrics.each{|metric|} # filtered by all three dimensions
76
+ # metrics.each{|metric|} # filtered by all three dimensions
77
77
  #
78
78
  # @param [String] name
79
79
  # @param [String] value
@@ -84,24 +84,24 @@ module AWS
84
84
 
85
85
  # Returns a collection filtered by the given dimensions.
86
86
  #
87
- # metrics.with_dimensions([
88
- # { :name => 'd1', :value => 'v1' },
89
- # { :name => 'd2', :value => 'v2' },
90
- # { :name => 'd3', :value => 'v3' },
91
- # ]).each do |metric|
92
- # # ...
93
- # end
87
+ # metrics.with_dimensions([
88
+ # { :name => 'd1', :value => 'v1' },
89
+ # { :name => 'd2', :value => 'v2' },
90
+ # { :name => 'd3', :value => 'v3' },
91
+ # ]).each do |metric|
92
+ # # ...
93
+ # end
94
94
  #
95
95
  # Multiple calls to #with_dimensions will add to previous dimensions.
96
96
  # @param [Array<Hash>] dimensions An array of dimensions. Each dimension
97
- # should be a Hash with a +:name+ and +:value+.
97
+ # should be a Hash with a `:name` and `:value`.
98
98
  # @return [MetricCollection]
99
99
  def with_dimensions *dimensions
100
100
  dimensions = @filters[:dimensions] || []
101
101
  dimensions += dimensions.flatten
102
102
  filter(:dimensions, dimensions)
103
103
  end
104
-
104
+
105
105
  protected
106
106
 
107
107
  def _each_item next_token, options = {}, &block
@@ -113,7 +113,7 @@ module AWS
113
113
  resp.data[:metrics].each do |details|
114
114
 
115
115
  metric = Metric.new_from(
116
- :list_metrics, details,
116
+ :list_metrics, details,
117
117
  details[:namespace],
118
118
  details[:metric_name],
119
119
  details.merge(:config => config))
@@ -18,22 +18,22 @@ module AWS
18
18
  #
19
19
  # This class is an enumerable collection of data points.
20
20
  #
21
- # == Enumerating Statistics
21
+ # ## Enumerating Statistics
22
22
  #
23
- # metric = CloudWatch::Metric.new('my/namepace', 'metric-name')
23
+ # metric = CloudWatch::Metric.new('my/namepace', 'metric-name')
24
24
  #
25
- # stats = metric.statistics(
26
- # :start_time => Time.now - 3600,
27
- # :end_time => Time.now,
28
- # :statistics => ['Average'])
25
+ # stats = metric.statistics(
26
+ # :start_time => Time.now - 3600,
27
+ # :end_time => Time.now,
28
+ # :statistics => ['Average'])
29
29
  #
30
- # stats.label #=> 'some-label'
31
- # stats.each do |datapoint|
32
- # # datapoint is a hash
33
- # end
30
+ # stats.label #=> 'some-label'
31
+ # stats.each do |datapoint|
32
+ # # datapoint is a hash
33
+ # end
34
34
  #
35
35
  # @see Core::Collection
36
- #
36
+ #
37
37
  class MetricStatistics
38
38
 
39
39
  include Core::Collection::Simple
@@ -12,19 +12,21 @@
12
12
  # language governing permissions and limitations under the License.
13
13
 
14
14
  require 'aws/version'
15
- require 'aws/core/autoloader'
16
15
 
17
16
  # AWS is the root module for all of the Amazon Web Services. It is also
18
17
  # where you can configure you access to AWS.
19
18
  #
20
- # = Supported Services
19
+ # # Supported Services
21
20
  #
22
21
  # The currently supported services are:
23
22
  #
24
23
  # * {AWS::AutoScaling}
25
24
  # * {AWS::CloudFormation}
25
+ # * {AWS::CloudFront}
26
26
  # * {AWS::CloudSearch}
27
27
  # * {AWS::CloudWatch}
28
+ # * {AWS::DataPipeline}
29
+ # * {AWS::DirectConnect}
28
30
  # * {AWS::DynamoDB}
29
31
  # * {AWS::EC2}
30
32
  # * {AWS::ElastiCache}
@@ -33,25 +35,27 @@ require 'aws/core/autoloader'
33
35
  # * {AWS::ELB}
34
36
  # * {AWS::EMR}
35
37
  # * {AWS::Glacier}
36
- # * {AWS::OpsWorks}
37
38
  # * {AWS::IAM}
38
- # * {AWS::Redshift}
39
+ # * {AWS::ImportExport}
40
+ # * {AWS::OpsWorks}
39
41
  # * {AWS::RDS}
42
+ # * {AWS::Redshift}
40
43
  # * {AWS::Route53}
41
44
  # * {AWS::S3}
42
- # * {AWS::SNS}
43
- # * {AWS::SQS}
44
- # * {AWS::STS}
45
45
  # * {AWS::SimpleDB}
46
46
  # * {AWS::SimpleEmailService}
47
47
  # * {AWS::SimpleWorkflow}
48
+ # * {AWS::SNS}
49
+ # * {AWS::SQS}
50
+ # * {AWS::StorageGateway}
51
+ # * {AWS::STS}
48
52
  #
49
- # = AWS::Record
53
+ # # AWS::Record
50
54
  #
51
55
  # In addition to the above services, bundled is an ORM based on AWS services
52
56
  # See {AWS::Record} for more information.
53
57
  #
54
- # = Configuration
58
+ # # Configuration
55
59
  #
56
60
  # You call {AWS.config} with a hash of options to configure your
57
61
  # access to the Amazon Web Services.
@@ -61,9 +65,10 @@ require 'aws/core/autoloader'
61
65
  #
62
66
  # AWS.config(
63
67
  # :access_key_id => 'ACCESS_KEY_ID',
64
- # :secret_access_key => 'SECRET_ACCESS_KEY')
68
+ # :secret_access_key => 'SECRET_ACCESS_KEY',
69
+ # :region => 'us-west-2')
65
70
  #
66
- # == Rails
71
+ # ## Rails
67
72
  #
68
73
  # If you are loading AWS inside a Rails web application, it is recommended to
69
74
  # place your configuration inside:
@@ -77,103 +82,127 @@ require 'aws/core/autoloader'
77
82
  #
78
83
  module AWS
79
84
 
80
- register_autoloads(self) do
81
- autoload :Errors, 'errors'
82
- end
85
+ # @private
86
+ SERVICES = {
87
+ 'AutoScaling' => 'auto_scaling',
88
+ 'CloudFormation' => 'cloud_formation',
89
+ 'CloudFront' => 'cloud_front',
90
+ 'CloudSearch' => 'cloud_search',
91
+ 'CloudWatch' => 'cloud_watch',
92
+ 'DynamoDB' => 'dynamo_db',
93
+ 'DataPipeline' => 'data_pipeline',
94
+ 'EC2' => 'ec2',
95
+ 'ElastiCache' => 'elasticache',
96
+ 'ElasticBeanstalk' => 'elastic_beanstalk',
97
+ 'ElasticTranscoder' => 'elastic_transcoder',
98
+ 'ELB' => 'elb',
99
+ 'EMR' => 'emr',
100
+ 'Glacier' => 'glacier',
101
+ 'IAM' => 'iam',
102
+ 'ImportExport' => 'import_export',
103
+ 'OpsWorks' => 'ops_works',
104
+ 'RDS' => 'rds',
105
+ 'Redshift' => 'redshift',
106
+ 'Route53' => 'route_53',
107
+ 'S3' => 's3',
108
+ 'SimpleDB' => 'simple_db',
109
+ 'SimpleEmailService' => 'simple_email_service',
110
+ 'SimpleWorkflow' => 'simple_workflow',
111
+ 'SNS' => 'sns',
112
+ 'SQS' => 'sqs',
113
+ 'StorageGateway' => 'storage_gateway',
114
+ 'STS' => 'sts',
115
+ }
116
+
117
+ # @private
118
+ ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..', '..'))
119
+
120
+ autoload :Errors, 'aws/errors'
83
121
 
84
122
  module Core
85
123
 
86
- AWS.register_autoloads(self) do
87
-
88
- autoload :AsyncHandle, 'async_handle'
89
- autoload :Cacheable, 'cacheable'
90
- autoload :Client, 'client'
91
- autoload :Collection, 'collection'
92
- autoload :Configuration, 'configuration'
93
- autoload :CredentialProviders, 'credential_providers'
94
- autoload :Data, 'data'
95
- autoload :IndifferentHash, 'indifferent_hash'
96
- autoload :Inflection, 'inflection'
97
- autoload :JSONParser, 'json_parser'
98
-
99
- autoload :JSONClient, 'json_client'
100
- autoload :JSONRequestBuilder, 'json_request_builder'
101
- autoload :JSONResponseParser, 'json_response_parser'
102
-
103
- autoload :LazyErrorClasses, 'lazy_error_classes'
104
- autoload :LogFormatter, 'log_formatter'
105
- autoload :MetaUtils, 'meta_utils'
106
- autoload :ManagedFile, 'managed_file'
107
- autoload :Model, 'model'
108
- autoload :Naming, 'naming'
109
- autoload :OptionGrammar, 'option_grammar'
110
- autoload :PageResult, 'page_result'
111
- autoload :Policy, 'policy'
112
-
113
- autoload :QueryClient, 'query_client'
114
- autoload :QueryRequestBuilder, 'query_request_builder'
115
- autoload :QueryResponseParser, 'query_response_parser'
116
-
117
- autoload :Resource, 'resource'
118
- autoload :ResourceCache, 'resource_cache'
119
- autoload :Response, 'response'
120
- autoload :ResponseCache, 'response_cache'
121
-
122
- autoload :RESTClient, 'rest_xml_client'
123
- autoload :RESTJSONClient, 'rest_json_client'
124
- autoload :RESTXMLClient, 'rest_xml_client'
125
- autoload :RESTRequestBuilder, 'rest_request_builder'
126
- autoload :RESTResponseParser, 'rest_response_parser'
127
-
128
- autoload :ServiceInterface, 'service_interface'
129
- autoload :Signer, 'signer'
130
- autoload :UriEscape, 'uri_escape'
124
+ autoload :AsyncHandle, 'aws/core/async_handle'
125
+ autoload :Cacheable, 'aws/core/cacheable'
126
+ autoload :Client, 'aws/core/client'
127
+ autoload :Collection, 'aws/core/collection'
128
+ autoload :Configuration, 'aws/core/configuration'
129
+ autoload :CredentialProviders, 'aws/core/credential_providers'
130
+ autoload :Data, 'aws/core/data'
131
+ autoload :IndifferentHash, 'aws/core/indifferent_hash'
132
+ autoload :Inflection, 'aws/core/inflection'
133
+ autoload :JSONParser, 'aws/core/json_parser'
131
134
 
132
- end
135
+ autoload :JSONClient, 'aws/core/json_client'
136
+ autoload :JSONRequestBuilder, 'aws/core/json_request_builder'
137
+ autoload :JSONResponseParser, 'aws/core/json_response_parser'
138
+
139
+ autoload :LazyErrorClasses, 'aws/core/lazy_error_classes'
140
+ autoload :LogFormatter, 'aws/core/log_formatter'
141
+ autoload :MetaUtils, 'aws/core/meta_utils'
142
+ autoload :ManagedFile, 'aws/core/managed_file'
143
+ autoload :Model, 'aws/core/model'
144
+ autoload :Naming, 'aws/core/naming'
145
+ autoload :OptionGrammar, 'aws/core/option_grammar'
146
+ autoload :PageResult, 'aws/core/page_result'
147
+ autoload :Policy, 'aws/core/policy'
148
+
149
+ autoload :QueryClient, 'aws/core/query_client'
150
+ autoload :QueryRequestBuilder, 'aws/core/query_request_builder'
151
+ autoload :QueryResponseParser, 'aws/core/query_response_parser'
152
+
153
+ autoload :Region, 'aws/core/region'
154
+ autoload :RegionCollection, 'aws/core/region_collection'
155
+
156
+ autoload :Resource, 'aws/core/resource'
157
+ autoload :ResourceCache, 'aws/core/resource_cache'
158
+ autoload :Response, 'aws/core/response'
159
+ autoload :ResponseCache, 'aws/core/response_cache'
160
+
161
+ autoload :RESTClient, 'aws/core/rest_xml_client'
162
+ autoload :RESTJSONClient, 'aws/core/rest_json_client'
163
+ autoload :RESTXMLClient, 'aws/core/rest_xml_client'
164
+ autoload :RESTRequestBuilder, 'aws/core/rest_request_builder'
165
+ autoload :RESTResponseParser, 'aws/core/rest_response_parser'
166
+
167
+ autoload :ServiceInterface, 'aws/core/service_interface'
168
+ autoload :Signer, 'aws/core/signer'
169
+ autoload :UriEscape, 'aws/core/uri_escape'
133
170
 
134
171
  module Options
135
- AWS.register_autoloads(self) do
136
- autoload :JSONSerializer, 'json_serializer'
137
- autoload :XMLSerializer, 'xml_serializer'
138
- autoload :Validator, 'validator'
139
- end
172
+ autoload :JSONSerializer, 'aws/core/options/json_serializer'
173
+ autoload :XMLSerializer, 'aws/core/options/xml_serializer'
174
+ autoload :Validator, 'aws/core/options/validator'
140
175
  end
141
176
 
142
177
  module Signature
143
- AWS.register_autoloads(self) do
144
- autoload :Version2, 'version_2'
145
- autoload :Version3, 'version_3'
146
- autoload :Version3HTTPS, 'version_3_https'
147
- autoload :Version4, 'version_4'
148
- end
178
+ autoload :Version2, 'aws/core/signature/version_2'
179
+ autoload :Version3, 'aws/core/signature/version_3'
180
+ autoload :Version3HTTPS, 'aws/core/signature/version_3_https'
181
+ autoload :Version4, 'aws/core/signature/version_4'
149
182
  end
150
183
 
151
184
  module XML
152
- AWS.register_autoloads(self) do
153
- autoload :Parser, 'parser'
154
- autoload :Grammar, 'grammar'
155
- autoload :Stub, 'stub'
156
- autoload :Frame, 'frame'
157
- autoload :RootFrame, 'root_frame'
158
- autoload :FrameStack, 'frame_stack'
159
- end
185
+
186
+ autoload :Parser, 'aws/core/xml/parser'
187
+ autoload :Grammar, 'aws/core/xml/grammar'
188
+ autoload :Stub, 'aws/core/xml/stub'
189
+ autoload :Frame, 'aws/core/xml/frame'
190
+ autoload :RootFrame, 'aws/core/xml/root_frame'
191
+ autoload :FrameStack, 'aws/core/xml/frame_stack'
160
192
 
161
193
  module SaxHandlers
162
- AWS.register_autoloads(self, 'aws/core/xml/sax_handlers') do
163
- autoload :Nokogiri, 'nokogiri'
164
- autoload :REXML, 'rexml'
165
- end
194
+ autoload :Nokogiri, 'aws/core/xml/sax_handlers/nokogiri'
195
+ autoload :REXML, 'aws/core/xml/sax_handlers/rexml'
166
196
  end
167
197
 
168
198
  end
169
199
 
170
200
  module Http
171
- AWS.register_autoloads(self) do
172
- autoload :Handler, 'handler'
173
- autoload :NetHttpHandler, 'net_http_handler'
174
- autoload :Request, 'request'
175
- autoload :Response, 'response'
176
- end
201
+ autoload :ConnectionPool, 'aws/core/http/connection_pool'
202
+ autoload :Handler, 'aws/core/http/handler'
203
+ autoload :NetHttpHandler, 'aws/core/http/net_http_handler'
204
+ autoload :Request, 'aws/core/http/request'
205
+ autoload :Response, 'aws/core/http/response'
177
206
  end
178
207
 
179
208
  end
@@ -186,25 +215,24 @@ module AWS
186
215
  # The global configuration for AWS. Generally you set your preferred
187
216
  # configuration operations once after loading the aws-sdk gem.
188
217
  #
189
- # AWS.config({
190
- # :access_key_id => 'ACCESS_KEY_ID',
191
- # :secret_access_key => 'SECRET_ACCESS_KEY',
192
- # :simple_db_endpoint => 'sdb.us-west-1.amazonaws.com',
193
- # :max_retries => 2,
194
- # })
218
+ # AWS.config({
219
+ # :access_key_id => 'ACCESS_KEY_ID',
220
+ # :secret_access_key => 'SECRET_ACCESS_KEY',
221
+ # :region => 'us-west-2',
222
+ # })
195
223
  #
196
224
  # When using AWS classes they will always default to use configuration
197
225
  # values defined in {AWS.config}.
198
226
  #
199
- # AWS.config(:max_retries => 2)
227
+ # AWS.config(:max_retries => 2)
200
228
  #
201
- # sqs = AWS::SQS.new
202
- # sqs.config.max_retries #=> 2
229
+ # sqs = AWS::SQS.new
230
+ # sqs.config.max_retries #=> 2
203
231
  #
204
232
  # If you want to change a configuration value for a single instance you
205
233
  # pass the new configuration value to that object's initializer:
206
234
  #
207
- # AWS::SQS.new(:max_retries => 0)
235
+ # AWS::SQS.new(:max_retries => 0)
208
236
  #
209
237
  # @note Changing the global configuration does not affect objects
210
238
  # that have already been constructed.
@@ -220,50 +248,36 @@ module AWS
220
248
  # @option options [String,nil] :session_token AWS secret token
221
249
  # credential.
222
250
  #
223
- # @option options [String] :auto_scaling_endpoint ('autoscaling.us-east-1.amazonaws.com')
224
- # The service endpoint for Auto Scaling.
225
- #
226
- # @option options [String] :cloud_formation_endpoint ('cloudformation.us-east-1.amazonaws.com')
227
- # The service endpoint for AWS CloudFormation.
228
- #
229
- # @option options [String] :cloud_front_endpoint ('cloudfront.amazonaws.com')
230
- # The service endpoint for Amazon CloudFront.
231
- #
232
- # @option options [String] :cloud_search ('cloudsearch.us-east-1.amazonaws.com')
233
- # The service endpoint for Amazon CloudSearch.
251
+ # @option options [String] :region ('us-east-1') The default AWS region.
234
252
  #
235
- # @option options [String] :cloud_watch_endpoint ('monitoring.us-east-1.amazonaws.com')
236
- # The service endpoint for Amazon CloudWatch.
237
- #
238
- # @option options [Boolean] :dynamo_db_big_decimals (true) When +true+,
253
+ # @option options [Boolean] :dynamo_db_big_decimals (true) When `true`,
239
254
  # {DynamoDB} will convert number values returned by {DynamoDB::Client}
240
- # from strings to BigDecimal objects. If you set this to +false+,
255
+ # from strings to BigDecimal objects. If you set this to `false`,
241
256
  # they will be converted from strings into floats (with a potential
242
257
  # loss of precision).
243
258
  #
244
- # @option options [String] :dynamo_db_endpoint ('dynamodb.amazonaws.com')
245
- # The service endpoint for Amazon DynamoDB.
246
- #
247
259
  # @option options [Boolean] :dynamo_db_retry_throughput_errors (true) When
248
260
  # true, AWS::DynamoDB::Errors::ProvisionedThroughputExceededException
249
261
  # errors will be retried.
250
262
  #
251
- # @option options [String] :ec2_endpoint ('ec2.amazonaws.com') The
252
- # service endpoint for Amazon EC2.
253
- #
254
- # @option options [String] :elasticache_endpoint ('elasticache.us-east-1.amazonaws.com')
255
- #
256
- # @option options [String] :elastic_beanstalk_endpoint ('elasticbeanstalk.us-east-1.amazonaws.com')
257
- # The service endpoint for AWS Elastic Beanstalk.
258
- #
259
- # @option options [String] :elastic_transcoder_endpoint ('elastictranscoder.us-east-1.amazonaws.com')
260
- # The service endpoint for Elastic Transcoder.
261
- #
262
- # @option options [String] :elb_endpoint ('elasticloadbalancing.us-east-1.amazonaws.com')
263
- # The service endpoint for Elastic Load Balancing.
264
- #
265
- # @option options [String] :glacier_endpoint ('glacier.us-east-1.amazonaws.com')
266
- # The service endpoint for Amazon Glacier.
263
+ # @option options [Float] :http_continue_timeout (1) The number of
264
+ # seconds to wait for a "100-continue" response before sending the request
265
+ # payload. **This option has no effect unless the `:http_continue_threshold`
266
+ # is configured to a positive integer and the payload exeedes the
267
+ # threshold.** NOTE: currently there is a bug in Net::HTTP.
268
+ # You must call `AWS.patch_net_http_100_continue!` for this feature to work.
269
+ # Not supported in Ruby < 1.9.
270
+ #
271
+ # @option options [Integer,false] :http_continue_threshold (false) If a request
272
+ # body exceedes the `:http_continue_threshold` size (in bytes), then
273
+ # an "Expect" header will be added to the request with the value of
274
+ # "100-continue". This will cause the SDK to wait up to
275
+ # `:http_continue_timeout` seconds for a 100 Contiue HTTP response
276
+ # before sending the request payload. By default, this feature
277
+ # is disbled. Set this option to a positive number of bytes
278
+ # to enable 100 continues. NOTE: currently there is a bug in Net::HTTP.
279
+ # You must call `AWS.patch_net_http_100_continue!` for this feature to work.
280
+ # Not supported in Ruby < 1.9.
267
281
  #
268
282
  # @option options [Object] :http_handler (AWS::Core::Http::NetHttpHandler)
269
283
  # The http handler that sends requests to AWS.
@@ -273,55 +287,49 @@ module AWS
273
287
  # longer be used.
274
288
  #
275
289
  # @option options [Integer] :http_open_timeout (15) The number of seconds
276
- # before the +:http_handler+ should timeout while trying to open a new
290
+ # before the `:http_handler` should timeout while trying to open a new
277
291
  # HTTP session.
278
292
  #
279
293
  # @option options [Integer] :http_read_timeout (60) The number of seconds
280
- # before the +:http_handler+ should timeout while waiting for a HTTP
294
+ # before the `:http_handler` should timeout while waiting for a HTTP
281
295
  # response.
282
296
  #
283
- # @option options [Boolean] :http_wire_trace (false) When +true+, the
284
- # http handler will log all wire traces to the +:logger+. If a
285
- # +:logger+ is not configured, then wire traces will be sent to
297
+ # @option options [Boolean] :http_wire_trace (false) When `true`, the
298
+ # http handler will log all wire traces to the `:logger`. If a
299
+ # `:logger` is not configured, then wire traces will be sent to
286
300
  # standard out.
287
301
  #
288
- # @option options [String] :iam_endpoint ('iam.amazonaws.com') The
289
- # service endpoint for AWS Identity Access Management (IAM).
290
- #
291
- # @option options [String] :import_export_endpoint ('importexport.amazonaws.com')
292
- # The service endpoint for AWS Import/Export.
293
- #
294
302
  # @option options [Logger,nil] :logger (nil) A logger to send
295
303
  # log messages to. Here is an example that logs to standard out.
296
304
  #
297
- # require 'logger'
298
- # AWS.config(:logger => Logger.new($stdout))
305
+ # require 'logger'
306
+ # AWS.config(:logger => Logger.new($stdout))
299
307
  #
300
308
  # @option options [Symbol] :log_level (:info) The level log messages are
301
- # sent to the logger with (e.g. +:notice+, +:info+, +:warn+,
302
- # +:debug+, etc).
309
+ # sent to the logger with (e.g. `:notice`, `:info`, `:warn`,
310
+ # `:debug`, etc).
303
311
  #
304
312
  # @option options [Object] :log_formatter The log formatter is responsible
305
313
  # for building log messages from responses. You can quickly change
306
314
  # log formats by providing a pre-configured log formatter.
307
315
  #
308
- # AWS.config(:log_formatter => AWS::Core::LogFormatter.colored)
316
+ # AWS.config(:log_formatter => AWS::Core::LogFormatter.colored)
309
317
  #
310
318
  # Here is a list of pre-configured log formatters:
311
319
  #
312
- # * +AWS::Core::LogFormatter.default+
313
- # * +AWS::Core::LogFormatter.short+
314
- # * +AWS::Core::LogFormatter.debug+
315
- # * +AWS::Core::LogFormatter.colored+
320
+ # * `AWS::Core::LogFormatter.default`
321
+ # * `AWS::Core::LogFormatter.short`
322
+ # * `AWS::Core::LogFormatter.debug`
323
+ # * `AWS::Core::LogFormatter.colored`
316
324
  #
317
325
  # You can also create an instance of AWS::Core::LogFormatter
318
326
  # with a custom log message pattern. See {Core::LogFormatter} for
319
327
  # a complete list of pattern substitutions.
320
328
  #
321
- # pattern = "[AWS :operation :duration] :error_message"
322
- # AWS.config(:log_formatter => AWS::Core::LogFormatter.new(pattern))
329
+ # pattern = "[AWS :operation :duration] :error_message"
330
+ # AWS.config(:log_formatter => AWS::Core::LogFormatter.new(pattern))
323
331
  #
324
- # Lastly you can pass any object that responds to +#format+ accepting
332
+ # Lastly you can pass any object that responds to `#format` accepting
325
333
  # and instance of {Core::Response} and returns a string.
326
334
  #
327
335
  # @option options [Integer] :max_retries (3) The maximum number of times
@@ -333,25 +341,10 @@ module AWS
333
341
  # to send service requests through. You can pass a URI object or a
334
342
  # URI string:
335
343
  #
336
- # AWS.config(:proxy_uri => 'https://user:password@my.proxy:443/path?query')
337
- #
338
- # @option options [String] :ops_works_endpoint ('opsworks.us-east-1.amazonaws.com')
339
- # The service endpoint for AWS OpsWorks.
340
- #
341
- # @option options [String] :redshift_endpoint ('redshift.us-east-1.amazonaws.com')
342
- # The service endpoint for Amazon Redshift.
343
- #
344
- # @option options [String] :rds_endpoint ('rds.us-east-1.amazonaws.com')
345
- # The service endpoint for Amazon Relational Database Service (RDS).
346
- #
347
- # @option options [String] :route_53_endpoint ('route53.amazonaws.com')
348
- # The service endpoint for Amazon Route 53.
349
- #
350
- # @option options [String] :s3_endpoint ('s3.amazonaws.com') The
351
- # service endpoint for Amazon S3.
344
+ # AWS.config(:proxy_uri => 'https://user:password@my.proxy:443/path?query')
352
345
  #
353
346
  # @option options [Boolean] :s3_force_path_style (false) When
354
- # +true+, requests will always use path style. This can be useful
347
+ # `true`, requests will always use path style. This can be useful
355
348
  # for testing environments.
356
349
  #
357
350
  # @option options [Integer] :s3_multipart_max_parts (10000) The maximum
@@ -359,9 +352,9 @@ module AWS
359
352
  #
360
353
  # @option options [Integer] :s3_multipart_threshold (16777216) When
361
354
  # uploading data to S3, if the number of bytes to send exceeds
362
- # +:s3_multipart_threshold+ then a multi part session is automatically
355
+ # `:s3_multipart_threshold` then a multi part session is automatically
363
356
  # started and the data is sent up in chunks. The size of each part
364
- # is specified by +:s3_multipart_min_part_size+. Defaults to
357
+ # is specified by `:s3_multipart_min_part_size`. Defaults to
365
358
  # 16777216 (16MB).
366
359
  #
367
360
  # @option options [Integer] :s3_multipart_min_part_size (5242880) The
@@ -370,18 +363,18 @@ module AWS
370
363
  #
371
364
  # @option options [Symbol] :s3_server_side_encryption (nil) The
372
365
  # algorithm to use when encrypting object data on the server
373
- # side. The only valid value is +:aes256+, which specifies that
366
+ # side. The only valid value is `:aes256`, which specifies that
374
367
  # the object should be stored using the AES encryption algorithm
375
- # with 256 bit keys. Defaults to +nil+, meaning server side
368
+ # with 256 bit keys. Defaults to `nil`, meaning server side
376
369
  # encryption is not used unless specified on each individual
377
370
  # call to upload an object. This option controls the default
378
371
  # behavior for the following methods:
379
372
  #
380
- # * {S3::S3Object#write}
381
- # * {S3::S3Object#multipart_upload}
382
- # * {S3::S3Object#copy_from} and {S3::S3Object#copy_to}
383
- # * {S3::S3Object#presigned_post}
384
- # * {S3::Bucket#presigned_post}
373
+ # * {S3::S3Object#write}
374
+ # * {S3::S3Object#multipart_upload}
375
+ # * {S3::S3Object#copy_from} and {S3::S3Object#copy_to}
376
+ # * {S3::S3Object#presigned_post}
377
+ # * {S3::Bucket#presigned_post}
385
378
  #
386
379
  # @option options [OpenSSL::PKey::RSA, String] :s3_encryption_key (nil)
387
380
  # If this is set, AWS::S3::S3Object #read and #write methods will always
@@ -390,23 +383,14 @@ module AWS
390
383
  # means that client-side encryption will not be used.
391
384
  #
392
385
  # @option options [Symbol] :s3_encryption_materials_location (:metadata)
393
- # When set to +:instruction_file+, AWS::S3::S3Object will store
386
+ # When set to `:instruction_file`, AWS::S3::S3Object will store
394
387
  # encryption materials in a separate object, instead of the object
395
388
  # metadata.
396
389
  #
397
- # @option options [String] :simple_db_endpoint ('sdb.amazonaws.com')
398
- # The service endpoint for Amazon SimpleDB.
399
- #
400
390
  # @option options [Boolean] :simple_db_consistent_reads (false) Determines
401
391
  # if all SimpleDB read requests should be done consistently.
402
392
  # Consistent reads are slower, but reflect all changes to SDB.
403
393
  #
404
- # @option options [String] :simple_email_service_endpoint ('email.us-east-1.amazonaws.com')
405
- # The service endpoint for Amazon Simple Email Service.
406
- #
407
- # @option options [String] :simple_workflow_endpoint ('swf.us-east-1.amazonaws.com')
408
- # The service endpoint for Amazon Simple Workflow Service.
409
- #
410
394
  # @option options [CredentialProviders::Provider] :credential_provider (AWS::Core::CredentialProviders::DefaultProvider.new)
411
395
  # Returns the credential provider. The default credential provider
412
396
  # attempts to check for statically assigned credentials, ENV credentials
@@ -415,7 +399,7 @@ module AWS
415
399
  # @option options [String] :ssl_ca_file The path to a CA cert bundle in
416
400
  # PEM format.
417
401
  #
418
- # If +:ssl_verify_peer+ is +true+ (the default) this bundle will be
402
+ # If `:ssl_verify_peer` is `true` (the default) this bundle will be
419
403
  # used to validate the server certificate in each HTTPS request.
420
404
  # The AWS SDK for Ruby ships with a CA cert bundle, which is the
421
405
  # default value for this option.
@@ -423,31 +407,19 @@ module AWS
423
407
  # @option options [String] :ssl_ca_path (nil)
424
408
  # The path the a CA cert directory.
425
409
  #
426
- # @option options [Boolean] :ssl_verify_peer (true) When +true+
410
+ # @option options [Boolean] :ssl_verify_peer (true) When `true`
427
411
  # the HTTP handler validate server certificates for HTTPS requests.
428
412
  #
429
413
  # This option should only be disabled for diagnostic purposes;
430
- # leaving this option set to +false+ exposes your application to
414
+ # leaving this option set to `false` exposes your application to
431
415
  # man-in-the-middle attacks and can pose a serious security
432
416
  # risk.
433
417
  #
434
- # @option options [Boolean] :stub_requests (false) When +true+ requests
418
+ # @option options [Boolean] :stub_requests (false) When `true` requests
435
419
  # are not sent to AWS, instead empty responses are generated and
436
420
  # returned to each service request.
437
421
  #
438
- # @option options [String] :sns_endpoint ('sns.us-east-1.amazonaws.com') The
439
- # service endpoint for Amazon SNS.
440
- #
441
- # @option options [String] :sqs_endpoint ('sqs.us-east-1.amazonaws.com') The
442
- # service endpoint for Amazon SQS.
443
- #
444
- # @option options [String] :storage_gateway_endpoint ('storagegateway.us-east-1.amazonaws.com')
445
- # The service endpoint for AWS Storage Gateway.
446
- #
447
- # @option options [String] :sts_endpoint ('sts.amazonaws.com') The
448
- # service endpoint for AWS Security Token Service.
449
- #
450
- # @option options [Boolean] :use_ssl (true) When +true+, all requests
422
+ # @option options [Boolean] :use_ssl (true) When `true`, all requests
451
423
  # to AWS are sent using HTTPS instead vanilla HTTP.
452
424
  #
453
425
  # @option options [String] :user_agent_prefix (nil) A string prefix to
@@ -462,6 +434,31 @@ module AWS
462
434
  @@config
463
435
  end
464
436
 
437
+ # Returns a collection that represents public (non-gov-cloud) AWS
438
+ # regions. You can use this collection to get a specific region by name
439
+ # or to enumerate all regions.
440
+ #
441
+ # When enumerating regions, a single HTTP request is made to get a current
442
+ # list of regions (this is cached). When getting a region by name
443
+ # no requests are made.
444
+ #
445
+ # @example Getting a region by name
446
+ #
447
+ # region = AWS.regions['us-west-1']
448
+ # region.dynamo_db.tables.map(&:name)
449
+ #
450
+ # @example Enumerating all regions
451
+ #
452
+ # AWS.regions.each do |region|
453
+ # puts "EC2 Instances in #{region.name}:"
454
+ # puts region.ec2.instances.map(&:id)
455
+ # end
456
+ #
457
+ # @return [Core::RegionCollection]
458
+ def regions
459
+ Core::RegionCollection.new
460
+ end
461
+
465
462
  # @note Memoization is currently only supported for the EC2 APIs;
466
463
  # other APIs are unaffected by the status of memoization. To
467
464
  # protect your code from future changes in memoization support,
@@ -510,18 +507,18 @@ module AWS
510
507
  # For example, consider the following code to get the most
511
508
  # recently launched EC2 instance:
512
509
  #
513
- # latest = ec2.instances.sort_by(&:launch_time).last
510
+ # latest = ec2.instances.sort_by(&:launch_time).last
514
511
  #
515
512
  # The above code would make N+1 requests (where N is the number of
516
513
  # instances in the account); iterating the collection of instances
517
- # is one request, and +Enumerable#sort_by+ calls
514
+ # is one request, and `Enumerable#sort_by` calls
518
515
  # {AWS::EC2::Instance#launch_time} for each instance, causing
519
516
  # another request per instance. We can rewrite the code as
520
517
  # follows to make only one request:
521
518
  #
522
- # latest = AWS.memoize do
523
- # ec2.instances.sort_by(&:launch_time).last
524
- # end
519
+ # latest = AWS.memoize do
520
+ # ec2.instances.sort_by(&:launch_time).last
521
+ # end
525
522
  #
526
523
  # Iterating the collection still causes a request, but each
527
524
  # subsequent call to {AWS::EC2::Instance#launch_time} uses the
@@ -534,17 +531,17 @@ module AWS
534
531
  # relatively small numbers of requests. The cached responses are
535
532
  # used in two ways while memoization is enabled:
536
533
  #
537
- # 1. Before making a request, the SDK checks the cache for a
538
- # response to a request with the same signature (credentials,
539
- # service endpoint, operation name, and parameters). If such a
540
- # response is found, it is used instead of making a new
541
- # request.
534
+ # * Before making a request, the SDK checks the cache for a
535
+ # response to a request with the same signature (credentials,
536
+ # service endpoint, operation name, and parameters). If such a
537
+ # response is found, it is used instead of making a new
538
+ # request.
542
539
  #
543
- # 2. Before retrieving data for an attribute of a resource
544
- # (e.g. {AWS::EC2::Instance#launch_time}), the SDK attempts to
545
- # find a cached response that contains the requested data. If
546
- # such a response is found, the cached data is returned instead
547
- # of making a new request.
540
+ # * Before retrieving data for an attribute of a resource
541
+ # (e.g. {AWS::EC2::Instance#launch_time}), the SDK attempts to
542
+ # find a cached response that contains the requested data. If
543
+ # such a response is found, the cached data is returned instead
544
+ # of making a new request.
548
545
  #
549
546
  # When memoization is disabled, all previously cached responses
550
547
  # are discarded.
@@ -583,5 +580,26 @@ module AWS
583
580
  nil
584
581
  end
585
582
 
583
+ # Eagerly loads all AWS classes/modules registered with autoload.
584
+ # @return [nil]
585
+ def eager_autoload! klass_or_module = AWS
586
+ klass_or_module.constants.each do |const_name|
587
+ if path = klass_or_module.autoload?(const_name)
588
+ require(path)
589
+ if const = klass_or_module.const_get(const_name) and const.is_a?(Module)
590
+ eager_autoload!(const)
591
+ end
592
+ end
593
+ end
594
+ end
595
+
596
+ # Patches Net::HTTP, fixing a bug in how it handles non 100-continue
597
+ # responses while waiting for a 100-continue.
598
+ def patch_net_http_100_continue!
599
+ require 'aws/core/http/patch'
600
+ AWS::Core::Http.patch_net_http_100_continue!
601
+ nil
602
+ end
603
+
586
604
  end
587
605
  end