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,25 +13,25 @@
13
13
 
14
14
  module AWS
15
15
  module Core
16
-
16
+
17
17
  # Mixin that provides a generic callback facility for asynchronous
18
18
  # tasks that can either succeed or fail.
19
19
  module AsyncHandle
20
-
20
+
21
21
  # Called to signal success and fire off the success and complete callbacks.
22
22
  def signal_success
23
23
  __send_signal(:success)
24
24
  end
25
-
25
+
26
26
  # Called to signal failure and fire off the failure and complete callbacks.
27
27
  def signal_failure
28
28
  __send_signal(:failure)
29
29
  end
30
-
30
+
31
31
  # Registers a callback to be called on successful completion of
32
32
  # the task.
33
33
  #
34
- # handle.on_success { puts "It worked!" }
34
+ # handle.on_success { puts "It worked!" }
35
35
  #
36
36
  # If this is called when the task has already completed
37
37
  # successfully, it will call the callback immediately.
@@ -42,10 +42,10 @@ module AWS
42
42
  (@_async_callbacks ||= []) << { :success => block }
43
43
  end
44
44
  end
45
-
45
+
46
46
  # Registers a callback to be called when the task fails.
47
47
  #
48
- # handle.on_failure { puts "It didn't work!" }
48
+ # handle.on_failure { puts "It didn't work!" }
49
49
  #
50
50
  # If this is called when the task has already failed, it will
51
51
  # call the callback immediately.
@@ -56,13 +56,13 @@ module AWS
56
56
  (@_async_callbacks ||= []) << { :failure => block }
57
57
  end
58
58
  end
59
-
59
+
60
60
  # Registers a callback to be called when the task is complete,
61
61
  # regardless of its status. Yields the status to the block.
62
62
  #
63
- # handle.on_complete do |status|
64
- # puts "It #{status == :success ? 'did' : 'did not'} work!"
65
- # end
63
+ # handle.on_complete do |status|
64
+ # puts "It #{status == :success ? 'did' : 'did not'} work!"
65
+ # end
66
66
  #
67
67
  # If this is called when the task has already completed, it will
68
68
  # call the callback immediately.
@@ -76,7 +76,7 @@ module AWS
76
76
  }
77
77
  end
78
78
  end
79
-
79
+
80
80
  private
81
81
  def __send_signal(kind)
82
82
  @_async_status = kind
@@ -84,7 +84,7 @@ module AWS
84
84
  cb[kind]
85
85
  end.compact.each {|block| block.call } if @_async_callbacks
86
86
  end
87
-
87
+
88
88
  end
89
89
  end
90
90
  end
@@ -13,56 +13,55 @@
13
13
 
14
14
  module AWS
15
15
  module Core
16
-
16
+
17
17
  # @private
18
18
  module Cacheable
19
-
19
+
20
20
  # @private
21
21
  class NoData < StandardError; end
22
-
22
+
23
23
  def self.included base
24
24
  base.extend Naming unless base.respond_to?(:service_ruby_name)
25
25
  end
26
-
26
+
27
27
  # @private
28
28
  protected
29
29
  def local_cache_key
30
30
  raise NotImplementedError
31
31
  end
32
-
32
+
33
33
  # @private
34
34
  protected
35
35
  def cache_key
36
36
  @cache_key ||= begin
37
- endpoint_method = self.class.service_ruby_name + "_endpoint"
38
37
  config.credential_provider.access_key_id + ":" +
39
- config.send(endpoint_method) + ":" +
38
+ config.region + ":" +
40
39
  self.class.name + ":" +
41
40
  local_cache_key
42
41
  end
43
42
  end
44
-
43
+
45
44
  # @private
46
45
  public
47
46
  def retrieve_attribute attr, &block
48
-
47
+
49
48
  if cache = AWS.response_cache
50
-
49
+
51
50
  if cache.resource_cache.cached?(cache_key, attr.name)
52
51
  return cache.resource_cache.get(cache_key, attr.name)
53
52
  end
54
-
53
+
55
54
  cache.select(*attr.request_types).each do |response|
56
55
  if attributes = attributes_from_response(response)
57
56
  cache.resource_cache.store(cache_key, attributes)
58
57
  return attributes[attr.name] if attributes.key?(attr.name)
59
58
  end
60
59
  end
61
-
60
+
62
61
  end
63
-
62
+
64
63
  response = yield
65
-
64
+
66
65
  if attributes = attributes_from_response(response)
