aws-sdk 1.8.5 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (386) hide show
  1. checksums.yaml +7 -0
  2. data/.yardopts +1 -0
  3. data/README.rdoc +8 -0
  4. data/lib/aws-sdk.rb +39 -35
  5. data/lib/aws/api_config/CloudFront-2012-07-01.yml +2398 -0
  6. data/lib/aws/api_config/DirectConnect-2012-10-25.yml +475 -0
  7. data/lib/aws/api_config/DynamoDB-2011-12-05.yml +8 -0
  8. data/lib/aws/api_config/DynamoDB-2012-08-10.yml +1516 -0
  9. data/lib/aws/api_config/OpsWorks-2013-02-18.yml +2 -2
  10. data/lib/aws/auto_scaling.rb +44 -44
  11. data/lib/aws/auto_scaling/activity.rb +1 -1
  12. data/lib/aws/auto_scaling/activity_collection.rb +14 -15
  13. data/lib/aws/auto_scaling/client.rb +277 -277
  14. data/lib/aws/auto_scaling/config.rb +1 -1
  15. data/lib/aws/auto_scaling/group.rb +35 -36
  16. data/lib/aws/auto_scaling/group_collection.rb +10 -10
  17. data/lib/aws/auto_scaling/group_options.rb +19 -19
  18. data/lib/aws/auto_scaling/instance.rb +27 -27
  19. data/lib/aws/auto_scaling/instance_collection.rb +10 -10
  20. data/lib/aws/auto_scaling/launch_configuration.rb +3 -3
  21. data/lib/aws/auto_scaling/launch_configuration_collection.rb +1 -1
  22. data/lib/aws/auto_scaling/notification_configuration.rb +2 -2
  23. data/lib/aws/auto_scaling/notification_configuration_collection.rb +37 -38
  24. data/lib/aws/auto_scaling/scaling_policy.rb +3 -3
  25. data/lib/aws/auto_scaling/scaling_policy_collection.rb +6 -6
  26. data/lib/aws/auto_scaling/scaling_policy_options.rb +8 -7
  27. data/lib/aws/auto_scaling/scheduled_action.rb +3 -3
  28. data/lib/aws/auto_scaling/scheduled_action_collection.rb +28 -28
  29. data/lib/aws/auto_scaling/tag_collection.rb +30 -28
  30. data/lib/aws/cloud_formation.rb +95 -94
  31. data/lib/aws/cloud_formation/client.rb +136 -133
  32. data/lib/aws/cloud_formation/config.rb +1 -1
  33. data/lib/aws/cloud_formation/stack.rb +37 -37
  34. data/lib/aws/cloud_formation/stack_collection.rb +28 -27
  35. data/lib/aws/cloud_formation/stack_event.rb +9 -11
  36. data/lib/aws/cloud_formation/stack_output.rb +1 -1
  37. data/lib/aws/cloud_formation/stack_resource.rb +6 -6
  38. data/lib/aws/cloud_formation/stack_resource_collection.rb +11 -12
  39. data/lib/aws/cloud_formation/stack_resource_summary_collection.rb +11 -11
  40. data/lib/aws/cloud_formation/stack_summary_collection.rb +39 -39
  41. data/lib/aws/cloud_front.rb +21 -21
  42. data/lib/aws/cloud_front/client.rb +853 -652
  43. data/lib/aws/cloud_front/request.rb +3 -0
  44. data/lib/aws/cloud_search.rb +22 -22
  45. data/lib/aws/cloud_search/client.rb +322 -315
  46. data/lib/aws/cloud_search/config.rb +1 -1
  47. data/lib/aws/cloud_watch.rb +39 -39
  48. data/lib/aws/cloud_watch/alarm.rb +55 -37
  49. data/lib/aws/cloud_watch/alarm_collection.rb +18 -18
  50. data/lib/aws/cloud_watch/alarm_history_item_collection.rb +2 -2
  51. data/lib/aws/cloud_watch/client.rb +360 -146
  52. data/lib/aws/cloud_watch/config.rb +1 -1
  53. data/lib/aws/cloud_watch/metric.rb +15 -15
  54. data/lib/aws/cloud_watch/metric_alarm_collection.rb +17 -17
  55. data/lib/aws/cloud_watch/metric_collection.rb +16 -16
  56. data/lib/aws/cloud_watch/metric_statistics.rb +11 -11
  57. data/lib/aws/core.rb +243 -225
  58. data/lib/aws/core/async_handle.rb +13 -13
  59. data/lib/aws/core/cacheable.rb +14 -15
  60. data/lib/aws/core/client.rb +40 -15
  61. data/lib/aws/core/collection.rb +42 -46
  62. data/lib/aws/core/collection/with_limit_and_next_token.rb +1 -1
  63. data/lib/aws/core/collection/with_next_token.rb +1 -1
  64. data/lib/aws/core/configuration.rb +97 -133
  65. data/lib/aws/core/credential_providers.rb +16 -16
  66. data/lib/aws/core/data.rb +23 -23
  67. data/lib/aws/core/http/connection_pool.rb +348 -0
  68. data/lib/aws/core/http/net_http_handler.rb +17 -26
  69. data/lib/aws/core/http/patch.rb +102 -0
  70. data/lib/aws/core/http/request.rb +13 -19
  71. data/lib/aws/core/http/response.rb +2 -2
  72. data/lib/aws/core/lazy_error_classes.rb +17 -17
  73. data/lib/aws/core/log_formatter.rb +70 -104
  74. data/lib/aws/core/options/json_serializer.rb +1 -1
  75. data/lib/aws/core/options/validator.rb +4 -4
  76. data/lib/aws/core/page_result.rb +8 -8
  77. data/lib/aws/core/policy.rb +49 -49
  78. data/lib/aws/core/region.rb +72 -0
  79. data/lib/aws/core/region_collection.rb +106 -0
  80. data/lib/aws/core/resource.rb +5 -5
  81. data/lib/aws/core/response.rb +20 -17
  82. data/lib/aws/core/rest_request_builder.rb +4 -4
  83. data/lib/aws/core/service_interface.rb +24 -2
  84. data/lib/aws/core/signature/version_3.rb +2 -2
  85. data/lib/aws/core/uri_escape.rb +1 -1
  86. data/lib/aws/core/xml/frame_stack.rb +1 -1
  87. data/lib/aws/core/xml/grammar.rb +3 -4
  88. data/lib/aws/core/xml/sax_handlers/libxml.rb +2 -2
  89. data/lib/aws/core/xml/sax_handlers/nokogiri.rb +3 -3
  90. data/lib/aws/core/xml/sax_handlers/rexml.rb +5 -5
  91. data/lib/aws/core/xml/stub.rb +9 -9
  92. data/lib/aws/data_pipeline.rb +21 -21
  93. data/lib/aws/data_pipeline/client.rb +189 -133
  94. data/lib/aws/data_pipeline/config.rb +1 -1
  95. data/lib/aws/direct_connect.rb +74 -0
  96. data/lib/aws/direct_connect/client.rb +253 -0
  97. data/lib/aws/direct_connect/config.rb +18 -0
  98. data/lib/aws/direct_connect/errors.rb +22 -0
  99. data/lib/aws/direct_connect/request.rb +27 -0
  100. data/lib/aws/dynamo_db.rb +71 -69
  101. data/lib/aws/dynamo_db/attribute_collection.rb +53 -58
  102. data/lib/aws/dynamo_db/batch_get.rb +23 -23
  103. data/lib/aws/dynamo_db/batch_write.rb +43 -43
  104. data/lib/aws/dynamo_db/binary.rb +9 -9
  105. data/lib/aws/dynamo_db/client.rb +494 -509
  106. data/lib/aws/dynamo_db/client_base.rb +91 -0
  107. data/lib/aws/dynamo_db/client_v2.rb +825 -0
  108. data/lib/aws/dynamo_db/config.rb +1 -1
  109. data/lib/aws/dynamo_db/item.rb +10 -10
  110. data/lib/aws/dynamo_db/item_collection.rb +75 -75
  111. data/lib/aws/dynamo_db/table.rb +85 -85
  112. data/lib/aws/dynamo_db/table_collection.rb +13 -13
  113. data/lib/aws/ec2.rb +132 -142
  114. data/lib/aws/ec2/attachment.rb +31 -36
  115. data/lib/aws/ec2/attachment_collection.rb +1 -1
  116. data/lib/aws/ec2/availability_zone.rb +4 -4
  117. data/lib/aws/ec2/client.rb +2272 -2125
  118. data/lib/aws/ec2/config.rb +1 -1
  119. data/lib/aws/ec2/customer_gateway.rb +6 -6
  120. data/lib/aws/ec2/customer_gateway_collection.rb +6 -6
  121. data/lib/aws/ec2/dhcp_options.rb +3 -3
  122. data/lib/aws/ec2/dhcp_options_collection.rb +10 -10
  123. data/lib/aws/ec2/elastic_ip.rb +15 -15
  124. data/lib/aws/ec2/elastic_ip_collection.rb +11 -15
  125. data/lib/aws/ec2/export_task.rb +4 -4
  126. data/lib/aws/ec2/export_task_collection.rb +11 -11
  127. data/lib/aws/ec2/filtered_collection.rb +6 -8
  128. data/lib/aws/ec2/image.rb +46 -40
  129. data/lib/aws/ec2/image_collection.rb +44 -52
  130. data/lib/aws/ec2/instance.rb +64 -62
  131. data/lib/aws/ec2/instance_collection.rb +47 -50
  132. data/lib/aws/ec2/internet_gateway.rb +6 -6
  133. data/lib/aws/ec2/internet_gateway/attachment.rb +13 -13
  134. data/lib/aws/ec2/internet_gateway_collection.rb +3 -3
  135. data/lib/aws/ec2/key_pair.rb +3 -3
  136. data/lib/aws/ec2/key_pair_collection.rb +12 -12
  137. data/lib/aws/ec2/network_acl.rb +39 -39
  138. data/lib/aws/ec2/network_acl/association.rb +2 -2
  139. data/lib/aws/ec2/network_acl/entry.rb +22 -22
  140. data/lib/aws/ec2/network_acl_collection.rb +2 -2
  141. data/lib/aws/ec2/network_interface.rb +13 -4
  142. data/lib/aws/ec2/network_interface/attachment.rb +3 -3
  143. data/lib/aws/ec2/network_interface_collection.rb +5 -5
  144. data/lib/aws/ec2/permission_collection.rb +1 -1
  145. data/lib/aws/ec2/region.rb +6 -6
  146. data/lib/aws/ec2/region_collection.rb +1 -1
  147. data/lib/aws/ec2/reserved_instances_collection.rb +2 -2
  148. data/lib/aws/ec2/reserved_instances_offering_collection.rb +2 -2
  149. data/lib/aws/ec2/resource_tag_collection.rb +5 -5
  150. data/lib/aws/ec2/route_table.rb +14 -14
  151. data/lib/aws/ec2/route_table/association.rb +22 -22
  152. data/lib/aws/ec2/route_table/route.rb +8 -8
  153. data/lib/aws/ec2/route_table_collection.rb +3 -3
  154. data/lib/aws/ec2/security_group.rb +39 -41
  155. data/lib/aws/ec2/security_group_collection.rb +19 -21
  156. data/lib/aws/ec2/snapshot.rb +3 -3
  157. data/lib/aws/ec2/snapshot_collection.rb +11 -12
  158. data/lib/aws/ec2/subnet.rb +2 -2
  159. data/lib/aws/ec2/subnet_collection.rb +17 -17
  160. data/lib/aws/ec2/tag_collection.rb +1 -1
  161. data/lib/aws/ec2/tagged_collection.rb +7 -7
  162. data/lib/aws/ec2/tagged_item.rb +10 -10
  163. data/lib/aws/ec2/volume.rb +16 -16
  164. data/lib/aws/ec2/volume_collection.rb +9 -12
  165. data/lib/aws/ec2/vpc.rb +6 -6
  166. data/lib/aws/ec2/vpc_collection.rb +10 -10
  167. data/lib/aws/ec2/vpn_connection.rb +4 -4
  168. data/lib/aws/ec2/vpn_connection/telemetry.rb +1 -1
  169. data/lib/aws/ec2/vpn_connection_collection.rb +6 -6
  170. data/lib/aws/ec2/vpn_gateway.rb +2 -2
  171. data/lib/aws/ec2/vpn_gateway_collection.rb +5 -5
  172. data/lib/aws/elastic_beanstalk.rb +12 -12
  173. data/lib/aws/elastic_beanstalk/client.rb +376 -368
  174. data/lib/aws/elastic_beanstalk/config.rb +1 -1
  175. data/lib/aws/elastic_transcoder.rb +5 -5
  176. data/lib/aws/elastic_transcoder/client.rb +283 -283
  177. data/lib/aws/elastic_transcoder/config.rb +1 -1
  178. data/lib/aws/elasticache.rb +12 -12
  179. data/lib/aws/elasticache/client.rb +484 -479
  180. data/lib/aws/elasticache/config.rb +1 -1
  181. data/lib/aws/elb.rb +23 -23
  182. data/lib/aws/elb/availability_zone_collection.rb +34 -34
  183. data/lib/aws/elb/backend_server_policy_collection.rb +24 -24
  184. data/lib/aws/elb/client.rb +153 -153
  185. data/lib/aws/elb/config.rb +1 -1
  186. data/lib/aws/elb/errors.rb +1 -1
  187. data/lib/aws/elb/instance_collection.rb +20 -25
  188. data/lib/aws/elb/listener.rb +3 -3
  189. data/lib/aws/elb/listener_collection.rb +8 -8
  190. data/lib/aws/elb/load_balancer.rb +15 -16
  191. data/lib/aws/elb/load_balancer_collection.rb +36 -24
  192. data/lib/aws/elb/load_balancer_policy.rb +1 -1
  193. data/lib/aws/elb/load_balancer_policy_collection.rb +5 -5
  194. data/lib/aws/emr.rb +28 -26
  195. data/lib/aws/emr/client.rb +165 -149
  196. data/lib/aws/emr/config.rb +1 -1
  197. data/lib/aws/emr/instance_group.rb +1 -1
  198. data/lib/aws/emr/instance_group_collection.rb +1 -1
  199. data/lib/aws/emr/job_flow.rb +27 -26
  200. data/lib/aws/emr/job_flow_collection.rb +34 -34
  201. data/lib/aws/errors.rb +7 -7
  202. data/lib/aws/glacier.rb +21 -21
  203. data/lib/aws/glacier/archive_collection.rb +2 -2
  204. data/lib/aws/glacier/client.rb +139 -140
  205. data/lib/aws/glacier/config.rb +1 -1
  206. data/lib/aws/glacier/vault.rb +2 -2
  207. data/lib/aws/glacier/vault_collection.rb +1 -1
  208. data/lib/aws/iam.rb +133 -144
  209. data/lib/aws/iam/access_key.rb +17 -17
  210. data/lib/aws/iam/access_key_collection.rb +22 -22
  211. data/lib/aws/iam/account_alias_collection.rb +2 -2
  212. data/lib/aws/iam/client.rb +429 -420
  213. data/lib/aws/iam/collection.rb +1 -1
  214. data/lib/aws/iam/config.rb +2 -2
  215. data/lib/aws/iam/group.rb +8 -8
  216. data/lib/aws/iam/group_collection.rb +16 -16
  217. data/lib/aws/iam/group_policy_collection.rb +6 -6
  218. data/lib/aws/iam/group_user_collection.rb +3 -3
  219. data/lib/aws/iam/mfa_device.rb +1 -1
  220. data/lib/aws/iam/mfa_device_collection.rb +9 -9
  221. data/lib/aws/iam/policy_collection.rb +4 -4
  222. data/lib/aws/iam/resource.rb +2 -2
  223. data/lib/aws/iam/server_certificate.rb +1 -1
  224. data/lib/aws/iam/server_certificate_collection.rb +15 -15
  225. data/lib/aws/iam/signing_certificate.rb +29 -29
  226. data/lib/aws/iam/signing_certificate_collection.rb +23 -23
  227. data/lib/aws/iam/user.rb +33 -38
  228. data/lib/aws/iam/user_collection.rb +27 -27
  229. data/lib/aws/iam/user_group_collection.rb +3 -3
  230. data/lib/aws/iam/user_policy_collection.rb +6 -6
  231. data/lib/aws/iam/virtual_mfa_device.rb +12 -12
  232. data/lib/aws/iam/virtual_mfa_device_collection.rb +4 -4
  233. data/lib/aws/import_export.rb +22 -21
  234. data/lib/aws/import_export/client.rb +47 -43
  235. data/lib/aws/ops_works.rb +5 -5
  236. data/lib/aws/ops_works/client.rb +484 -438
  237. data/lib/aws/ops_works/config.rb +1 -1
  238. data/lib/aws/rails.rb +34 -34
  239. data/lib/aws/rds.rb +18 -18
  240. data/lib/aws/rds/client.rb +1286 -1277
  241. data/lib/aws/rds/config.rb +1 -1
  242. data/lib/aws/rds/db_instance.rb +15 -4
  243. data/lib/aws/rds/db_snapshot.rb +1 -1
  244. data/lib/aws/record.rb +50 -24
  245. data/lib/aws/record/abstract_base.rb +52 -60
  246. data/lib/aws/record/attributes.rb +79 -79
  247. data/lib/aws/record/conversion.rb +1 -1
  248. data/lib/aws/record/dirty_tracking.rb +69 -67
  249. data/lib/aws/record/errors.rb +21 -21
  250. data/lib/aws/record/exceptions.rb +2 -2
  251. data/lib/aws/record/hash_model.rb +20 -21
  252. data/lib/aws/record/hash_model/attributes.rb +13 -15
  253. data/lib/aws/record/hash_model/finder_methods.rb +46 -46
  254. data/lib/aws/record/hash_model/scope.rb +31 -31
  255. data/lib/aws/record/model.rb +136 -136
  256. data/lib/aws/record/model/attributes.rb +57 -59
  257. data/lib/aws/record/model/finder_methods.rb +67 -67
  258. data/lib/aws/record/model/scope.rb +48 -49
  259. data/lib/aws/record/naming.rb +1 -1
  260. data/lib/aws/record/scope.rb +23 -19
  261. data/lib/aws/record/validations.rb +253 -271
  262. data/lib/aws/record/validator.rb +3 -3
  263. data/lib/aws/record/validators/acceptance.rb +1 -3
  264. data/lib/aws/record/validators/block.rb +1 -3
  265. data/lib/aws/record/validators/confirmation.rb +1 -3
  266. data/lib/aws/record/validators/count.rb +2 -4
  267. data/lib/aws/record/validators/exclusion.rb +2 -4
  268. data/lib/aws/record/validators/format.rb +2 -4
  269. data/lib/aws/record/validators/inclusion.rb +1 -3
  270. data/lib/aws/record/validators/length.rb +5 -7
  271. data/lib/aws/record/validators/method.rb +1 -3
  272. data/lib/aws/record/validators/numericality.rb +6 -8
  273. data/lib/aws/record/validators/presence.rb +1 -3
  274. data/lib/aws/redshift.rb +14 -14
  275. data/lib/aws/redshift/client.rb +596 -592
  276. data/lib/aws/redshift/config.rb +1 -1
  277. data/lib/aws/route_53.rb +30 -30
  278. data/lib/aws/route_53/change_batch.rb +7 -7
  279. data/lib/aws/route_53/client.rb +188 -152
  280. data/lib/aws/route_53/hosted_zone.rb +4 -4
  281. data/lib/aws/route_53/hosted_zone_collection.rb +7 -7
  282. data/lib/aws/route_53/resource_record_set.rb +10 -10
  283. data/lib/aws/route_53/resource_record_set_collection.rb +6 -6
  284. data/lib/aws/s3.rb +79 -79
  285. data/lib/aws/s3/access_control_list.rb +44 -36
  286. data/lib/aws/s3/acl_options.rb +51 -51
  287. data/lib/aws/s3/bucket.rb +146 -146
  288. data/lib/aws/s3/bucket_collection.rb +21 -21
  289. data/lib/aws/s3/bucket_lifecycle_configuration.rb +81 -82
  290. data/lib/aws/s3/bucket_tag_collection.rb +4 -2
  291. data/lib/aws/s3/cipher_io.rb +5 -4
  292. data/lib/aws/s3/client.rb +89 -84
  293. data/lib/aws/s3/client/xml.rb +1 -1
  294. data/lib/aws/s3/config.rb +7 -1
  295. data/lib/aws/s3/cors_rule.rb +2 -0
  296. data/lib/aws/s3/cors_rule_collection.rb +42 -40
  297. data/lib/aws/s3/data_options.rb +16 -11
  298. data/lib/aws/s3/encryption_utils.rb +2 -2
  299. data/lib/aws/s3/errors.rb +7 -7
  300. data/lib/aws/s3/multipart_upload.rb +30 -33
  301. data/lib/aws/s3/multipart_upload_collection.rb +8 -6
  302. data/lib/aws/s3/object_collection.rb +35 -35
  303. data/lib/aws/s3/object_metadata.rb +6 -6
  304. data/lib/aws/s3/object_version.rb +4 -4
  305. data/lib/aws/s3/object_version_collection.rb +15 -15
  306. data/lib/aws/s3/policy.rb +2 -2
  307. data/lib/aws/s3/prefixed_collection.rb +9 -5
  308. data/lib/aws/s3/presigned_post.rb +39 -37
  309. data/lib/aws/s3/request.rb +11 -11
  310. data/lib/aws/s3/s3_object.rb +210 -200
  311. data/lib/aws/s3/tree.rb +25 -27
  312. data/lib/aws/s3/tree/child_collection.rb +3 -3
  313. data/lib/aws/s3/tree/leaf_node.rb +2 -2
  314. data/lib/aws/s3/tree/parent.rb +1 -1
  315. data/lib/aws/s3/website_configuration.rb +13 -13
  316. data/lib/aws/simple_db.rb +83 -83
  317. data/lib/aws/simple_db/attribute.rb +9 -7
  318. data/lib/aws/simple_db/attribute_collection.rb +22 -13
  319. data/lib/aws/simple_db/client.rb +107 -107
  320. data/lib/aws/simple_db/config.rb +7 -1
  321. data/lib/aws/simple_db/consistent_read_option.rb +5 -5
  322. data/lib/aws/simple_db/domain.rb +4 -2
  323. data/lib/aws/simple_db/domain_collection.rb +4 -4
  324. data/lib/aws/simple_db/domain_metadata.rb +5 -5
  325. data/lib/aws/simple_db/errors.rb +9 -9
  326. data/lib/aws/simple_db/item.rb +5 -5
  327. data/lib/aws/simple_db/item_collection.rb +83 -81
  328. data/lib/aws/simple_db/item_data.rb +4 -4
  329. data/lib/aws/simple_db/put_attributes.rb +3 -3
  330. data/lib/aws/simple_email_service.rb +140 -140
  331. data/lib/aws/simple_email_service/client.rb +82 -76
  332. data/lib/aws/simple_email_service/config.rb +1 -2
  333. data/lib/aws/simple_email_service/email_address_collection.rb +3 -3
  334. data/lib/aws/simple_email_service/identity.rb +8 -8
  335. data/lib/aws/simple_email_service/quotas.rb +8 -6
  336. data/lib/aws/simple_workflow.rb +106 -106
  337. data/lib/aws/simple_workflow/activity_task.rb +15 -22
  338. data/lib/aws/simple_workflow/activity_task_collection.rb +15 -15
  339. data/lib/aws/simple_workflow/activity_type.rb +23 -23
  340. data/lib/aws/simple_workflow/activity_type_collection.rb +23 -23
  341. data/lib/aws/simple_workflow/client.rb +1004 -956
  342. data/lib/aws/simple_workflow/config.rb +1 -1
  343. data/lib/aws/simple_workflow/count.rb +5 -5
  344. data/lib/aws/simple_workflow/decision_task.rb +129 -129
  345. data/lib/aws/simple_workflow/decision_task_collection.rb +59 -59
  346. data/lib/aws/simple_workflow/domain.rb +11 -11
  347. data/lib/aws/simple_workflow/domain_collection.rb +26 -26
  348. data/lib/aws/simple_workflow/history_event.rb +32 -32
  349. data/lib/aws/simple_workflow/history_event_collection.rb +3 -3
  350. data/lib/aws/simple_workflow/option_formatters.rb +5 -5
  351. data/lib/aws/simple_workflow/request.rb +1 -1
  352. data/lib/aws/simple_workflow/resource.rb +1 -1
  353. data/lib/aws/simple_workflow/type.rb +8 -8
  354. data/lib/aws/simple_workflow/type_collection.rb +15 -15
  355. data/lib/aws/simple_workflow/workflow_execution.rb +70 -72
  356. data/lib/aws/simple_workflow/workflow_execution_collection.rb +130 -130
  357. data/lib/aws/simple_workflow/workflow_type.rb +27 -25
  358. data/lib/aws/simple_workflow/workflow_type_collection.rb +20 -20
  359. data/lib/aws/sns.rb +25 -25
  360. data/lib/aws/sns/client.rb +55 -55
  361. data/lib/aws/sns/config.rb +1 -1
  362. data/lib/aws/sns/policy.rb +1 -1
  363. data/lib/aws/sns/subscription.rb +7 -7
  364. data/lib/aws/sns/subscription_collection.rb +5 -5
  365. data/lib/aws/sns/topic.rb +49 -49
  366. data/lib/aws/sns/topic_collection.rb +2 -2
  367. data/lib/aws/sns/topic_subscription_collection.rb +5 -5
  368. data/lib/aws/sqs.rb +20 -20
  369. data/lib/aws/sqs/client.rb +78 -78
  370. data/lib/aws/sqs/config.rb +1 -1
  371. data/lib/aws/sqs/errors.rb +12 -12
  372. data/lib/aws/sqs/queue.rb +66 -67
  373. data/lib/aws/sqs/queue_collection.rb +16 -8
  374. data/lib/aws/sqs/received_message.rb +7 -6
  375. data/lib/aws/storage_gateway.rb +21 -21
  376. data/lib/aws/storage_gateway/client.rb +269 -202
  377. data/lib/aws/storage_gateway/config.rb +1 -1
  378. data/lib/aws/sts.rb +10 -8
  379. data/lib/aws/sts/client.rb +35 -35
  380. data/lib/aws/sts/session.rb +3 -3
  381. data/lib/aws/version.rb +1 -2
  382. metadata +23 -21
  383. data/lib/aws/core/autoloader.rb +0 -64
  384. data/lib/net/http/connection_pool.rb +0 -226
  385. data/lib/net/http/connection_pool/connection.rb +0 -189
  386. data/lib/net/http/connection_pool/session.rb +0 -126
