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
@@ -0,0 +1,102 @@
1
+ # Copyright 2011-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License"). You
4
+ # may not use this file except in compliance with the License. A copy of
5
+ # the License is located at
6
+ #
7
+ # http://aws.amazon.com/apache2.0/
8
+ #
9
+ # or in the "license" file accompanying this file. This file is
10
+ # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
11
+ # ANY KIND, either express or implied. See the License for the specific
12
+ # language governing permissions and limitations under the License.
13
+
14
+ require 'net/http'
15
+ require 'net/https'
16
+ require 'thread'
17
+ require 'logger'
18
+
19
+ module AWS
20
+ module Core
21
+ module Http
22
+
23
+ def self.patch_net_http_100_continue!
24
+ if RUBY_VERSION >= '2.0'
25
+ Net::HTTP.send(:include, Expect100Continue20)
26
+ elsif RUBY_VERSION >= '1.9.3'
27
+ Net::HTTP.send(:include, Expect100Continue19)
28
+ else
29
+ msg = "Expect 100-continue not supported in Ruby < 1.9.3"
30
+ raise NotImplementedError, msg
31
+ end
32
+ Net::HTTP.send(:alias_method, :old_transport_request, :transport_request)
33
+ Net::HTTP.send(:alias_method, :transport_request, :new_transport_request)
34
+ end
35
+
36
+ # @private
37
+ module Expect100Continue19
38
+ def new_transport_request(req)
39
+ begin_transport req
40
+ res = catch(:response) {
41
+ req.exec @socket, @curr_http_version, edit_path(req.path)
42
+ begin
43
+ res = Net::HTTPResponse.read_new(@socket)
44
+ end while res.kind_of?(Net::HTTPContinue)
45
+ res
46
+ }
47
+ res.reading_body(@socket, req.response_body_permitted?) {
48
+ yield res if block_given?
49
+ }
50
+ end_transport req, res
51
+ res
52
+ rescue => exception
53
+ D "Conn close because of error #{exception}"
54
+ @socket.close if @socket and not @socket.closed?
55
+ raise exception
56
+ end
57
+ end
58
+
59
+ # @private
60
+ module Expect100Continue20
61
+ def new_transport_request(req)
62
+ count = 0
63
+ begin
64
+ begin_transport req
65
+ res = catch(:response) {
66
+ req.exec @socket, @curr_http_version, edit_path(req.path)
67
+ begin
68
+ res = Net::HTTPResponse.read_new(@socket)
69
+ res.decode_content = req.decode_content
70
+ end while res.kind_of?(Net::HTTPContinue)
71
+
72
+ res.uri = req.uri
73
+
74
+ res
75
+ }
76
+ res.reading_body(@socket, req.response_body_permitted?) {
77
+ yield res if block_given?
78
+ }
79
+ rescue Net::OpenTimeout
80
+ raise
81
+ rescue Net::ReadTimeout, IOError, EOFError,
82
+ Errno::ECONNRESET, Errno::ECONNABORTED, Errno::EPIPE,
83
+ # avoid a dependency on OpenSSL
84
+ defined?(OpenSSL::SSL) ? OpenSSL::SSL::SSLError : IOError,
85
+ Timeout::Error => exception
86
+ if count == 0 && IDEMPOTENT_METHODS_.include?(req.method)
87
+ count += 1
88
+ @socket.close if @socket and not @socket.closed?
89
+ D "Conn close because of error #{exception}, and retry"
90
+ retry
91
+ end
92
+ D "Conn close because of error #{exception}"
93
+ @socket.close if @socket and not @socket.closed?
94
+ raise
95
+ end
96
+
97
+ end
98
+ end
99
+
100
+ end
101
+ end
102
+ end
@@ -74,36 +74,30 @@ module AWS
74
74
  # simple_email_service and ses do not match).
75
75
  attr_accessor :service_ruby_name
76
76
 
77
- # @return [nil, URI] The URI to the proxy server requests are
78
- # sent through if configured. Returns nil if there is no proxy.
79
- attr_accessor :proxy_uri
80
-
81
77
  # @return [Integer] The number of seconds the service has to respond