67
66
  if cache = AWS.response_cache
68
67
  cache.resource_cache.store(cache_key, attributes)
@@ -72,7 +71,7 @@ module AWS
72
71
  raise NoData.new("no data in #{response.request_type} response")
73
72
  end
74
73
  end
75
-
74
+
76
75
  end
77
76
  end
78
77
  end
@@ -105,7 +105,7 @@ module AWS
105
105
  # end
106
106
  #
107
107
  # The block executes in the context of an HttpHandler
108
- # instance, and +super+ delegates to the HTTP handler used by
108
+ # instance, and `super` delegates to the HTTP handler used by
109
109
  # this client. This provides an easy way to spy on requests
110
110
  # and responses. See HttpHandler, HttpRequest, and
111
111
  # HttpResponse for more details on how to implement a fully
@@ -177,11 +177,13 @@ module AWS
177
177
  protected
178
178
 
179
179
  def new_request
180
- eval(self.class.name.sub(/::Client$/, ''))::Request.new
180
+ eval(self.class.name.sub(/::Client.*$/, ''))::Request.new
181
181
  end
182
182
 
183
183
  def new_response(*args, &block)
184
- Response.new(*args, &block)
184
+ resp = Response.new(*args, &block)
185
+ resp.config = config
186
+ resp
185
187
  end
186
188
 
187
189
  def make_async_request response
@@ -315,18 +317,32 @@ module AWS
315
317
  response.error.kind_of?(Errors::ServerError)
316
318
  end
317
319
 
318
- # @return [Boolean] Returns +true+ if the response contains an
320
+ # @return [Boolean] Returns `true` if the response contains an
319
321
  # error message that indicates credentials have expired.
320
322
  def expired_credentials? response
321
323
  response.error and
322
324
  response.error.respond_to?(:code) and
323
- (response.error.code == 'ExpiredTokenException' || response.error.code == 'ExpiredToken')
325
+ (
326
+ response.error.code.to_s.match(/expired/i) or # session credentials
327
+ response.error.code == 'InvalidClientTokenId' or # query services
328
+ response.error.code == 'UnrecognizedClientException' or # json services
329
+ response.error.code == 'InvalidAccessKeyId' or # s3
330
+ response.error.code == 'AuthFailure' # ec2
331
+ )
324
332
  end
325
333
 
326
334
  def throttled? response
327
335
  response.error and
328
336
  response.error.respond_to?(:code) and
329
- response.error.code.to_s.match(/Throttling/i)
337
+ (
338
+ response.error.code.to_s.match(/throttl/i) or
339
+ #response.error.code == 'Throttling' or # most query services
340
+ #response.error.code == 'ThrottlingException' or # json services
341
+ #response.error.code == 'RequestThrottled' or # sqs
342
+ response.error.code == 'ProvisionedThroughputExceededException' or # ddb
343
+ response.error.code == 'RequestLimitExceeded' or # ec2
344
+ response.error.code == 'BandwidthLimitExceeded' # cloud search
345
+ )
330
346
  end
331
347
 
332
348
  def redirected? response
@@ -405,15 +421,15 @@ module AWS
405
421
  # in sub-classes (e.g. QueryClient, RESTClient, etc).
406
422
  # @param [Response] response
407
423
  # @return [Array<Code,Message>,nil] Should return an array with an
408
- # error code and message, or +nil+.
424
+ # error code and message, or `nil`.
409
425
  def extract_error_details response
410
426
  raise NotImplementedError
411
427
  end
412
428
 
413
429
  # Given an error code string, this method will return an error class.
414
430
  #
415
- # AWS::EC2::Client.new.send(:error_code, 'InvalidInstanceId')
416
- # #=> AWS::EC2::Errors::InvalidInstanceId
431
+ # AWS::EC2::Client.new.send(:error_code, 'InvalidInstanceId')
432
+ # #=> AWS::EC2::Errors::InvalidInstanceId
417
433
  #
418
434
  # @param [String] error_code The error code string as returned by
419
435
  # the service. If this class contains periods, they will be
@@ -427,8 +443,8 @@ module AWS
427
443
 
428
444
  # Returns the ::Errors module for the current client.
429
445
  #
430
- # AWS::S3::Client.new.errors_module
431
- # #=> AWS::S3::Errors
446
+ # AWS::S3::Client.new.errors_module
447
+ # #=> AWS::S3::Errors
432
448
  #
433
449
  # @return [Module]
434
450
  #