@@ -13,6 +13,6 @@
13
13
 
14
14
  AWS::Core::Configuration.module_eval do
15
15
 
16
- add_service 'RDS', 'rds', 'rds.us-east-1.amazonaws.com'
16
+ add_service 'RDS', 'rds', 'rds.%s.amazonaws.com'
17
17
 
18
18
  end
@@ -59,6 +59,8 @@ module AWS
59
59
  #
60
60
  # @attr_reader [String] character_set_name
61
61
  #
62
+ # @attr_reader [String,nil] vpc_id
63
+ #
62
64
  class DBInstance < Core::Resource
63
65
 
64
66
  # @param [String] db_instance_id
@@ -75,6 +77,8 @@ module AWS
75
77
 
76
78
  alias_method :db_instance_id, :db_instance_identifier
77
79
 
80
+ attribute :vpc_id, :from => [:db_subnet_group, :vpc_id], :static => true
81
+
78
82
  attribute :allocated_storage, :static => true, :alias => :size
79
83
 
80
84
  attribute :auto_minor_version_upgrade
@@ -136,8 +140,15 @@ module AWS
136
140
  resp.data[:db_instances].find{|j| j[:db_instance_identifier] == id }
137
141
  end
138
142
 
143
+ # @return [EC2::VPC,nil]
144
+ def vpc
145
+ if vpc_id
146
+ EC2::VPC.new(vpc_id, :config => config)
147
+ end
148
+ end
149
+
139
150
  # Modifies the database instance.