82
78
  # before a timeout error is raised on the request. Defaults to
83
79
  # 60 seconds.
84
80
  attr_accessor :read_timeout
85
81
 
86
- # @return [Boolean] Returns +true+ if this request should be made
82
+ # @return [Boolean] Returns `true` if this request should be made
87
83
  # with SSL enabled.
88
84
  attr_accessor :use_ssl
89
85
 
90
86
  alias_method :use_ssl?, :use_ssl
91
87
 
92
- # @return [Boolean] Returns +true+ if the client should verify
93
- # the peer certificate.
94
- attr_accessor :ssl_verify_peer
95
-
96
- alias_method :ssl_verify_peer?, :ssl_verify_peer
97
-
98
- # @return [String] Returns the path to a bundle of CA certs in PEM
99
- # format; the HTTP handler should use this to verify all HTTPS
100
- # requests if {#ssl_verify_peer?} is true.
101
- attr_accessor :ssl_ca_file
88
+ # @return [Float] timeout The number of seconds to wait for a
89
+ # 100-continue response before sending the HTTP request body.
90
+ # @private
91
+ attr_accessor :continue_timeout
102
92
 
103
- # @return [String] Returns the path to a directory of CA certs.
104
- # The HTTP handler should use these to verify all HTTPS
105
- # requests if {#ssl_verify_peer?} is true.
106
- attr_accessor :ssl_ca_path
93
+ def endpoint
94
+ scheme = use_ssl ? 'https' : 'http'
95
+ port = case scheme
96
+ when 'https' then self.port == 443 ? '' : ":#{self.port}"
97
+ when 'http' then self.port == 80 ? '' : ":#{self.port}"
98
+ end
99
+ "#{scheme}://#{host}#{port}"
100
+ end
107
101
 
108
102
  # @return [Integer] Returns the port the request will be made over.
109
103
  # Defaults to 443 for SSL requests and 80 for non-SSL requests.
@@ -36,13 +36,13 @@ module AWS
36
36
  # @return [Exception,nil]
37
37
  attr_accessor :network_error
38
38
 
39
- # @return [Boolean] Returns +true+ if the request could not be made
39
+ # @return [Boolean] Returns `true` if the request could not be made
40
40
  # because of a networking issue (including timeouts).
41
41
  def network_error?
42
42
  @network_error ? true : false
43
43
  end
44
44
 
45
- # The #network_error attribute was previously #timeout, aliasing
45
+ # The #network_error attribute was previously #timeout, aliasing
46
46
  # for backwards compatability
47
47
  alias_method :timeout=, :network_error=
48
48
 
@@ -16,7 +16,7 @@ require 'thread'
16
16
  module AWS
17
17
  module Core
18
18
 
19
- # Provides lazy creation of error classes via {#const_missing}.
19
+ # Provides lazy creation of error classes via {#const_missing}.
20
20
  #
21
21
  # Extend this module provides 3 benefits to another module:
22
22
  #
@@ -26,24 +26,24 @@ module AWS
26
26
  #
27
27
  # Here is an example of how it works:
28
28
  #
29
- # Class Foo
30
- # module Errors
31
- # extend AWS::Core::LazyErrorClasses
32
- # end
33
- # end
29
+ # Class Foo
30
+ # module Errors
31
+ # extend AWS::Core::LazyErrorClasses
32
+ # end
33
+ # end
34
34
  #
35
- # Foo::Errors.error_class('NoSuchKey')
36
- # #=> Foo::Errors::NoSuckKey
35
+ # Foo::Errors.error_class('NoSuchKey')
36
+ # #=> Foo::Errors::NoSuckKey
37
37
  #
38
- # Foo::Errors.error_class('Nested.Error.Klasses')
39
- # #=> Foo::Errors::Nested::Error::Klasses
38
+ # Foo::Errors.error_class('Nested.Error.Klasses')
39
+ # #=> Foo::Errors::Nested::Error::Klasses
40
40
  #
41
41
  # The errors returned from {#error_class} are subclasses