@@ -466,6 +482,7 @@ module AWS
466
482
  cached_response.cached = true
467
483
  cached_response
468
484
  else
485
+
469
486
  # process the http request
470
487
  options[:async] ?
471
488
  make_async_request(response, &read_block) :
@@ -515,15 +532,23 @@ module AWS
515
532
  http_request.host = endpoint
516
533
  http_request.port = port
517
534
  http_request.region = config.send(:"#{service_ruby_name}_region")
518
- http_request.proxy_uri = config.proxy_uri
519
535
  http_request.use_ssl = config.use_ssl?
520
- http_request.ssl_verify_peer = config.ssl_verify_peer?
521
- http_request.ssl_ca_file = config.ssl_ca_file if config.ssl_ca_file
522
- http_request.ssl_ca_path = config.ssl_ca_path if config.ssl_ca_path
523
536
 
524
537
  send("configure_#{name}_request", http_request, opts)
525
538
 
526
539
  http_request.headers["user-agent"] = user_agent_string
540
+
541
+ if
542
+ @config.http_continue_threshold and
543
+ http_request.headers['content-length'] and
544
+ http_request.headers['content-length'].to_i > @config.http_continue_threshold
545
+ then
546
+ http_request.headers["expect"] = "100-continue"
547
+ http_request.continue_timeout = @config.http_continue_timeout
548
+ else
549
+ http_request.continue_timeout = nil
550
+ end
551
+
527
552
  http_request.add_authorization!(credential_provider)
528
553
 
529
554
  http_request
@@ -16,20 +16,18 @@ module AWS
16
16
  # Provides useful methods for enumerating items in a collection.
17
17
  module Collection
18
18
 
19
- AWS.register_autoloads(self) do
20
- autoload :Simple, 'simple'
21
- autoload :WithNextToken, 'with_next_token'
22
- autoload :WithLimitAndNextToken, 'with_limit_and_next_token'
23
- end
19
+ autoload :Simple, 'aws/core/collection/simple'
20
+ autoload :WithNextToken, 'aws/core/collection/with_next_token'
21
+ autoload :WithLimitAndNextToken, 'aws/core/collection/with_limit_and_next_token'
24
22
 
25
23
  include Enumerable
26
24
 
27
25
  # Yields once for every item in this collection.
28
26
  #
29
- # collection.each {|item| ... }
27
+ # collection.each {|item| ... }
30
28
  #
31
29
  # @note If you want fewer than all items, it is generally better
32
- # to call {#page} than {#each} with a +:limit+.
30
+ # to call {#page} than {#each} with a `:limit`.
33
31
  #
34
32
  # @param [Hash] options
35
33
  #
@@ -37,13 +35,13 @@ module AWS
37
35
  # items to enumerate from this collection.
38
36
  #
39
37
  # @option options [next_token] :next_token (nil)
40
- # Acts as an offset. +:next_token+ may be returned by {#each} and
41
- # {#each_batch} when a +:limit+ is provided.
38
+ # Acts as an offset. `:next_token` may be returned by {#each} and
39
+ # {#each_batch} when a `:limit` is provided.
42
40
  #
43
41
  # @return [nil_or_next_token] Returns nil if all items were enumerated.
44
- # If some items were excluded because of a +:limit+ option then
45
- # a +next_token+ is returned. Calling an enumerable method on
46
- # the same collection with the +next_token+ acts like an offset.
42
+ # If some items were excluded because of a `:limit` option then
43
+ # a `next_token` is returned. Calling an enumerable method on
44
+ # the same collection with the `next_token` acts like an offset.
47
45
  #
48
46
  def each options = {}, &block
49
47
  each_batch(options) do |batch|
@@ -53,13 +51,13 @@ module AWS
53
51
 
54
52
  # Yields items from this collection in batches.
55
53
  #
56
- # collection.each_batch do |batch|
57
- # batch.each do |item|
58
- # # ...
54
+ # collection.each_batch do |batch|
55
+ # batch.each do |item|
56
+ # # ...
57
+ # end
59
58
  # end
60
- # end
61
59
  #
62
- # == Variable Batch Sizes
60
+ # ## Variable Batch Sizes
63
61
  #
64
62
  # Each AWS service has its own rules on how it returns results.
65
63
  # Because of this batch size may very based on:
@@ -85,16 +83,14 @@ module AWS
85
83
  # Use this method when you want to call a method provided by
86
84
  # Enumerable, but you need to pass options:
87
85
  #