140
- # @note You do not need to set +:db_instance_identifier+.
151
+ # @note You do not need to set `:db_instance_identifier`.
141
152
  # @see Client#modify_db_instance
142
153
  # @param (see Client#modify_db_instance)
143
154
  def modify options = {}
@@ -164,9 +175,9 @@ module AWS
164
175
 
165
176
  # Reboots this databse instance.
166
177
  # @param [Hash] options
167
- # @option options [Boolean] :force_failover When +true+, the reboot will be
178
+ # @option options [Boolean] :force_failover When `true`, the reboot will be
168
179
  # conducted through a MultiAZ failover. Constraint: You cannot
169
- # specify +true+ if the instance is not configured for MultiAZ.
180
+ # specify `true` if the instance is not configured for MultiAZ.
170
181
  # @return [nil]
171
182
  def reboot options = {}
172
183
  client.reboot_db_instance(options.merge(:db_instance_identifier => id))
@@ -180,7 +191,7 @@ module AWS
180
191
  nil
181
192
  end
182
193
 
183
- # @return [Boolean] Returns +true+ if the db instance exists.
194
+ # @return [Boolean] Returns `true` if the db instance exists.
184
195
  def exists?
185
196
  begin
186
197
  get_resource
@@ -136,7 +136,7 @@ module AWS
136
136
  nil