42
42
  # of {AWS::Errors::Base}.
43
43
  #
44
44
  module LazyErrorClasses
45
45
 
46
- # This grammar parses the defualt AWS XML error format
46
+ # This grammar parses the defualt AWS XML error format
47
47
  BASE_ERROR_GRAMMAR = XML::Grammar.customize do
48
48
  element("Error") do
49
49
  ignore
@@ -56,12 +56,12 @@ module AWS
56
56
  unless base.const_defined?(:GRAMMAR)
57
57
  base.const_set(:GRAMMAR, BASE_ERROR_GRAMMAR)
58
58
  end
59
-
59
+
60
60
  mutex = Mutex.new
61
61
  MetaUtils.extend_method(base, :const_missing_mutex) { mutex }
62
62
 
63
63
  end
64
-
64
+
65
65
  # Defines a new error class.
66
66
  # @param [String,Symbol] constant
67
67
  # @return [nil]
@@ -73,9 +73,9 @@ module AWS
73
73
 
74
74
  # Converts the error code into an error class constant.
75
75
  #
76
- # AWS::EC2::Errors.error_class('Non.Existent.Error')
77
- # #=> AWS::EC2::Errors::Non::Existent::Error
78
- #
76
+ # AWS::EC2::Errors.error_class('Non.Existent.Error')
77
+ # #=> AWS::EC2::Errors::Non::Existent::Error
78
+ #
79
79
  # @param [String] code An AWS error code.
80
80
  #
81
81
  # @return [Class] Returns the error class defiend by the error code.
@@ -83,7 +83,7 @@ module AWS
83
83
  def error_class code
84
84
  module_eval("#{self}::#{code.gsub('.Range','Range').gsub(".","::")}")
85
85
  end
86
-
86
+
87
87
  end
88
88
 
89
89
  end
@@ -16,32 +16,32 @@ require 'pathname'
16
16
  module AWS
17
17
  module Core
18
18
 
19
- # = Log Formatters
19
+ # # Log Formatters
20
20
  #
21
21
  # Log formatters receive a {AWS::Core::Response} object and return
22
22
  # a log message. When you construct a {LogFormatter}, you provide
23
23
  # a pattern string with substitutions.
24
24
  #
25
- # pattern = '[REQUEST :http_status_code] :service :operation :duration'
26
- # formatter = AWS::Core::LogFormatter.new(pattern)
27
- # formatter.format(response)
28
- # #=> '[AWS 200] EC2 get_bucket 0.0352'
25
+ # pattern = '[REQUEST :http_status_code] :service :operation :duration'
26
+ # formatter = AWS::Core::LogFormatter.new(pattern)
27
+ # formatter.format(response)
28
+ # #=> '[AWS 200] EC2 get_bucket 0.0352'
29
29
  #
30
- # = AWS Configuration
30
+ # # AWS Configuration
31
31
  #
32
32
  # AWS.config provides a {LogFormatter.default} log formatter. You can
33
33
  # repace this formatter by building your own and then passing it
34
34
  # to {AWS.config}.
35
35
  #
36
- # pattern = '[REQUEST :http_status_code] :service :operation :duration'
37
- # AWS.config(:log_formatter => AWS::Core::LogFormatter.new(pattern)
36
+ # pattern = '[REQUEST :http_status_code] :service :operation :duration'
37
+ # AWS.config(:log_formatter => AWS::Core::LogFormatter.new(pattern)
38
38
  #
39
- # == Canned Formatters
39
+ # ## Canned Formatters
40
40
  #
41
41
  # Instead of providing your own pattern, you can choose a canned log
42
42
  # formatter.
43
43
  #
44
- # AWS.config(:log_formatter => AWS::Core::LogFormatter.colored)
44
+ # AWS.config(:log_formatter => AWS::Core::LogFormatter.colored)
45
45
  #
46
46
  # Here is the list of canned formatters.
47
47
  #
@@ -50,105 +50,71 @@ module AWS
50
50
  # * {LogFormatter.debug}
51
51
  # * {LogFormatter.colored}
52
52
  #