88
- # # raises an error because collect does not accept arguments
89
- # collection.collect(:limit => 10) {|i| i.name }
86
+ # # raises an error because collect does not accept arguments
87
+ # collection.collect(:limit => 10) {|i| i.name }
90
88
  #
91
- # # not an issue with the enum method
92
- # collection.enum(:limit => 10).collect(&:name)
89
+ # # not an issue with the enum method
90
+ # collection.enum(:limit => 10).collect(&:name)
93
91
  #
94
92
  # @param (see #each)
95
- #
96
93
  # @option (see #each)
97
- #
98
94
  # @return [Enumerable::Enumerator] Returns an enumerator for this
99
95
  # collection.
100
96
  #
@@ -115,15 +111,15 @@ module AWS
115
111
  # Yields items from this collection in groups of an exact
116
112
  # size (except for perhaps the last group).
117
113
  #
118
- # collection.in_groups_of (10, :limit => 30) do |group|
114
+ # collection.in_groups_of (10, :limit => 30) do |group|
119
115
  #
120
- # # each group should be exactly 10 items unless
121
- # # fewer than 30 items are returned by the service
122
- # group.each do |item|
123
- # #...
124
- # end
116
+ # # each group should be exactly 10 items unless
117
+ # # fewer than 30 items are returned by the service
118
+ # group.each do |item|
119
+ # #...
120
+ # end
125
121
  #
126
- # end
122
+ # end
127
123
  #
128
124
  # @param [Integer] size Size each each group of objects
129
125
  # should be yielded in.
@@ -152,29 +148,29 @@ module AWS
152
148
 
153
149
  # Returns a single page of results in a kind-of array ({PageResult}).
154
150
  #
155
- # items = collection.page(:per_page => 10) # defaults to 10 items
156
- # items.is_a?(Array) # => true
157
- # items.size # => 8
158
- # items.per_page # => 10
159
- # items.last_page? # => true
151
+ # items = collection.page(:per_page => 10) # defaults to 10 items
152
+ # items.is_a?(Array) # => true
153
+ # items.size # => 8
154
+ # items.per_page # => 10
155
+ # items.last_page? # => true
160
156
  #
161
157
  # If you need to display a "next page" link in a web view you can
162
158
  # use the #more? method. Just make sure the generated link
163
- # contains the +next_token+.
159
+ # contains the `next_token`.
164
160
  #
165
- # <% if items.more? %>
166
- # <%= link_to('Next Page', params.merge(:next_token => items.next_token) %>
167
- # <% end %>
161
+ # <% if items.more? %>
162
+ # <%= link_to('Next Page', params.merge(:next_token => items.next_token) %>
163
+ # <% end %>
168
164
  #
169
165
  # Then in your controller you can find the next page of results:
170
166
  #
171
- # items = collection.page(:next_token => params[:next_token])
167
+ # items = collection.page(:next_token => params[:next_token])
172
168
  #
173
169
  # Given a {PageResult} you can also get more results directly:
174
170
  #
175
- # more_items = items.next_page
171
+ # more_items = items.next_page
176
172
  #
177
- # @note This method does not accept a +:page+ option, which means you
173
+ # @note This method does not accept a `:page` option, which means you
178
174
  # can only start at the begining of the collection and request
179
175
  # the next page of results. You can not choose an offset
180
176
  # or know how many pages of results there will be.
@@ -248,15 +244,15 @@ module AWS
248
244
  #
249
245
  # An example of when this would be useful:
250
246
  #
251
- # collection.limit(10).each {|item| ... }
247
+ # collection.limit(10).each {|item| ... }
252
248
  #
253
249
  # The collection class including this module should define _limit
254
250
  # and return the cached limit value (of 10 from this example).
255
251
  # This value may still be overridden by a locally passed
256
- # +:limit+ option:
252
+ # `:limit` option:
257
253
  #
258
- # # limit 5 wins out
259
- # collection.limit(10).each(:limit => 5) {|item| ... }
254
+ # # limit 5 wins out
255
+ # collection.limit(10).each(:limit => 5) {|item| ... }
260
256
  #
261
257
  def _limit
262
258
  nil
@@ -15,7 +15,7 @@ module AWS
15
15
  module Core
16
16
  module Collection
17
17
 
18
- # = Collection::WithLimitAndNextToken
18
+ # # Collection::WithLimitAndNextToken
19
19
  #
20
20
  # This module is used by collections where the service may truncate
21
21
  # responses but that also accept a upper limit of results to