137
137
  end
138
138
 
139
- # @return [Boolean] Returns +true+ if the db snapshot exists.
139
+ # @return [Boolean] Returns `true` if the db snapshot exists.
140
140
  def exists?
141
141
  begin
142
142
  get_resource
@@ -15,32 +15,58 @@ require 'set'
15
15
 
16
16
  module AWS
17
17
 
18
- # AWS::Record is an ORM built on top of AWS services.
18
+ # AWS::Record is an ORM built on top of AWS services.
19
19
  module Record
20
20
 
21
- AWS.register_autoloads(self) do
22
- autoload :Base, 'model'
23
- autoload :Model, 'model'
24
- autoload :HashModel, 'hash_model'
25
- end
21
+ autoload :AbstractBase, 'aws/record/abstract_base'
22
+ autoload :Attributes, 'aws/record/attributes'
23
+ autoload :Base, 'aws/record/model'
24
+ autoload :Conversion, 'aws/record/conversion'
25
+ autoload :DirtyTracking, 'aws/record/dirty_tracking'
26
+ autoload :Errors, 'aws/record/errors'
27
+ autoload :Exceptions, 'aws/record/exceptions'
28
+ autoload :HashModel, 'aws/record/hash_model'
29
+ autoload :Model, 'aws/record/model'
30
+ autoload :Naming, 'aws/record/naming'
31
+ autoload :Scope, 'aws/record/scope'
32
+ autoload :Validations, 'aws/record/validations'
33
+
34
+ # errors
35
+ autoload :InvalidRecordError, 'aws/record/exceptions'
36
+ autoload :EmptyRecordError, 'aws/record/exceptions'
37
+ autoload :UndefinedAttributeError, 'aws/record/exceptions'
38
+
39
+ # validators
40
+ autoload :AcceptanceValidator, 'aws/record/validators/acceptance'
41
+ autoload :BlockValidator, 'aws/record/validators/block'
42
+ autoload :ConfirmationValidator, 'aws/record/validators/confirmation'
43
+ autoload :CountValidator, 'aws/record/validators/count'
44
+ autoload :ExclusionValidator, 'aws/record/validators/exclusion'
45
+ autoload :FormatValidator, 'aws/record/validators/format'
46
+ autoload :InclusionValidator, 'aws/record/validators/inclusion'
47
+ autoload :LengthValidator, 'aws/record/validators/length'
48
+ autoload :MethodValidator, 'aws/record/validators/method'
49
+ autoload :NumericalityValidator, 'aws/record/validators/numericality'
50
+ autoload :PresenceValidator, 'aws/record/validators/presence'
51
+ autoload :Validator, 'aws/record/validator'
26
52
 