53
- # = Pattern Substitutions
53
+ # # Pattern Substitutions
54
54
  #
55
55
  # You can put any of these placeholders into you pattern.
56
56
  #
57
- # [+:service+]
58
- # The AWS service name (e.g. 'S3', 'EC2', 'SimpleDB', etc)
59
- #
60
- # [+:region+]
61
- # The AWS region name (e.g. 'us-east-1', 'us-west-1', etc)
62
- #
63
- # [+:operation+]
64
- # The name of the client request method. This maps to the name of
65
- # the serivce API operation (e.g. :describe_instances).
66
- #
67
- # [+:options+]
68
- # The hash of options passed to the client request method.
69
- # Long strings are truncated/summarized if they excede the log
70
- # formatters {#max_string_size}. Other objects are inspected.
71
- #
72
- # [+:retry_count+]
73
- # The number of times a client request was retried.
74
- # Throttlings and service errors trigger the automatic retry logic.
75
- # This value indicates how many extra attempts were made before
76
- # getting a successful response or giving up.
77
- #
78
- # [+:duration+]
79
- # The time it took to generate a response, expressed
80
- # in decimal seconds. This time includes everything from
81
- # calling the client request method, until that method returns
82
- # a value (event retries and retry delays).
83
- #
84
- # [+:error_class+]
85
- # The class name of the error returned by the
86
- # service. If no error was returned, this will be replcaed by
87
- # an empty string.
88
- #
89
- # [+:error_message+]
90
- # The message of the error returned. If
91
- # no error was returned by the service, this will be an empty
92
- # string.
93
- #
94
- # [+:http_request_method+]
95
- # The HTTP request verb (e.g. 'POST', 'PUT', 'GET', etc).
96
- #
97
- # [+:http_request_protocol+]
98
- # This is replaced by 'http' or 'https'.
99
- #
100
- # [+:http_request_host+]
101
- # The host name of the http request endpoint (e.g. 's3.amazon.com').
102
- #
103
- # [+:http_request_port+]
104
- # The port number (e.g. '443' or '80').
105
- #
106
- # [+:http_request_uri+]
107
- # The http request uri folling the host (e.g.
108
- # '/bucket_name/objects/key?versions').
109
- #
110
- # [+:http_request_body+]
111
- # The http request payload.
112
- #
113
- # [+:http_request_headers+]
114
- # The http request headers, inspected.
115
- #
116
- # [+:http_request_proxy_uri+]
117
- # The proxy uri used, or an empty string.
118
- #
119
- # [+:http_response_status+]
120
- # The http response status code (e.g. '200', '404', '500', etc).
121
- #
122
- # [+:http_response_headers+]
123
- # The http response headers, inspected.
124
- #
125
- # [+:http_response_body+]
126
- # The http response body contents.
57
+ # * `:service` - The AWS service name (e.g. 'S3', 'EC2', 'SimpleDB', etc)
58
+ # * `:region` - The AWS region name (e.g. 'us-west-1', 'us-west-2', etc)
59
+ # * `:operation` - The name of the client request method. This maps to
60
+ # the name of the serivce API operation (e.g. :describe_instances).
61
+ # * `:options` - The hash of options passed to the client request method.
62
+ # Long strings are truncated/summarized if they excede the log
63
+ # formatters {#max_string_size}. Other objects are inspected.
64
+ # * `:retry_count` - The number of times a client request was retried.
65
+ # Throttlings and service errors trigger the automatic retry logic.
66
+ # This value indicates how many extra attempts were made before
67
+ # getting a successful response or giving up.
68
+ # * `:duration` - The time it took to generate a response, expressed
69
+ # in decimal seconds. This time includes everything from
70
+ # calling the client request method, until that method returns
71
+ # a value (event retries and retry delays).
72
+ # * `:error_class` - The class name of the error returned by the
73
+ # service. If no error was returned, this will be replcaed by
74
+ # an empty string.
75
+ # * `:error_message` - The message of the error returned. If
76
+ # no error was returned by the service, this will be an empty
77
+ # string.
78
+ # * `:http_request_method` - The HTTP request verb (e.g. 'POST',
79
+ # 'PUT', 'GET', etc).
80
+ # * `:http_request_protocol` - This is replaced by 'http' or 'https'.
81
+ # * `:http_request_host` - The host name of the http request
82
+ # endpoint (e.g. 's3.amazon.com').
83
+ # * `:http_request_port` - The port number (e.g. '443' or '80').
84
+ # * `:http_request_uri` - The http request uri folling the host (e.g.
85
+ # '/bucket_name/objects/key?versions').
86
+ # * `:http_request_body` - The http request payload.
87
+ # * `:http_request_headers` - The http request headers, inspected.
88
+ # * `:http_request_proxy_uri` - The proxy uri used, or an empty string.
89
+ # * `:http_response_status` - The http response status
90
+ # code (e.g. '200', '404', '500', etc).
91
+ # * `:http_response_headers` - The http response headers, inspected.
92
+ # * `:http_response_body` - The http response body contents.
127
93
  #
