aws-sdk 1.8.5 → 1.9.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (386) hide show
  1. checksums.yaml +7 -0
  2. data/.yardopts +1 -0
  3. data/README.rdoc +8 -0
  4. data/lib/aws-sdk.rb +39 -35
  5. data/lib/aws/api_config/CloudFront-2012-07-01.yml +2398 -0
  6. data/lib/aws/api_config/DirectConnect-2012-10-25.yml +475 -0
  7. data/lib/aws/api_config/DynamoDB-2011-12-05.yml +8 -0
  8. data/lib/aws/api_config/DynamoDB-2012-08-10.yml +1516 -0
  9. data/lib/aws/api_config/OpsWorks-2013-02-18.yml +2 -2
  10. data/lib/aws/auto_scaling.rb +44 -44
  11. data/lib/aws/auto_scaling/activity.rb +1 -1
  12. data/lib/aws/auto_scaling/activity_collection.rb +14 -15
  13. data/lib/aws/auto_scaling/client.rb +277 -277
  14. data/lib/aws/auto_scaling/config.rb +1 -1
  15. data/lib/aws/auto_scaling/group.rb +35 -36
  16. data/lib/aws/auto_scaling/group_collection.rb +10 -10
  17. data/lib/aws/auto_scaling/group_options.rb +19 -19
  18. data/lib/aws/auto_scaling/instance.rb +27 -27
  19. data/lib/aws/auto_scaling/instance_collection.rb +10 -10
  20. data/lib/aws/auto_scaling/launch_configuration.rb +3 -3
  21. data/lib/aws/auto_scaling/launch_configuration_collection.rb +1 -1
  22. data/lib/aws/auto_scaling/notification_configuration.rb +2 -2
  23. data/lib/aws/auto_scaling/notification_configuration_collection.rb +37 -38
  24. data/lib/aws/auto_scaling/scaling_policy.rb +3 -3
  25. data/lib/aws/auto_scaling/scaling_policy_collection.rb +6 -6
  26. data/lib/aws/auto_scaling/scaling_policy_options.rb +8 -7
  27. data/lib/aws/auto_scaling/scheduled_action.rb +3 -3
  28. data/lib/aws/auto_scaling/scheduled_action_collection.rb +28 -28
  29. data/lib/aws/auto_scaling/tag_collection.rb +30 -28
  30. data/lib/aws/cloud_formation.rb +95 -94
  31. data/lib/aws/cloud_formation/client.rb +136 -133
  32. data/lib/aws/cloud_formation/config.rb +1 -1
  33. data/lib/aws/cloud_formation/stack.rb +37 -37
  34. data/lib/aws/cloud_formation/stack_collection.rb +28 -27
  35. data/lib/aws/cloud_formation/stack_event.rb +9 -11
  36. data/lib/aws/cloud_formation/stack_output.rb +1 -1
  37. data/lib/aws/cloud_formation/stack_resource.rb +6 -6
  38. data/lib/aws/cloud_formation/stack_resource_collection.rb +11 -12
  39. data/lib/aws/cloud_formation/stack_resource_summary_collection.rb +11 -11
  40. data/lib/aws/cloud_formation/stack_summary_collection.rb +39 -39
  41. data/lib/aws/cloud_front.rb +21 -21
  42. data/lib/aws/cloud_front/client.rb +853 -652
  43. data/lib/aws/cloud_front/request.rb +3 -0
  44. data/lib/aws/cloud_search.rb +22 -22
  45. data/lib/aws/cloud_search/client.rb +322 -315
  46. data/lib/aws/cloud_search/config.rb +1 -1
  47. data/lib/aws/cloud_watch.rb +39 -39
  48. data/lib/aws/cloud_watch/alarm.rb +55 -37
  49. data/lib/aws/cloud_watch/alarm_collection.rb +18 -18
  50. data/lib/aws/cloud_watch/alarm_history_item_collection.rb +2 -2
  51. data/lib/aws/cloud_watch/client.rb +360 -146
  52. data/lib/aws/cloud_watch/config.rb +1 -1
  53. data/lib/aws/cloud_watch/metric.rb +15 -15
  54. data/lib/aws/cloud_watch/metric_alarm_collection.rb +17 -17
  55. data/lib/aws/cloud_watch/metric_collection.rb +16 -16
  56. data/lib/aws/cloud_watch/metric_statistics.rb +11 -11
  57. data/lib/aws/core.rb +243 -225
  58. data/lib/aws/core/async_handle.rb +13 -13
  59. data/lib/aws/core/cacheable.rb +14 -15
  60. data/lib/aws/core/client.rb +40 -15
  61. data/lib/aws/core/collection.rb +42 -46
  62. data/lib/aws/core/collection/with_limit_and_next_token.rb +1 -1
  63. data/lib/aws/core/collection/with_next_token.rb +1 -1
  64. data/lib/aws/core/configuration.rb +97 -133
  65. data/lib/aws/core/credential_providers.rb +16 -16
  66. data/lib/aws/core/data.rb +23 -23
  67. data/lib/aws/core/http/connection_pool.rb +348 -0
  68. data/lib/aws/core/http/net_http_handler.rb +17 -26
  69. data/lib/aws/core/http/patch.rb +102 -0
  70. data/lib/aws/core/http/request.rb +13 -19
  71. data/lib/aws/core/http/response.rb +2 -2
  72. data/lib/aws/core/lazy_error_classes.rb +17 -17
  73. data/lib/aws/core/log_formatter.rb +70 -104
  74. data/lib/aws/core/options/json_serializer.rb +1 -1
  75. data/lib/aws/core/options/validator.rb +4 -4
  76. data/lib/aws/core/page_result.rb +8 -8
  77. data/lib/aws/core/policy.rb +49 -49
  78. data/lib/aws/core/region.rb +72 -0
  79. data/lib/aws/core/region_collection.rb +106 -0
  80. data/lib/aws/core/resource.rb +5 -5
  81. data/lib/aws/core/response.rb +20 -17
  82. data/lib/aws/core/rest_request_builder.rb +4 -4
  83. data/lib/aws/core/service_interface.rb +24 -2
  84. data/lib/aws/core/signature/version_3.rb +2 -2
  85. data/lib/aws/core/uri_escape.rb +1 -1
  86. data/lib/aws/core/xml/frame_stack.rb +1 -1
  87. data/lib/aws/core/xml/grammar.rb +3 -4
  88. data/lib/aws/core/xml/sax_handlers/libxml.rb +2 -2
  89. data/lib/aws/core/xml/sax_handlers/nokogiri.rb +3 -3
  90. data/lib/aws/core/xml/sax_handlers/rexml.rb +5 -5
  91. data/lib/aws/core/xml/stub.rb +9 -9
  92. data/lib/aws/data_pipeline.rb +21 -21
  93. data/lib/aws/data_pipeline/client.rb +189 -133
  94. data/lib/aws/data_pipeline/config.rb +1 -1
  95. data/lib/aws/direct_connect.rb +74 -0
  96. data/lib/aws/direct_connect/client.rb +253 -0
  97. data/lib/aws/direct_connect/config.rb +18 -0
  98. data/lib/aws/direct_connect/errors.rb +22 -0
  99. data/lib/aws/direct_connect/request.rb +27 -0
  100. data/lib/aws/dynamo_db.rb +71 -69
  101. data/lib/aws/dynamo_db/attribute_collection.rb +53 -58
  102. data/lib/aws/dynamo_db/batch_get.rb +23 -23
  103. data/lib/aws/dynamo_db/batch_write.rb +43 -43
  104. data/lib/aws/dynamo_db/binary.rb +9 -9
  105. data/lib/aws/dynamo_db/client.rb +494 -509
  106. data/lib/aws/dynamo_db/client_base.rb +91 -0
  107. data/lib/aws/dynamo_db/client_v2.rb +825 -0
  108. data/lib/aws/dynamo_db/config.rb +1 -1
  109. data/lib/aws/dynamo_db/item.rb +10 -10
  110. data/lib/aws/dynamo_db/item_collection.rb +75 -75
  111. data/lib/aws/dynamo_db/table.rb +85 -85
  112. data/lib/aws/dynamo_db/table_collection.rb +13 -13
  113. data/lib/aws/ec2.rb +132 -142
  114. data/lib/aws/ec2/attachment.rb +31 -36
  115. data/lib/aws/ec2/attachment_collection.rb +1 -1
  116. data/lib/aws/ec2/availability_zone.rb +4 -4
  117. data/lib/aws/ec2/client.rb +2272 -2125
  118. data/lib/aws/ec2/config.rb +1 -1
  119. data/lib/aws/ec2/customer_gateway.rb +6 -6
  120. data/lib/aws/ec2/customer_gateway_collection.rb +6 -6
  121. data/lib/aws/ec2/dhcp_options.rb +3 -3
  122. data/lib/aws/ec2/dhcp_options_collection.rb +10 -10
  123. data/lib/aws/ec2/elastic_ip.rb +15 -15
  124. data/lib/aws/ec2/elastic_ip_collection.rb +11 -15
  125. data/lib/aws/ec2/export_task.rb +4 -4
  126. data/lib/aws/ec2/export_task_collection.rb +11 -11
  127. data/lib/aws/ec2/filtered_collection.rb +6 -8
  128. data/lib/aws/ec2/image.rb +46 -40
  129. data/lib/aws/ec2/image_collection.rb +44 -52
  130. data/lib/aws/ec2/instance.rb +64 -62
  131. data/lib/aws/ec2/instance_collection.rb +47 -50
  132. data/lib/aws/ec2/internet_gateway.rb +6 -6
  133. data/lib/aws/ec2/internet_gateway/attachment.rb +13 -13
  134. data/lib/aws/ec2/internet_gateway_collection.rb +3 -3
  135. data/lib/aws/ec2/key_pair.rb +3 -3
  136. data/lib/aws/ec2/key_pair_collection.rb +12 -12
  137. data/lib/aws/ec2/network_acl.rb +39 -39
  138. data/lib/aws/ec2/network_acl/association.rb +2 -2
  139. data/lib/aws/ec2/network_acl/entry.rb +22 -22
  140. data/lib/aws/ec2/network_acl_collection.rb +2 -2
  141. data/lib/aws/ec2/network_interface.rb +13 -4
  142. data/lib/aws/ec2/network_interface/attachment.rb +3 -3
  143. data/lib/aws/ec2/network_interface_collection.rb +5 -5
  144. data/lib/aws/ec2/permission_collection.rb +1 -1
  145. data/lib/aws/ec2/region.rb +6 -6
  146. data/lib/aws/ec2/region_collection.rb +1 -1
  147. data/lib/aws/ec2/reserved_instances_collection.rb +2 -2
  148. data/lib/aws/ec2/reserved_instances_offering_collection.rb +2 -2
  149. data/lib/aws/ec2/resource_tag_collection.rb +5 -5
  150. data/lib/aws/ec2/route_table.rb +14 -14
  151. data/lib/aws/ec2/route_table/association.rb +22 -22
  152. data/lib/aws/ec2/route_table/route.rb +8 -8
  153. data/lib/aws/ec2/route_table_collection.rb +3 -3
  154. data/lib/aws/ec2/security_group.rb +39 -41
  155. data/lib/aws/ec2/security_group_collection.rb +19 -21
  156. data/lib/aws/ec2/snapshot.rb +3 -3
  157. data/lib/aws/ec2/snapshot_collection.rb +11 -12
  158. data/lib/aws/ec2/subnet.rb +2 -2
  159. data/lib/aws/ec2/subnet_collection.rb +17 -17
  160. data/lib/aws/ec2/tag_collection.rb +1 -1
  161. data/lib/aws/ec2/tagged_collection.rb +7 -7
  162. data/lib/aws/ec2/tagged_item.rb +10 -10
  163. data/lib/aws/ec2/volume.rb +16 -16
  164. data/lib/aws/ec2/volume_collection.rb +9 -12
  165. data/lib/aws/ec2/vpc.rb +6 -6
  166. data/lib/aws/ec2/vpc_collection.rb +10 -10
  167. data/lib/aws/ec2/vpn_connection.rb +4 -4
  168. data/lib/aws/ec2/vpn_connection/telemetry.rb +1 -1
  169. data/lib/aws/ec2/vpn_connection_collection.rb +6 -6
  170. data/lib/aws/ec2/vpn_gateway.rb +2 -2
  171. data/lib/aws/ec2/vpn_gateway_collection.rb +5 -5
  172. data/lib/aws/elastic_beanstalk.rb +12 -12
  173. data/lib/aws/elastic_beanstalk/client.rb +376 -368
  174. data/lib/aws/elastic_beanstalk/config.rb +1 -1
  175. data/lib/aws/elastic_transcoder.rb +5 -5
  176. data/lib/aws/elastic_transcoder/client.rb +283 -283
  177. data/lib/aws/elastic_transcoder/config.rb +1 -1
  178. data/lib/aws/elasticache.rb +12 -12
  179. data/lib/aws/elasticache/client.rb +484 -479
  180. data/lib/aws/elasticache/config.rb +1 -1
  181. data/lib/aws/elb.rb +23 -23
  182. data/lib/aws/elb/availability_zone_collection.rb +34 -34
  183. data/lib/aws/elb/backend_server_policy_collection.rb +24 -24
  184. data/lib/aws/elb/client.rb +153 -153
  185. data/lib/aws/elb/config.rb +1 -1
  186. data/lib/aws/elb/errors.rb +1 -1
  187. data/lib/aws/elb/instance_collection.rb +20 -25
  188. data/lib/aws/elb/listener.rb +3 -3
  189. data/lib/aws/elb/listener_collection.rb +8 -8
  190. data/lib/aws/elb/load_balancer.rb +15 -16
  191. data/lib/aws/elb/load_balancer_collection.rb +36 -24
  192. data/lib/aws/elb/load_balancer_policy.rb +1 -1
  193. data/lib/aws/elb/load_balancer_policy_collection.rb +5 -5
  194. data/lib/aws/emr.rb +28 -26
  195. data/lib/aws/emr/client.rb +165 -149
  196. data/lib/aws/emr/config.rb +1 -1
  197. data/lib/aws/emr/instance_group.rb +1 -1
  198. data/lib/aws/emr/instance_group_collection.rb +1 -1
  199. data/lib/aws/emr/job_flow.rb +27 -26
  200. data/lib/aws/emr/job_flow_collection.rb +34 -34
  201. data/lib/aws/errors.rb +7 -7
  202. data/lib/aws/glacier.rb +21 -21
  203. data/lib/aws/glacier/archive_collection.rb +2 -2
  204. data/lib/aws/glacier/client.rb +139 -140
  205. data/lib/aws/glacier/config.rb +1 -1
  206. data/lib/aws/glacier/vault.rb +2 -2
  207. data/lib/aws/glacier/vault_collection.rb +1 -1
  208. data/lib/aws/iam.rb +133 -144
  209. data/lib/aws/iam/access_key.rb +17 -17
  210. data/lib/aws/iam/access_key_collection.rb +22 -22
  211. data/lib/aws/iam/account_alias_collection.rb +2 -2
  212. data/lib/aws/iam/client.rb +429 -420
  213. data/lib/aws/iam/collection.rb +1 -1
  214. data/lib/aws/iam/config.rb +2 -2
  215. data/lib/aws/iam/group.rb +8 -8
  216. data/lib/aws/iam/group_collection.rb +16 -16
  217. data/lib/aws/iam/group_policy_collection.rb +6 -6
  218. data/lib/aws/iam/group_user_collection.rb +3 -3
  219. data/lib/aws/iam/mfa_device.rb +1 -1
  220. data/lib/aws/iam/mfa_device_collection.rb +9 -9
  221. data/lib/aws/iam/policy_collection.rb +4 -4
  222. data/lib/aws/iam/resource.rb +2 -2
  223. data/lib/aws/iam/server_certificate.rb +1 -1
  224. data/lib/aws/iam/server_certificate_collection.rb +15 -15
  225. data/lib/aws/iam/signing_certificate.rb +29 -29
  226. data/lib/aws/iam/signing_certificate_collection.rb +23 -23
  227. data/lib/aws/iam/user.rb +33 -38
  228. data/lib/aws/iam/user_collection.rb +27 -27
  229. data/lib/aws/iam/user_group_collection.rb +3 -3
  230. data/lib/aws/iam/user_policy_collection.rb +6 -6
  231. data/lib/aws/iam/virtual_mfa_device.rb +12 -12
  232. data/lib/aws/iam/virtual_mfa_device_collection.rb +4 -4
  233. data/lib/aws/import_export.rb +22 -21
  234. data/lib/aws/import_export/client.rb +47 -43
  235. data/lib/aws/ops_works.rb +5 -5
  236. data/lib/aws/ops_works/client.rb +484 -438
  237. data/lib/aws/ops_works/config.rb +1 -1
  238. data/lib/aws/rails.rb +34 -34
  239. data/lib/aws/rds.rb +18 -18
  240. data/lib/aws/rds/client.rb +1286 -1277
  241. data/lib/aws/rds/config.rb +1 -1
  242. data/lib/aws/rds/db_instance.rb +15 -4
  243. data/lib/aws/rds/db_snapshot.rb +1 -1
  244. data/lib/aws/record.rb +50 -24
  245. data/lib/aws/record/abstract_base.rb +52 -60
  246. data/lib/aws/record/attributes.rb +79 -79
  247. data/lib/aws/record/conversion.rb +1 -1
  248. data/lib/aws/record/dirty_tracking.rb +69 -67
  249. data/lib/aws/record/errors.rb +21 -21
  250. data/lib/aws/record/exceptions.rb +2 -2
  251. data/lib/aws/record/hash_model.rb +20 -21
  252. data/lib/aws/record/hash_model/attributes.rb +13 -15
  253. data/lib/aws/record/hash_model/finder_methods.rb +46 -46
  254. data/lib/aws/record/hash_model/scope.rb +31 -31
  255. data/lib/aws/record/model.rb +136 -136
  256. data/lib/aws/record/model/attributes.rb +57 -59
  257. data/lib/aws/record/model/finder_methods.rb +67 -67
  258. data/lib/aws/record/model/scope.rb +48 -49
  259. data/lib/aws/record/naming.rb +1 -1
  260. data/lib/aws/record/scope.rb +23 -19
  261. data/lib/aws/record/validations.rb +253 -271
  262. data/lib/aws/record/validator.rb +3 -3
  263. data/lib/aws/record/validators/acceptance.rb +1 -3
  264. data/lib/aws/record/validators/block.rb +1 -3
  265. data/lib/aws/record/validators/confirmation.rb +1 -3
  266. data/lib/aws/record/validators/count.rb +2 -4
  267. data/lib/aws/record/validators/exclusion.rb +2 -4
  268. data/lib/aws/record/validators/format.rb +2 -4
  269. data/lib/aws/record/validators/inclusion.rb +1 -3
  270. data/lib/aws/record/validators/length.rb +5 -7
  271. data/lib/aws/record/validators/method.rb +1 -3
  272. data/lib/aws/record/validators/numericality.rb +6 -8
  273. data/lib/aws/record/validators/presence.rb +1 -3
  274. data/lib/aws/redshift.rb +14 -14
  275. data/lib/aws/redshift/client.rb +596 -592
  276. data/lib/aws/redshift/config.rb +1 -1
  277. data/lib/aws/route_53.rb +30 -30
  278. data/lib/aws/route_53/change_batch.rb +7 -7
  279. data/lib/aws/route_53/client.rb +188 -152
  280. data/lib/aws/route_53/hosted_zone.rb +4 -4
  281. data/lib/aws/route_53/hosted_zone_collection.rb +7 -7
  282. data/lib/aws/route_53/resource_record_set.rb +10 -10
  283. data/lib/aws/route_53/resource_record_set_collection.rb +6 -6
  284. data/lib/aws/s3.rb +79 -79
  285. data/lib/aws/s3/access_control_list.rb +44 -36
  286. data/lib/aws/s3/acl_options.rb +51 -51
  287. data/lib/aws/s3/bucket.rb +146 -146
  288. data/lib/aws/s3/bucket_collection.rb +21 -21
  289. data/lib/aws/s3/bucket_lifecycle_configuration.rb +81 -82
  290. data/lib/aws/s3/bucket_tag_collection.rb +4 -2
  291. data/lib/aws/s3/cipher_io.rb +5 -4
  292. data/lib/aws/s3/client.rb +89 -84
  293. data/lib/aws/s3/client/xml.rb +1 -1
  294. data/lib/aws/s3/config.rb +7 -1
  295. data/lib/aws/s3/cors_rule.rb +2 -0
  296. data/lib/aws/s3/cors_rule_collection.rb +42 -40
  297. data/lib/aws/s3/data_options.rb +16 -11
  298. data/lib/aws/s3/encryption_utils.rb +2 -2
  299. data/lib/aws/s3/errors.rb +7 -7
  300. data/lib/aws/s3/multipart_upload.rb +30 -33
  301. data/lib/aws/s3/multipart_upload_collection.rb +8 -6
  302. data/lib/aws/s3/object_collection.rb +35 -35
  303. data/lib/aws/s3/object_metadata.rb +6 -6
  304. data/lib/aws/s3/object_version.rb +4 -4
  305. data/lib/aws/s3/object_version_collection.rb +15 -15
  306. data/lib/aws/s3/policy.rb +2 -2
  307. data/lib/aws/s3/prefixed_collection.rb +9 -5
  308. data/lib/aws/s3/presigned_post.rb +39 -37
  309. data/lib/aws/s3/request.rb +11 -11
  310. data/lib/aws/s3/s3_object.rb +210 -200
  311. data/lib/aws/s3/tree.rb +25 -27
  312. data/lib/aws/s3/tree/child_collection.rb +3 -3
  313. data/lib/aws/s3/tree/leaf_node.rb +2 -2
  314. data/lib/aws/s3/tree/parent.rb +1 -1
  315. data/lib/aws/s3/website_configuration.rb +13 -13
  316. data/lib/aws/simple_db.rb +83 -83
  317. data/lib/aws/simple_db/attribute.rb +9 -7
  318. data/lib/aws/simple_db/attribute_collection.rb +22 -13
  319. data/lib/aws/simple_db/client.rb +107 -107
  320. data/lib/aws/simple_db/config.rb +7 -1
  321. data/lib/aws/simple_db/consistent_read_option.rb +5 -5
  322. data/lib/aws/simple_db/domain.rb +4 -2
  323. data/lib/aws/simple_db/domain_collection.rb +4 -4
  324. data/lib/aws/simple_db/domain_metadata.rb +5 -5
  325. data/lib/aws/simple_db/errors.rb +9 -9
  326. data/lib/aws/simple_db/item.rb +5 -5
  327. data/lib/aws/simple_db/item_collection.rb +83 -81
  328. data/lib/aws/simple_db/item_data.rb +4 -4
  329. data/lib/aws/simple_db/put_attributes.rb +3 -3
  330. data/lib/aws/simple_email_service.rb +140 -140
  331. data/lib/aws/simple_email_service/client.rb +82 -76
  332. data/lib/aws/simple_email_service/config.rb +1 -2
  333. data/lib/aws/simple_email_service/email_address_collection.rb +3 -3
  334. data/lib/aws/simple_email_service/identity.rb +8 -8
  335. data/lib/aws/simple_email_service/quotas.rb +8 -6
  336. data/lib/aws/simple_workflow.rb +106 -106
  337. data/lib/aws/simple_workflow/activity_task.rb +15 -22
  338. data/lib/aws/simple_workflow/activity_task_collection.rb +15 -15
  339. data/lib/aws/simple_workflow/activity_type.rb +23 -23
  340. data/lib/aws/simple_workflow/activity_type_collection.rb +23 -23
  341. data/lib/aws/simple_workflow/client.rb +1004 -956
  342. data/lib/aws/simple_workflow/config.rb +1 -1
  343. data/lib/aws/simple_workflow/count.rb +5 -5
  344. data/lib/aws/simple_workflow/decision_task.rb +129 -129
  345. data/lib/aws/simple_workflow/decision_task_collection.rb +59 -59
  346. data/lib/aws/simple_workflow/domain.rb +11 -11
  347. data/lib/aws/simple_workflow/domain_collection.rb +26 -26
  348. data/lib/aws/simple_workflow/history_event.rb +32 -32
  349. data/lib/aws/simple_workflow/history_event_collection.rb +3 -3
  350. data/lib/aws/simple_workflow/option_formatters.rb +5 -5
  351. data/lib/aws/simple_workflow/request.rb +1 -1
  352. data/lib/aws/simple_workflow/resource.rb +1 -1
  353. data/lib/aws/simple_workflow/type.rb +8 -8
  354. data/lib/aws/simple_workflow/type_collection.rb +15 -15
  355. data/lib/aws/simple_workflow/workflow_execution.rb +70 -72
  356. data/lib/aws/simple_workflow/workflow_execution_collection.rb +130 -130
  357. data/lib/aws/simple_workflow/workflow_type.rb +27 -25
  358. data/lib/aws/simple_workflow/workflow_type_collection.rb +20 -20
  359. data/lib/aws/sns.rb +25 -25
  360. data/lib/aws/sns/client.rb +55 -55
  361. data/lib/aws/sns/config.rb +1 -1
  362. data/lib/aws/sns/policy.rb +1 -1
  363. data/lib/aws/sns/subscription.rb +7 -7
  364. data/lib/aws/sns/subscription_collection.rb +5 -5
  365. data/lib/aws/sns/topic.rb +49 -49
  366. data/lib/aws/sns/topic_collection.rb +2 -2
  367. data/lib/aws/sns/topic_subscription_collection.rb +5 -5
  368. data/lib/aws/sqs.rb +20 -20
  369. data/lib/aws/sqs/client.rb +78 -78
  370. data/lib/aws/sqs/config.rb +1 -1
  371. data/lib/aws/sqs/errors.rb +12 -12
  372. data/lib/aws/sqs/queue.rb +66 -67
  373. data/lib/aws/sqs/queue_collection.rb +16 -8
  374. data/lib/aws/sqs/received_message.rb +7 -6
  375. data/lib/aws/storage_gateway.rb +21 -21
  376. data/lib/aws/storage_gateway/client.rb +269 -202
  377. data/lib/aws/storage_gateway/config.rb +1 -1
  378. data/lib/aws/sts.rb +10 -8
  379. data/lib/aws/sts/client.rb +35 -35
  380. data/lib/aws/sts/session.rb +3 -3
  381. data/lib/aws/version.rb +1 -2
  382. metadata +23 -21
  383. data/lib/aws/core/autoloader.rb +0 -64
  384. data/lib/net/http/connection_pool.rb +0 -226
  385. data/lib/net/http/connection_pool/connection.rb +0 -189
  386. data/lib/net/http/connection_pool/session.rb +0 -126
@@ -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