27
53
  # @private
28
54
  class RecordNotFound < StandardError; end
29
-
55
+
30
56
  # Sets a prefix to be applied to all SimpleDB domains associated with
31
57
  # AWS::Record::Base classes.
32
58
  #
33
- # AWS::Record.domain_prefix = 'production_'
59
+ # AWS::Record.domain_prefix = 'production_'
34
60
  #
35
- # class Product < AWS::Record::Base
36
- # set_shard_name 'products'
37
- # end
61
+ # class Product < AWS::Record::Base
62
+ # set_shard_name 'products'
63
+ # end
38
64
  #
39
- # p = Product.new
40
- # p.shard #=> 'products'
41
- # p.save # the product is persisted to the 'production-products' domain
65
+ # p = Product.new
66
+ # p.shard #=> 'products'
67
+ # p.save # the product is persisted to the 'production-products' domain
42
68
  #
43
- # @param [String] prefix A prefix to append to all domains. This is useful
69
+ # @param [String] prefix A prefix to append to all domains. This is useful
44
70
  # for grouping domains used by one application with a single prefix.
45
71
  #
46
72
  def self.domain_prefix= prefix
@@ -56,15 +82,15 @@ module AWS
56
82
  # with {AWS::Record::HashModel} and {AWS::Record::ListModel}
57
83
  # classes.
58
84
  #
59
- # AWS::Record.table_prefix = 'production_'
85
+ # AWS::Record.table_prefix = 'production_'
60
86
  #
61
- # class Product < AWS::Record::HashModel
62
- # set_shard_name 'products'
63
- # end
87
+ # class Product < AWS::Record::HashModel
88
+ # set_shard_name 'products'
89
+ # end
64
90
  #
65
- # p = Product.new
66
- # p.shard #=> 'products'
67
- # p.save # the product is persisted to the 'production-products' table
91
+ # p = Product.new
92
+ # p.shard #=> 'products'
93
+ # p.save # the product is persisted to the 'production-products' table
68
94
  #
69
95
  # @param [String] prefix A prefix to append to all tables. This is
70
96
  # useful for grouping tables used by one application with a
@@ -79,7 +105,7 @@ module AWS
79
105
  @table_prefix
80
106
  end
81
107
 
82
- # A utility method for casting values into an array.
108
+ # A utility method for casting values into an array.
83
109
  #
84
110
  # * nil is returned as an empty array, []
85
111
  # * Arrays are returned unmodified
@@ -97,7 +123,7 @@ module AWS
97
123
  end
98
124
  end
99
125
 
100
- # A utility method for casting values into
126
+ # A utility method for casting values into
101
127
  #
102
128
  # * Sets are returned unmodified
103
129
  # * everything else is passed through #{as_array} and then into a new Set
@@ -14,14 +14,6 @@
14
14
  require 'uuidtools'
15
15
  require 'set'
16
16
 
17
- require 'aws/record/scope'
18
- require 'aws/record/naming'
19
- require 'aws/record/validations'
20
- require 'aws/record/dirty_tracking'
21
- require 'aws/record/conversion'
22
- require 'aws/record/errors'
23
- require 'aws/record/exceptions'
24
-
25
17
  module AWS