128
94
  class LogFormatter
129
95
 
130
96
  # @param [String] pattern The log format pattern should be a string
131
97
  # and may contain any of the following placeholders:
132
98
  #
133
- # * +:service+
134
- # * +:region+
135
- # * +:operation+
136
- # * +:options+
137
- # * +:retry_count
138
- # * +:duration+
139
- # * +:error_class+
140
- # * +:error_message+
141
- # * +:http_request_method+
142
- # * +:http_request_protocol+
143
- # * +:http_request_host+
144
- # * +:http_request_port+
145
- # * +:http_request_uri+
146
- # * +:http_request_body+
147
- # * +:http_request_headers+
148
- # * +:http_request_proxy_uri+
149
- # * +:http_response_status+
150
- # * +:http_response_headers+
151
- # * +:http_response_body+
99
+ # * `:service`
100
+ # * `:region`
101
+ # * `:operation`
102
+ # * `:options`
103
+ # * `:retry_count`
104
+ # * `:duration`
105
+ # * `:error_class`
106
+ # * `:error_message`
107
+ # * `:http_request_method`
108
+ # * `:http_request_protocol`
109
+ # * `:http_request_host`
110
+ # * `:http_request_port`
111
+ # * `:http_request_uri`
112
+ # * `:http_request_body`
113
+ # * `:http_request_headers`
114
+ # * `:http_request_proxy_uri`
115
+ # * `:http_response_status`
116
+ # * `:http_response_headers`
117
+ # * `:http_response_body`
152
118
  #
153
119
  # @param [Hash] options
154
120
  #
@@ -248,7 +214,7 @@ module AWS
248
214
  end
249
215
 
250
216
  def _http_request_proxy_uri response
251
- response.http_request.proxy_uri
217
+ response.config.proxy_uri
252
218
  end
253
219
 
254
220
  def _http_response_status response
@@ -320,7 +286,7 @@ module AWS
320
286
  #
321
287
  # @example A sample of the default format.
322
288
  #
323
- # [AWS SimpleEmailService 200 0.580066 0 retries] list_verified_email_addresses()
289
+ # [AWS SimpleEmailService 200 0.580066 0 retries] list_verified_email_addresses()
324
290
  #
325
291
  # @return [LogFormatter]
326
292
  #
@@ -345,7 +311,7 @@ module AWS
345
311
  #
346
312
  # @example A sample of the short format
347
313
  #
348
- # [AWS SimpleEmailService 200 0.494532] list_verified_email_addresses
314
+ # [AWS SimpleEmailService 200 0.494532] list_verified_email_addresses
349
315
  #
350
316
  # @return [LogFormatter]
351
317
  #
@@ -431,7 +397,7 @@ module AWS
431
397
  #
432
398
  # @example A sample of the colored format (sans the ansi colors).
433
399
  #
434
- # [AWS SimpleEmailService 200 0.580066 0 retries] list_verified_email_addresses()
400
+ # [AWS SimpleEmailService 200 0.580066 0 retries] list_verified_email_addresses()
435
401
  #
436
402
  # @return [LogFormatter]
437
403
  #