26
18
  module Record
27
19
  module AbstractBase
@@ -46,7 +38,7 @@ module AWS
46
38
  #
47
39
  # @param [Hash] attributes Attributes that should be bulk assigned
48
40
  # to this record. You can also specify the shard (i.e. domain
49
- # or table) this record should persist to via +:shard+).
41
+ # or table) this record should persist to via `:shard`).
50
42
  #
51
43
  # @option attributes [String] :shard The domain/table this record
52
44
  # should persist to. If this is omitted, it will persist to the
@@ -100,7 +92,7 @@ module AWS
100
92
 
101
93
  # Acts like {#update} but does not call {#save}.
102
94
  #
103
- # record.attributes = { :name => 'abc', :age => 20 }
95
+ # record.attributes = { :name => 'abc', :age => 20 }
104
96
  #
105
97
  # @param [Hash] attributes A hash of attributes to set on this record
106
98
  # without calling save.
@@ -213,16 +205,16 @@ module AWS
213
205
  # If you define a custom setter, you use #[]= to set the value
214
206
  # on the record.
215
207
  #
216
- # class Book < AWS::Record::Model
208
+ # class Book < AWS::Record::Model
217
209
  #
218
- # string_attr :name
210
+ # string_attr :name
219
211
  #
220
- # # replace the default #author= method
221
- # def author= name
222
- # self['author'] = name.blank? ? 'Anonymous' : name
223
- # end
212
+ # # replace the default #author= method
213
+ # def author= name
214
+ # self['author'] = name.blank? ? 'Anonymous' : name
215
+ # end
224
216
  #
225
- # end
217
+ # end
226
218
  #
227
219
  # @param [String,Symbol] The attribute name to set a value for
228
220
  # @param attribute_value The value to assign.
@@ -247,27 +239,27 @@ module AWS
247
239
 
248
240
  # Returns the typecasted value for the named attribute.
249
241
  #
250
- # book = Book.new(:title => 'My Book')
251
- # book['title'] #=> 'My Book'
252
- # book.title #=> 'My Book'
242
+ # book = Book.new(:title => 'My Book')
243
+ # book['title'] #=> 'My Book'
244
+ # book.title #=> 'My Book'
253
245
  #
254
- # === Intended Use
246
+ # ### Intended Use
255
247
  #
256
248
  # This method's primary use is for getting/setting the value for
257
249
  # an attribute inside a custom method:
258
250
  #
259
- # class Book < AWS::Record::Model
251
+ # class Book < AWS::Record::Model
260
252
  #
261
- # string_attr :title
253
+ # string_attr :title
262
254
  #
263
- # def title
264
- # self['title'] ? self['title'].upcase : nil
265
- # end
255
+ # def title
256
+ # self['title'] ? self['title'].upcase : nil
257
+ # end
266
258
  #
267
- # end
259
+ # end
268
260
  #
269
- # book = Book.new(:title => 'My Book')
270
- # book.title #=> 'MY BOOK'
261
+ # book = Book.new(:title => 'My Book')
262
+ # book.title #=> 'MY BOOK'
271
263
  #
272
264
  # @param [String,Symbol] attribute_name The name of the attribute to fetch
273
265
  # a value for.
@@ -527,25 +519,25 @@ module AWS
527
519
 
528
520
  # Adds a scoped finder to this class.
529
521
  #
530
- # class Book < AWS::Record::Model
531
- # scope :top_10, order(:popularity, :desc).limit(10)
532
- # end
522
+ # class Book < AWS::Record::Model
523
+ # scope :top_10, order(:popularity, :desc).limit(10)
524
+ # end
533
525
  #
534
- # Book.top_10.to_a
535
- # #=> [#<Book...>, #<Book...>]
526
+ # Book.top_10.to_a
527
+ # #=> [#<Book...>, #<Book...>]
536
528
  #
537
- # Book.top_10.first
538
- # #=> #<Book...>
529
+ # Book.top_10.first
530
+ # #=> #<Book...>
539
531
  #
540
532
  # You can also provide a block that accepts params for the scoped
541
533
  # finder. This block should return a scope.
542
534
  #
543
- # class Book < AWS::Record::Model
544
- # scope :by_author, lambda {|name| where(:author => name) }
545
- # end
535
+ # class Book < AWS::Record::Model
536
+ # scope :by_author, lambda {|name| where(:author => name) }
537
+ # end
546
538
  #
547
- # # top 10 books by the author 'John Doe'
548
- # Book.by_author('John Doe').top_10
539
+ # # top 10 books by the author 'John Doe'
540
+ # Book.by_author('John Doe').top_10
549
541
  #
550
542
  # @param [Symbol] name The name of the scope. Scope names should be
551
543
  # method-safe and should not conflict with any other class methods.
@@ -564,17 +556,17 @@ module AWS
564
556
  # The {#save} method is called on the object(s) after construction.
565
557
  # The object(s) are returned wether or not the object(s) are valid.
566
558
  #
567
- # class Book < AWS::Record::Model
568
- # string_attr :title
569
- # end
559
+ # class Book < AWS::Record::Model
560
+ # string_attr :title
561
+ # end
570
562
  #
571
- # book = Book.create(:title => "The big book of tests")
572
- # book.persisted?
573
- # #=> true
563
+ # book = Book.create(:title => "The big book of tests")
564
+ # book.persisted?
565
+ # #=> true
574
566
  #
575
- # books = Book.create([{:title => 'abc'}, {:title => 'xyz'}])
576
- # books.each(&:persisted?)
577
- # #=> [true, true]
567
+ # books = Book.create([{:title => 'abc'}, {:title => 'xyz'}])
568
+ # books.each(&:persisted?)
569
+ # #=> [true, true]
578
570
  #
579
571
  def create attributes = {}
580
572
  create_impl(attributes, :create, :save)
@@ -584,17 +576,17 @@ module AWS
584
576
  # The {#save!} method is called on the object(s) after construction.
585
577
  # If the object(s) are not valid, then an error is raised.
586
578
  #
587
- # class Book < AWS::Record::Model
588
- # string_attr :title
589
- # validates_presence_of :title
590
- # end
579
+ # class Book < AWS::Record::Model
580
+ # string_attr :title
581
+ # validates_presence_of :title
582
+ # end
591
583
  #
592
- # book = Book.create!(:title => "The big book of tests")
593
- # book.persisted?
594
- # #=> true
584
+ # book = Book.create!(:title => "The big book of tests")
585
+ # book.persisted?
586
+ # #=> true
595
587
  #
596
- # book = Book.create!()
597
- # #=> raises AWS::Record::InvalidRecordError
588
+ # book = Book.create!()
589
+ # #=> raises AWS::Record::InvalidRecordError
598
590
  #
599
591
  def create! attributes = {}
600
592
  create_impl(attributes, :create!, :save!)
@@ -657,7 +649,7 @@ module AWS
657
649
  @_data[attr_name]
658
650
  end
659
651
 
660
- ## dirty tracking methods
652
+ # dirty tracking methods
661
653
 
662
654
  define_method("#{attr_name}_changed?") do
663
655
  attribute_changed?(attr_name)
@@ -19,15 +19,15 @@ module AWS
19
19
 
20
20
  # Base class for all of the AWS::Record attributes.
21
21
  class BaseAttr
22
-
22
+
23
23
  # @param [Symbol] name Name of this attribute. It should be a name that
24
24
  # is safe to use as a method.
25
25
  # @param [Hash] options
26
- # @option options [String] :persist_as Defaults to the name of the
26
+ # @option options [String] :persist_as Defaults to the name of the
27
27
  # attribute. You can pass a string to specify what the attribute
28
28
  # will be named in the backend storage.
29
29
  # @option options [Boolean] :set (false) When true this attribute can
30
- # accept multiple unique values.
30
+ # accept multiple unique values.
31
31
  def initialize name, options = {}
32
32
  @name = name.to_s
33
33
  @options = options.dup
@@ -35,62 +35,62 @@ module AWS
35
35
  raise ArgumentError, "invalid option :set for #{self.class}"
36
36
  end
37
37
  end
38
-
38
+
39
39
  # @return [String] The name of this attribute
40
40
  attr_reader :name
41
-
41
+
42
42
  # @return [Hash] Attribute options passed to the constructor.
43
43
  attr_reader :options
44
-
45
- # @return [Boolean] Returns true if this attribute can have
44
+
45
+ # @return [Boolean] Returns true if this attribute can have
46
46
  # multiple values.
47
47
  def set?
48
48
  options[:set] ? true : false
49
49
  end
50
-
50
+
51
51
  # @return Returns the default value for this attribute.
52
52
  def default_value
53
53
  options[:default_value]
54
54
  end
55
55
 
56
- # @return [String] Returns the name this attribute will use
56
+ # @return [String] Returns the name this attribute will use
57
57
  # in the storage backend.
58
58
  def persist_as
59
59
  (options[:persist_as] || @name).to_s
60
60
  end
61
-
61
+
62
62
  # @param [Mixed] raw_value A single value to type cast.
63
63
  # @return [Mixed] Returns the type casted value.
64
64
  def type_cast raw_value
65
65
  self.class.type_cast(raw_value, options)
66
66
  end
67
-
67
+
68
68
  # @param [String] serialized_value The serialized string value.
69
69
  # @return [Mixed] Returns a deserialized type-casted value.
70
70
  def deserialize serialized_value
71
71
  self.class.deserialize(serialized_value, options)
72
72
  end
73
-
73
+
74
74
  # Takes the type casted value and serializes it
75
75
  # @param [Mixed] type_casted_value A single value to serialize.
76
76
  # @return [Mixed] Returns the serialized value.
77
77
  def serialize type_casted_value
78
78
  self.class.serialize(type_casted_value, options)
79
79
  end
80
-
80
+
81
81
  # @param [String] serialized_value The raw value returned from AWS.
82
82
  # @return [Mixed] Returns the type-casted deserialized value.
83
83
  def self.deserialize serialized_value, options = {}
84
84
  self.type_cast(serialized_value, options)
85
85
  end
86
-
86
+
87
87
  # @return [Boolean] Returns true if this attribute type can be used
88
- # with the +:set => true+ option. Certain attirbutes can not
88
+ # with the `:set => true` option. Certain attirbutes can not
89
89
  # be represented with multiple values (like BooleanAttr).
90
90
  def self.allow_set?
91
91
  raise NotImplementedError
92
92
  end
93
-
93
+
94
94
  # @private
95
95
  protected
96
96
  def self.expect klass, value, &block
@@ -103,23 +103,23 @@ module AWS
103
103
  end
104
104
 
105
105
  class StringAttr < BaseAttr
106
-
107
- # Returns the value cast to a string. Empty strings are returned as
106
+
107
+ # Returns the value cast to a string. Empty strings are returned as
108
108
  # nil by default. Type casting is done by calling #to_s on the value.
109
109
  #
110
- # string_attr.type_cast(123)
111
- # # => '123'
110
+ # string_attr.type_cast(123)
111
+ # # => '123'
112
112
  #
113
- # string_attr.type_cast('')
114
- # # => nil
113
+ # string_attr.type_cast('')
114
+ # # => nil
115
115
  #
116
- # string_attr.type_cast('', :preserve_empty_strings => true)
117
- # # => ''
116
+ # string_attr.type_cast('', :preserve_empty_strings => true)
117
+ # # => ''
118
118
  #
119
119
  # @param [Mixed] raw_value
120
120
  # @param [Hash] options
121
121
  # @option options [Boolean] :preserve_empty_strings (false) When true,
122
- # empty strings are preserved and not cast to nil.
122
+ # empty strings are preserved and not cast to nil.
123
123
  # @return [String,nil] The type casted value.
124
124
  def self.type_cast raw_value, options = {}
125
125
  case raw_value
@@ -129,7 +129,7 @@ module AWS
129
129
  else raw_value.to_s
130
130
  end
131
131
  end
132
-
132
+
133
133
  # Returns a serialized representation of the string value suitable for
134
134
  # storing in SimpleDB.
135
135
  # @param [String] string
@@ -138,16 +138,16 @@ module AWS
138
138
  def self.serialize string, options = {}
139
139
  unless string.is_a?(String)
140
140
  msg = "expected a String value, got #{string.class}"
141
- raise ArgumentError, msg
141
+ raise ArgumentError, msg
142
142
  end
143
143
  string
144
144
  end
145
-
145
+
146
146
  # @private
147
147
  def self.allow_set?
148
148
  true
149
149
  end
150
-
150
+
151
151
  end
152
152
 
153
153
  class BooleanAttr < BaseAttr
@@ -165,7 +165,7 @@ module AWS
165
165
  case boolean
166
166
  when false then 0
167
167
  when true then 1
168
- else
168
+ else
169
169
  msg = "expected a boolean value, got #{boolean.class}"
170
170
  raise ArgumentError, msg
171
171
  end
@@ -179,15 +179,15 @@ module AWS
179
179
  end
180
180
 
181
181
  class IntegerAttr < BaseAttr
182
-
183
- # Returns value cast to an integer. Empty strings are cast to
182
+
183
+ # Returns value cast to an integer. Empty strings are cast to
184
184
  # nil by default. Type casting is done by calling #to_i on the value.
185
185
  #
186
- # int_attribute.type_cast('123')
187
- # #=> 123
186
+ # int_attribute.type_cast('123')
187
+ # #=> 123
188
188
  #
189
- # int_attribute.type_cast('')
190
- # #=> nil
189
+ # int_attribute.type_cast('')
190
+ # #=> nil
191
191
  #
192
192
  # @param [Mixed] raw_value The value to type cast to an integer.
193
193
  # @return [Integer,nil] Returns the type casted integer or nil
@@ -197,17 +197,17 @@ module AWS
197
197
  when '' then nil
198
198
  when Integer then raw_value
199
199
  else
200
- raw_value.respond_to?(:to_i) ?
200
+ raw_value.respond_to?(:to_i) ?
201
201
  raw_value.to_i :
202
202
  raw_value.to_s.to_i
203
203
  end
204
204
  end
205
-
205
+
206
206
  # Returns a serialized representation of the integer value suitable for
207
207
  # storing in SimpleDB.
208
208
  #
209
- # attribute.serialize(123)
210
- # #=> '123'
209
+ # attribute.serialize(123)
210
+ # #=> '123'
211
211
  #
212
212
  # @param [Integer] integer The number to serialize.
213
213
  # @param [Hash] options
@@ -215,7 +215,7 @@ module AWS
215
215
  def self.serialize integer, options = {}
216
216
  expect(Integer, integer) { integer }
217
217
  end
218
-
218
+
219
219
  # @private
220
220
  def self.allow_set?
221
221
  true
@@ -224,14 +224,14 @@ module AWS
224
224
  end
225
225
 
226
226
  class FloatAttr < BaseAttr
227
-
227
+
228
228
  def self.type_cast raw_value, options = {}
229
229
  case raw_value
230
230
  when nil then nil
231
231
  when '' then nil
232
232
  when Float then raw_value
233
233
  else
234
- raw_value.respond_to?(:to_f) ?
234
+ raw_value.respond_to?(:to_f) ?
235
235
  raw_value.to_f :
236
236
  raw_value.to_s.to_f
237
237
  end
@@ -250,21 +250,21 @@ module AWS
250
250
 
251
251
  class DateAttr < BaseAttr
252
252
 
253
- # Returns value cast to a Date object. Empty strings are cast to
254
- # nil. Values are cast first to strings and then passed to
253
+ # Returns value cast to a Date object. Empty strings are cast to
254
+ # nil. Values are cast first to strings and then passed to
255
255
  # Date.parse. Integers are treated as timestamps.
256
256
  #
257
- # date_attribute.type_cast('2000-01-02T10:11:12Z')
258
- # #=> #<Date: 4903091/2,0,2299161>
257
+ # date_attribute.type_cast('2000-01-02T10:11:12Z')
258
+ # #=> #<Date: 4903091/2,0,2299161>
259
259
  #
260
- # date_attribute.type_cast(1306170146)
261
- # #<Date: 4911409/2,0,2299161>
260
+ # date_attribute.type_cast(1306170146)
261
+ # #<Date: 4911409/2,0,2299161>
262
262
  #
263
- # date_attribute.type_cast('')
264
- # #=> nil
263
+ # date_attribute.type_cast('')
264
+ # #=> nil
265
265
  #
266
- # date_attribute.type_cast(nil)
267
- # #=> nil
266
+ # date_attribute.type_cast(nil)
267
+ # #=> nil
268
268
  #
269
269
  # @param [Mixed] raw_value The value to cast to a Date object.
270
270
  # @param [Hash] options
@@ -274,13 +274,13 @@ module AWS
274
274
  when nil then nil
275
275
  when '' then nil
276
276
  when Date then raw_value
277
- when Integer then
277
+ when Integer then
278
278
  begin
279
279
  Date.parse(Time.at(raw_value).to_s) # assumed timestamp
280
280
  rescue
281
281
  nil
282
282
  end
283
- else
283
+ else
284
284
  begin
285
285
  Date.parse(raw_value.to_s) # Time, DateTime or String
286
286
  rescue
@@ -288,11 +288,11 @@ module AWS
288
288
  end
289
289
  end
290
290
  end
291
-
291
+
292
292
  # Returns a Date object encoded as a string (suitable for sorting).
293
293
  #
294
- # attribute.serialize(DateTime.parse('2001-01-01'))
295
- # #=> '2001-01-01'
294
+ # attribute.serialize(DateTime.parse('2001-01-01'))
295
+ # #=> '2001-01-01'
296
296
  #
297
297
  # @param [Date] date The date to serialize.
298
298
  #
@@ -307,31 +307,31 @@ module AWS
307
307
  end
308
308
  date.strftime('%Y-%m-%d')
309
309
  end
310
-
310
+
311
311
  # @private
312
312
  def self.allow_set?
313
313
  true
314
314
  end
315
-
315
+
316
316
  end
317
317
 
318
318
  class DateTimeAttr < BaseAttr
319
-
320
- # Returns value cast to a DateTime object. Empty strings are cast to
321
- # nil. Values are cast first to strings and then passed to
319
+
320
+ # Returns value cast to a DateTime object. Empty strings are cast to
321
+ # nil. Values are cast first to strings and then passed to
322
322
  # DateTime.parse. Integers are treated as timestamps.
323
323
  #
324
- # datetime_attribute.type_cast('2000-01-02')
325
- # #=> #<DateTime: 4903091/2,0,2299161>
324
+ # datetime_attribute.type_cast('2000-01-02')
325
+ # #=> #<DateTime: 4903091/2,0,2299161>
326
326
  #
327
- # datetime_attribute.type_cast(1306170146)
328
- # #<DateTime: 106086465073/43200,-7/24,2299161>
327
+ # datetime_attribute.type_cast(1306170146)
328
+ # #<DateTime: 106086465073/43200,-7/24,2299161>
329
329
  #
330
- # datetime_attribute.type_cast('')
331
- # #=> nil
330
+ # datetime_attribute.type_cast('')
331
+ # #=> nil
332
332
  #
333
- # datetime_attribute.type_cast(nil)
334
- # #=> nil
333
+ # datetime_attribute.type_cast(nil)
334
+ # #=> nil
335
335
  #
336
336
  # @param [Mixed] raw_value The value to cast to a DateTime object.
337
337
  # @param [Hash] options
@@ -341,13 +341,13 @@ module AWS
341
341
  when nil then nil
342
342
  when '' then nil
343
343
  when DateTime then raw_value
344
- when Integer then
344
+ when Integer then
345
345
  begin
346
346
  DateTime.parse(Time.at(raw_value).to_s) # timestamp
347
347
  rescue
348
348
  nil
349
349
  end
350
- else
350
+ else
351
351
  begin
352
352
  DateTime.parse(raw_value.to_s) # Time, Date or String
353
353
  rescue
@@ -355,11 +355,11 @@ module AWS
355
355
  end
356
356
  end
357
357
  end
358
-
358
+
359
359
  # Returns a DateTime object encoded as a string (suitable for sorting).
360
360
  #
361
- # attribute.serialize(DateTime.parse('2001-01-01'))
362
- # #=> '2001-01-01T00:00:00:Z)
361
+ # attribute.serialize(DateTime.parse('2001-01-01'))
362
+ # #=> '2001-01-01T00:00:00:Z)
363
363
  #
364
364
  # @param [DateTime] datetime The datetime object to serialize.
365
365
  # @param [Hash] options
@@ -368,16 +368,16 @@ module AWS
368
368
  def self.serialize datetime, options = {}
369
369
  unless datetime.is_a?(DateTime)
370
370
  msg = "expected a DateTime value, got #{datetime.class}"
371
- raise ArgumentError, msg
371
+ raise ArgumentError, msg
372
372
  end
373
373
  datetime.strftime('%Y-%m-%dT%H:%M:%S%Z')
374
374
  end
375
-
375
+
376
376
  # @private
377
377
  def self.allow_set?
378
378
  true
379
379
  end
380
-
380
+
381
381
  end
382
382
  end
383
383
  end