aws-sdk 1.32.0 → 3.0.2

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 (551) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +100 -0
  3. data/LICENSE.txt +199 -9
  4. data/VERSION +1 -0
  5. data/lib/aws-sdk.rb +2 -14
  6. metadata +22 -591
  7. data/.yardopts +0 -7
  8. data/README.md +0 -291
  9. data/bin/aws-rb +0 -169
  10. data/ca-bundle.crt +0 -3554
  11. data/endpoints.json +0 -1506
  12. data/lib/aws.rb +0 -14
  13. data/lib/aws/api_config/AutoScaling-2011-01-01.yml +0 -869
  14. data/lib/aws/api_config/CloudFormation-2010-05-15.yml +0 -358
  15. data/lib/aws/api_config/CloudFront-2013-05-12.yml +0 -2448
  16. data/lib/aws/api_config/CloudFront-2013-08-26.yml +0 -2599
  17. data/lib/aws/api_config/CloudFront-2013-09-27.yml +0 -2765
  18. data/lib/aws/api_config/CloudFront-2013-11-11.yml +0 -2886
  19. data/lib/aws/api_config/CloudSearch-2011-02-01.yml +0 -681
  20. data/lib/aws/api_config/CloudTrail-2013-11-01.yml +0 -159
  21. data/lib/aws/api_config/CloudWatch-2010-08-01.yml +0 -433
  22. data/lib/aws/api_config/DataPipeline-2012-10-29.yml +0 -422
  23. data/lib/aws/api_config/DirectConnect-2012-10-25.yml +0 -735
  24. data/lib/aws/api_config/DynamoDB-2011-12-05.yml +0 -1168
  25. data/lib/aws/api_config/DynamoDB-2012-08-10.yml +0 -2005
  26. data/lib/aws/api_config/EC2-2013-08-15.yml +0 -4708
  27. data/lib/aws/api_config/EC2-2013-10-01.yml +0 -4726
  28. data/lib/aws/api_config/EC2-2013-10-15.yml +0 -4726
  29. data/lib/aws/api_config/ELB-2012-06-01.yml +0 -632
  30. data/lib/aws/api_config/EMR-2009-03-31.yml +0 -953
  31. data/lib/aws/api_config/ElastiCache-2013-06-15.yml +0 -1188
  32. data/lib/aws/api_config/ElasticBeanstalk-2010-12-01.yml +0 -847
  33. data/lib/aws/api_config/ElasticTranscoder-2012-09-25.yml +0 -2285
  34. data/lib/aws/api_config/Glacier-2012-06-01.yml +0 -649
  35. data/lib/aws/api_config/IAM-2010-05-08.yml +0 -1297
  36. data/lib/aws/api_config/ImportExport-2010-06-01.yml +0 -109
  37. data/lib/aws/api_config/Kinesis-2013-12-02.yml +0 -201
  38. data/lib/aws/api_config/OpsWorks-2013-02-18.yml +0 -1825
  39. data/lib/aws/api_config/RDS-2013-05-15.yml +0 -2464
  40. data/lib/aws/api_config/RDS-2013-09-09.yml +0 -2641
  41. data/lib/aws/api_config/Redshift-2012-12-01.yml +0 -2137
  42. data/lib/aws/api_config/Route53-2012-12-12.yml +0 -547
  43. data/lib/aws/api_config/SNS-2010-03-31.yml +0 -433
  44. data/lib/aws/api_config/SQS-2012-11-05.yml +0 -319
  45. data/lib/aws/api_config/STS-2011-06-15.yml +0 -147
  46. data/lib/aws/api_config/SimpleDB-2009-04-15.yml +0 -306
  47. data/lib/aws/api_config/SimpleEmailService-2010-12-01.yml +0 -346
  48. data/lib/aws/api_config/SimpleWorkflow-2012-01-25.yml +0 -2388
  49. data/lib/aws/api_config/StorageGateway-2012-06-30.yml +0 -748
  50. data/lib/aws/api_config/StorageGateway-2013-06-30.yml +0 -1025
  51. data/lib/aws/api_config/Support-2013-04-15.yml +0 -426
  52. data/lib/aws/auto_scaling.rb +0 -163
  53. data/lib/aws/auto_scaling/activity.rb +0 -102
  54. data/lib/aws/auto_scaling/activity_collection.rb +0 -81
  55. data/lib/aws/auto_scaling/client.rb +0 -48
  56. data/lib/aws/auto_scaling/config.rb +0 -18
  57. data/lib/aws/auto_scaling/errors.rb +0 -22
  58. data/lib/aws/auto_scaling/group.rb +0 -421
  59. data/lib/aws/auto_scaling/group_collection.rb +0 -96
  60. data/lib/aws/auto_scaling/group_options.rb +0 -155
  61. data/lib/aws/auto_scaling/instance.rb +0 -192
  62. data/lib/aws/auto_scaling/instance_collection.rb +0 -63
  63. data/lib/aws/auto_scaling/launch_configuration.rb +0 -162
  64. data/lib/aws/auto_scaling/launch_configuration_collection.rb +0 -160
  65. data/lib/aws/auto_scaling/notification_configuration.rb +0 -89
  66. data/lib/aws/auto_scaling/notification_configuration_collection.rb +0 -183
  67. data/lib/aws/auto_scaling/scaling_policy.rb +0 -142
  68. data/lib/aws/auto_scaling/scaling_policy_collection.rb +0 -72
  69. data/lib/aws/auto_scaling/scaling_policy_options.rb +0 -65
  70. data/lib/aws/auto_scaling/scheduled_action.rb +0 -141
  71. data/lib/aws/auto_scaling/scheduled_action_collection.rb +0 -202
  72. data/lib/aws/auto_scaling/tag.rb +0 -59
  73. data/lib/aws/auto_scaling/tag_collection.rb +0 -114
  74. data/lib/aws/cloud_formation.rb +0 -272
  75. data/lib/aws/cloud_formation/client.rb +0 -48
  76. data/lib/aws/cloud_formation/config.rb +0 -18
  77. data/lib/aws/cloud_formation/errors.rb +0 -22
  78. data/lib/aws/cloud_formation/stack.rb +0 -266
  79. data/lib/aws/cloud_formation/stack_collection.rb +0 -232
  80. data/lib/aws/cloud_formation/stack_event.rb +0 -73
  81. data/lib/aws/cloud_formation/stack_event_collection.rb +0 -47
  82. data/lib/aws/cloud_formation/stack_options.rb +0 -72
  83. data/lib/aws/cloud_formation/stack_output.rb +0 -53
  84. data/lib/aws/cloud_formation/stack_resource.rb +0 -117
  85. data/lib/aws/cloud_formation/stack_resource_collection.rb +0 -83
  86. data/lib/aws/cloud_formation/stack_resource_summary_collection.rb +0 -64
  87. data/lib/aws/cloud_formation/stack_summary_collection.rb +0 -123
  88. data/lib/aws/cloud_front.rb +0 -72
  89. data/lib/aws/cloud_front/client.rb +0 -45
  90. data/lib/aws/cloud_front/config.rb +0 -18
  91. data/lib/aws/cloud_front/errors.rb +0 -22
  92. data/lib/aws/cloud_search.rb +0 -73
  93. data/lib/aws/cloud_search/client.rb +0 -36
  94. data/lib/aws/cloud_search/config.rb +0 -18
  95. data/lib/aws/cloud_search/errors.rb +0 -22
  96. data/lib/aws/cloud_trail.rb +0 -72
  97. data/lib/aws/cloud_trail/client.rb +0 -35
  98. data/lib/aws/cloud_trail/config.rb +0 -18
  99. data/lib/aws/cloud_trail/errors.rb +0 -22
  100. data/lib/aws/cloud_watch.rb +0 -118
  101. data/lib/aws/cloud_watch/alarm.rb +0 -290
  102. data/lib/aws/cloud_watch/alarm_collection.rb +0 -153
  103. data/lib/aws/cloud_watch/alarm_history_item.rb +0 -50
  104. data/lib/aws/cloud_watch/alarm_history_item_collection.rb +0 -84
  105. data/lib/aws/cloud_watch/client.rb +0 -40
  106. data/lib/aws/cloud_watch/config.rb +0 -18
  107. data/lib/aws/cloud_watch/errors.rb +0 -22
  108. data/lib/aws/cloud_watch/metric.rb +0 -135
  109. data/lib/aws/cloud_watch/metric_alarm_collection.rb +0 -160
  110. data/lib/aws/cloud_watch/metric_collection.rb +0 -129
  111. data/lib/aws/cloud_watch/metric_statistics.rb +0 -69
  112. data/lib/aws/core.rb +0 -701
  113. data/lib/aws/core/async_handle.rb +0 -90
  114. data/lib/aws/core/cacheable.rb +0 -77
  115. data/lib/aws/core/client.rb +0 -778
  116. data/lib/aws/core/collection.rb +0 -263
  117. data/lib/aws/core/collection/simple.rb +0 -82
  118. data/lib/aws/core/collection/with_limit_and_next_token.rb +0 -71
  119. data/lib/aws/core/collection/with_next_token.rb +0 -97
  120. data/lib/aws/core/configuration.rb +0 -541
  121. data/lib/aws/core/credential_providers.rb +0 -506
  122. data/lib/aws/core/data.rb +0 -247
  123. data/lib/aws/core/deprecations.rb +0 -84
  124. data/lib/aws/core/endpoints.rb +0 -37
  125. data/lib/aws/core/http/connection_pool.rb +0 -349
  126. data/lib/aws/core/http/curb_handler.rb +0 -148
  127. data/lib/aws/core/http/handler.rb +0 -89
  128. data/lib/aws/core/http/net_http_handler.rb +0 -147
  129. data/lib/aws/core/http/patch.rb +0 -102
  130. data/lib/aws/core/http/request.rb +0 -249
  131. data/lib/aws/core/http/response.rb +0 -81
  132. data/lib/aws/core/indifferent_hash.rb +0 -88
  133. data/lib/aws/core/inflection.rb +0 -56
  134. data/lib/aws/core/json_client.rb +0 -47
  135. data/lib/aws/core/json_parser.rb +0 -76
  136. data/lib/aws/core/json_request_builder.rb +0 -35
  137. data/lib/aws/core/json_response_parser.rb +0 -79
  138. data/lib/aws/core/lazy_error_classes.rb +0 -90
  139. data/lib/aws/core/log_formatter.rb +0 -428
  140. data/lib/aws/core/managed_file.rb +0 -32
  141. data/lib/aws/core/meta_utils.rb +0 -45
  142. data/lib/aws/core/model.rb +0 -57
  143. data/lib/aws/core/naming.rb +0 -30
  144. data/lib/aws/core/option_grammar.rb +0 -738
  145. data/lib/aws/core/options/json_serializer.rb +0 -82
  146. data/lib/aws/core/options/validator.rb +0 -155
  147. data/lib/aws/core/options/xml_serializer.rb +0 -118
  148. data/lib/aws/core/page_result.rb +0 -75
  149. data/lib/aws/core/policy.rb +0 -942
  150. data/lib/aws/core/query_client.rb +0 -41
  151. data/lib/aws/core/query_error_parser.rb +0 -24
  152. data/lib/aws/core/query_request_builder.rb +0 -47
  153. data/lib/aws/core/query_response_parser.rb +0 -35
  154. data/lib/aws/core/region.rb +0 -85
  155. data/lib/aws/core/region_collection.rb +0 -80
  156. data/lib/aws/core/resource.rb +0 -413
  157. data/lib/aws/core/resource_cache.rb +0 -40
  158. data/lib/aws/core/response.rb +0 -211
  159. data/lib/aws/core/response_cache.rb +0 -50
  160. data/lib/aws/core/rest_error_parser.rb +0 -24
  161. data/lib/aws/core/rest_json_client.rb +0 -40
  162. data/lib/aws/core/rest_request_builder.rb +0 -154
  163. data/lib/aws/core/rest_response_parser.rb +0 -66
  164. data/lib/aws/core/rest_xml_client.rb +0 -47
  165. data/lib/aws/core/service_interface.rb +0 -83
  166. data/lib/aws/core/signers/base.rb +0 -46
  167. data/lib/aws/core/signers/cloud_front.rb +0 -56
  168. data/lib/aws/core/signers/s3.rb +0 -159
  169. data/lib/aws/core/signers/version_2.rb +0 -72
  170. data/lib/aws/core/signers/version_3.rb +0 -86
  171. data/lib/aws/core/signers/version_3_https.rb +0 -61
  172. data/lib/aws/core/signers/version_4.rb +0 -228
  173. data/lib/aws/core/signers/version_4/chunk_signed_stream.rb +0 -191
  174. data/lib/aws/core/uri_escape.rb +0 -44
  175. data/lib/aws/core/xml/frame.rb +0 -244
  176. data/lib/aws/core/xml/frame_stack.rb +0 -85
  177. data/lib/aws/core/xml/grammar.rb +0 -306
  178. data/lib/aws/core/xml/parser.rb +0 -70
  179. data/lib/aws/core/xml/root_frame.rb +0 -65
  180. data/lib/aws/core/xml/sax_handlers/libxml.rb +0 -47
  181. data/lib/aws/core/xml/sax_handlers/nokogiri.rb +0 -56
  182. data/lib/aws/core/xml/sax_handlers/ox.rb +0 -41
  183. data/lib/aws/core/xml/sax_handlers/rexml.rb +0 -47
  184. data/lib/aws/core/xml/stub.rb +0 -123
  185. data/lib/aws/data_pipeline.rb +0 -72
  186. data/lib/aws/data_pipeline/client.rb +0 -36
  187. data/lib/aws/data_pipeline/config.rb +0 -18
  188. data/lib/aws/data_pipeline/errors.rb +0 -20
  189. data/lib/aws/direct_connect.rb +0 -73
  190. data/lib/aws/direct_connect/client.rb +0 -36
  191. data/lib/aws/direct_connect/config.rb +0 -18
  192. data/lib/aws/direct_connect/errors.rb +0 -22
  193. data/lib/aws/dynamo_db.rb +0 -214
  194. data/lib/aws/dynamo_db/attribute_collection.rb +0 -456
  195. data/lib/aws/dynamo_db/batch_get.rb +0 -213
  196. data/lib/aws/dynamo_db/batch_write.rb +0 -252
  197. data/lib/aws/dynamo_db/binary.rb +0 -35
  198. data/lib/aws/dynamo_db/client.rb +0 -129
  199. data/lib/aws/dynamo_db/client/v20111205.rb +0 -1266
  200. data/lib/aws/dynamo_db/client/v20120810.rb +0 -1409
  201. data/lib/aws/dynamo_db/client_v2.rb +0 -44
  202. data/lib/aws/dynamo_db/config.rb +0 -24
  203. data/lib/aws/dynamo_db/errors.rb +0 -20
  204. data/lib/aws/dynamo_db/expectations.rb +0 -40
  205. data/lib/aws/dynamo_db/item.rb +0 -133
  206. data/lib/aws/dynamo_db/item_collection.rb +0 -856
  207. data/lib/aws/dynamo_db/item_data.rb +0 -31
  208. data/lib/aws/dynamo_db/keys.rb +0 -41
  209. data/lib/aws/dynamo_db/primary_key_element.rb +0 -48
  210. data/lib/aws/dynamo_db/resource.rb +0 -33
  211. data/lib/aws/dynamo_db/table.rb +0 -496
  212. data/lib/aws/dynamo_db/table_collection.rb +0 -165
  213. data/lib/aws/dynamo_db/types.rb +0 -111
  214. data/lib/aws/ec2.rb +0 -428
  215. data/lib/aws/ec2/attachment.rb +0 -135
  216. data/lib/aws/ec2/attachment_collection.rb +0 -54
  217. data/lib/aws/ec2/availability_zone.rb +0 -86
  218. data/lib/aws/ec2/availability_zone_collection.rb +0 -43
  219. data/lib/aws/ec2/block_device_mappings.rb +0 -53
  220. data/lib/aws/ec2/client.rb +0 -101
  221. data/lib/aws/ec2/collection.rb +0 -36
  222. data/lib/aws/ec2/config.rb +0 -30
  223. data/lib/aws/ec2/customer_gateway.rb +0 -90
  224. data/lib/aws/ec2/customer_gateway_collection.rb +0 -73
  225. data/lib/aws/ec2/dhcp_options.rb +0 -106
  226. data/lib/aws/ec2/dhcp_options_collection.rb +0 -87
  227. data/lib/aws/ec2/elastic_ip.rb +0 -209
  228. data/lib/aws/ec2/elastic_ip_collection.rb +0 -93
  229. data/lib/aws/ec2/errors.rb +0 -32
  230. data/lib/aws/ec2/export_task.rb +0 -120
  231. data/lib/aws/ec2/export_task_collection.rb +0 -67
  232. data/lib/aws/ec2/filtered_collection.rb +0 -87
  233. data/lib/aws/ec2/has_permissions.rb +0 -44
  234. data/lib/aws/ec2/image.rb +0 -270
  235. data/lib/aws/ec2/image_collection.rb +0 -220
  236. data/lib/aws/ec2/instance.rb +0 -803
  237. data/lib/aws/ec2/instance_collection.rb +0 -391
  238. data/lib/aws/ec2/internet_gateway.rb +0 -122
  239. data/lib/aws/ec2/internet_gateway/attachment.rb +0 -78
  240. data/lib/aws/ec2/internet_gateway_collection.rb +0 -54
  241. data/lib/aws/ec2/key_pair.rb +0 -82
  242. data/lib/aws/ec2/key_pair_collection.rb +0 -99
  243. data/lib/aws/ec2/network_acl.rb +0 -256
  244. data/lib/aws/ec2/network_acl/association.rb +0 -56
  245. data/lib/aws/ec2/network_acl/entry.rb +0 -147
  246. data/lib/aws/ec2/network_acl_collection.rb +0 -64
  247. data/lib/aws/ec2/network_interface.rb +0 -237
  248. data/lib/aws/ec2/network_interface/attachment.rb +0 -100
  249. data/lib/aws/ec2/network_interface_collection.rb +0 -103
  250. data/lib/aws/ec2/permission_collection.rb +0 -174
  251. data/lib/aws/ec2/region.rb +0 -106
  252. data/lib/aws/ec2/region_collection.rb +0 -51
  253. data/lib/aws/ec2/reserved_instances.rb +0 -56
  254. data/lib/aws/ec2/reserved_instances_collection.rb +0 -40
  255. data/lib/aws/ec2/reserved_instances_offering.rb +0 -60
  256. data/lib/aws/ec2/reserved_instances_offering_collection.rb +0 -45
  257. data/lib/aws/ec2/resource.rb +0 -161
  258. data/lib/aws/ec2/resource_tag_collection.rb +0 -211
  259. data/lib/aws/ec2/route_table.rb +0 -205
  260. data/lib/aws/ec2/route_table/association.rb +0 -119
  261. data/lib/aws/ec2/route_table/route.rb +0 -119
  262. data/lib/aws/ec2/route_table_collection.rb +0 -72
  263. data/lib/aws/ec2/security_group.rb +0 -482
  264. data/lib/aws/ec2/security_group/ip_permission.rb +0 -135
  265. data/lib/aws/ec2/security_group/ip_permission_collection.rb +0 -82
  266. data/lib/aws/ec2/security_group_collection.rb +0 -133
  267. data/lib/aws/ec2/snapshot.rb +0 -143
  268. data/lib/aws/ec2/snapshot_collection.rb +0 -131
  269. data/lib/aws/ec2/subnet.rb +0 -161
  270. data/lib/aws/ec2/subnet_collection.rb +0 -115
  271. data/lib/aws/ec2/tag.rb +0 -81
  272. data/lib/aws/ec2/tag_collection.rb +0 -107
  273. data/lib/aws/ec2/tagged_collection.rb +0 -53
  274. data/lib/aws/ec2/tagged_item.rb +0 -85
  275. data/lib/aws/ec2/volume.rb +0 -174
  276. data/lib/aws/ec2/volume_collection.rb +0 -98
  277. data/lib/aws/ec2/vpc.rb +0 -166
  278. data/lib/aws/ec2/vpc_collection.rb +0 -70
  279. data/lib/aws/ec2/vpn_connection.rb +0 -99
  280. data/lib/aws/ec2/vpn_connection/telemetry.rb +0 -49
  281. data/lib/aws/ec2/vpn_connection_collection.rb +0 -96
  282. data/lib/aws/ec2/vpn_gateway.rb +0 -123
  283. data/lib/aws/ec2/vpn_gateway/attachment.rb +0 -45
  284. data/lib/aws/ec2/vpn_gateway_collection.rb +0 -77
  285. data/lib/aws/elastic_beanstalk.rb +0 -49
  286. data/lib/aws/elastic_beanstalk/client.rb +0 -36
  287. data/lib/aws/elastic_beanstalk/config.rb +0 -18
  288. data/lib/aws/elastic_beanstalk/errors.rb +0 -22
  289. data/lib/aws/elastic_transcoder.rb +0 -29
  290. data/lib/aws/elastic_transcoder/client.rb +0 -48
  291. data/lib/aws/elastic_transcoder/config.rb +0 -18
  292. data/lib/aws/elastic_transcoder/errors.rb +0 -23
  293. data/lib/aws/elasticache.rb +0 -49
  294. data/lib/aws/elasticache/client.rb +0 -35
  295. data/lib/aws/elasticache/config.rb +0 -18
  296. data/lib/aws/elasticache/errors.rb +0 -22
  297. data/lib/aws/elb.rb +0 -66
  298. data/lib/aws/elb/availability_zone_collection.rb +0 -138
  299. data/lib/aws/elb/backend_server_policy_collection.rb +0 -139
  300. data/lib/aws/elb/client.rb +0 -35
  301. data/lib/aws/elb/config.rb +0 -18
  302. data/lib/aws/elb/errors.rb +0 -26
  303. data/lib/aws/elb/instance_collection.rb +0 -168
  304. data/lib/aws/elb/listener.rb +0 -190
  305. data/lib/aws/elb/listener_collection.rb +0 -113
  306. data/lib/aws/elb/listener_opts.rb +0 -45
  307. data/lib/aws/elb/load_balancer.rb +0 -280
  308. data/lib/aws/elb/load_balancer_collection.rb +0 -146
  309. data/lib/aws/elb/load_balancer_policy.rb +0 -93
  310. data/lib/aws/elb/load_balancer_policy_collection.rb +0 -208
  311. data/lib/aws/emr.rb +0 -87
  312. data/lib/aws/emr/client.rb +0 -35
  313. data/lib/aws/emr/config.rb +0 -18
  314. data/lib/aws/emr/errors.rb +0 -22
  315. data/lib/aws/emr/instance_group.rb +0 -138
  316. data/lib/aws/emr/instance_group_collection.rb +0 -82
  317. data/lib/aws/emr/job_flow.rb +0 -307
  318. data/lib/aws/emr/job_flow_collection.rb +0 -185
  319. data/lib/aws/errors.rb +0 -162
  320. data/lib/aws/glacier.rb +0 -79
  321. data/lib/aws/glacier/archive.rb +0 -56
  322. data/lib/aws/glacier/archive_collection.rb +0 -146
  323. data/lib/aws/glacier/client.rb +0 -49
  324. data/lib/aws/glacier/config.rb +0 -19
  325. data/lib/aws/glacier/errors.rb +0 -22
  326. data/lib/aws/glacier/resource.rb +0 -30
  327. data/lib/aws/glacier/vault.rb +0 -145
  328. data/lib/aws/glacier/vault_collection.rb +0 -75
  329. data/lib/aws/glacier/vault_notification_configuration.rb +0 -29
  330. data/lib/aws/iam.rb +0 -408
  331. data/lib/aws/iam/access_key.rb +0 -185
  332. data/lib/aws/iam/access_key_collection.rb +0 -128
  333. data/lib/aws/iam/account_alias_collection.rb +0 -79
  334. data/lib/aws/iam/client.rb +0 -49
  335. data/lib/aws/iam/collection.rb +0 -83
  336. data/lib/aws/iam/config.rb +0 -18
  337. data/lib/aws/iam/errors.rb +0 -22
  338. data/lib/aws/iam/group.rb +0 -111
  339. data/lib/aws/iam/group_collection.rb +0 -132
  340. data/lib/aws/iam/group_policy_collection.rb +0 -47
  341. data/lib/aws/iam/group_user_collection.rb +0 -84
  342. data/lib/aws/iam/login_profile.rb +0 -99
  343. data/lib/aws/iam/mfa_device.rb +0 -52
  344. data/lib/aws/iam/mfa_device_collection.rb +0 -127
  345. data/lib/aws/iam/policy.rb +0 -46
  346. data/lib/aws/iam/policy_collection.rb +0 -188
  347. data/lib/aws/iam/resource.rb +0 -62
  348. data/lib/aws/iam/server_certificate.rb +0 -141
  349. data/lib/aws/iam/server_certificate_collection.rb +0 -138
  350. data/lib/aws/iam/signing_certificate.rb +0 -174
  351. data/lib/aws/iam/signing_certificate_collection.rb +0 -131
  352. data/lib/aws/iam/user.rb +0 -200
  353. data/lib/aws/iam/user_collection.rb +0 -133
  354. data/lib/aws/iam/user_group_collection.rb +0 -98
  355. data/lib/aws/iam/user_policy.rb +0 -90
  356. data/lib/aws/iam/user_policy_collection.rb +0 -45
  357. data/lib/aws/iam/virtual_mfa_device.rb +0 -139
  358. data/lib/aws/iam/virtual_mfa_device_collection.rb +0 -73
  359. data/lib/aws/import_export.rb +0 -73
  360. data/lib/aws/import_export/client.rb +0 -35
  361. data/lib/aws/import_export/config.rb +0 -19
  362. data/lib/aws/import_export/errors.rb +0 -22
  363. data/lib/aws/kinesis.rb +0 -53
  364. data/lib/aws/kinesis/client.rb +0 -35
  365. data/lib/aws/kinesis/config.rb +0 -18
  366. data/lib/aws/kinesis/errors.rb +0 -20
  367. data/lib/aws/ops_works.rb +0 -29
  368. data/lib/aws/ops_works/client.rb +0 -35
  369. data/lib/aws/ops_works/config.rb +0 -18
  370. data/lib/aws/ops_works/errors.rb +0 -20
  371. data/lib/aws/rails.rb +0 -195
  372. data/lib/aws/rds.rb +0 -70
  373. data/lib/aws/rds/client.rb +0 -42
  374. data/lib/aws/rds/config.rb +0 -18
  375. data/lib/aws/rds/db_instance.rb +0 -216
  376. data/lib/aws/rds/db_instance_collection.rb +0 -75
  377. data/lib/aws/rds/db_snapshot.rb +0 -163
  378. data/lib/aws/rds/db_snapshot_collection.rb +0 -89
  379. data/lib/aws/rds/errors.rb +0 -22
  380. data/lib/aws/record.rb +0 -139
  381. data/lib/aws/record/abstract_base.rb +0 -690
  382. data/lib/aws/record/attributes.rb +0 -388
  383. data/lib/aws/record/conversion.rb +0 -38
  384. data/lib/aws/record/dirty_tracking.rb +0 -287
  385. data/lib/aws/record/errors.rb +0 -143
  386. data/lib/aws/record/exceptions.rb +0 -51
  387. data/lib/aws/record/hash_model.rb +0 -204
  388. data/lib/aws/record/hash_model/attributes.rb +0 -195
  389. data/lib/aws/record/hash_model/finder_methods.rb +0 -172
  390. data/lib/aws/record/hash_model/scope.rb +0 -108
  391. data/lib/aws/record/model.rb +0 -453
  392. data/lib/aws/record/model/attributes.rb +0 -377
  393. data/lib/aws/record/model/finder_methods.rb +0 -232
  394. data/lib/aws/record/model/scope.rb +0 -212
  395. data/lib/aws/record/naming.rb +0 -31
  396. data/lib/aws/record/scope.rb +0 -203
  397. data/lib/aws/record/validations.rb +0 -694
  398. data/lib/aws/record/validator.rb +0 -246
  399. data/lib/aws/record/validators/acceptance.rb +0 -49
  400. data/lib/aws/record/validators/block.rb +0 -36
  401. data/lib/aws/record/validators/confirmation.rb +0 -41
  402. data/lib/aws/record/validators/count.rb +0 -106
  403. data/lib/aws/record/validators/exclusion.rb +0 -41
  404. data/lib/aws/record/validators/format.rb +0 -55
  405. data/lib/aws/record/validators/inclusion.rb +0 -54
  406. data/lib/aws/record/validators/length.rb +0 -105
  407. data/lib/aws/record/validators/method.rb +0 -31
  408. data/lib/aws/record/validators/numericality.rb +0 -136
  409. data/lib/aws/record/validators/presence.rb +0 -43
  410. data/lib/aws/redshift.rb +0 -51
  411. data/lib/aws/redshift/client.rb +0 -35
  412. data/lib/aws/redshift/config.rb +0 -18
  413. data/lib/aws/redshift/errors.rb +0 -22
  414. data/lib/aws/route_53.rb +0 -86
  415. data/lib/aws/route_53/change_batch.rb +0 -161
  416. data/lib/aws/route_53/change_info.rb +0 -72
  417. data/lib/aws/route_53/client.rb +0 -35
  418. data/lib/aws/route_53/config.rb +0 -18
  419. data/lib/aws/route_53/errors.rb +0 -22
  420. data/lib/aws/route_53/hosted_zone.rb +0 -111
  421. data/lib/aws/route_53/hosted_zone_collection.rb +0 -100
  422. data/lib/aws/route_53/resource_record_set.rb +0 -251
  423. data/lib/aws/route_53/resource_record_set_collection.rb +0 -110
  424. data/lib/aws/s3.rb +0 -156
  425. data/lib/aws/s3/access_control_list.rb +0 -265
  426. data/lib/aws/s3/acl_object.rb +0 -264
  427. data/lib/aws/s3/acl_options.rb +0 -204
  428. data/lib/aws/s3/bucket.rb +0 -742
  429. data/lib/aws/s3/bucket_collection.rb +0 -162
  430. data/lib/aws/s3/bucket_lifecycle_configuration.rb +0 -457
  431. data/lib/aws/s3/bucket_tag_collection.rb +0 -111
  432. data/lib/aws/s3/bucket_version_collection.rb +0 -79
  433. data/lib/aws/s3/cipher_io.rb +0 -120
  434. data/lib/aws/s3/client.rb +0 -1919
  435. data/lib/aws/s3/client/xml.rb +0 -259
  436. data/lib/aws/s3/config.rb +0 -48
  437. data/lib/aws/s3/cors_rule.rb +0 -108
  438. data/lib/aws/s3/cors_rule_collection.rb +0 -194
  439. data/lib/aws/s3/data_options.rb +0 -191
  440. data/lib/aws/s3/encryption_utils.rb +0 -146
  441. data/lib/aws/s3/errors.rb +0 -94
  442. data/lib/aws/s3/multipart_upload.rb +0 -351
  443. data/lib/aws/s3/multipart_upload_collection.rb +0 -76
  444. data/lib/aws/s3/object_collection.rb +0 -353
  445. data/lib/aws/s3/object_metadata.rb +0 -103
  446. data/lib/aws/s3/object_upload_collection.rb +0 -77
  447. data/lib/aws/s3/object_version.rb +0 -154
  448. data/lib/aws/s3/object_version_collection.rb +0 -89
  449. data/lib/aws/s3/paginated_collection.rb +0 -75
  450. data/lib/aws/s3/policy.rb +0 -74
  451. data/lib/aws/s3/prefix_and_delimiter_collection.rb +0 -47
  452. data/lib/aws/s3/prefixed_collection.rb +0 -85
  453. data/lib/aws/s3/presign_v4.rb +0 -127
  454. data/lib/aws/s3/presigned_post.rb +0 -554
  455. data/lib/aws/s3/request.rb +0 -62
  456. data/lib/aws/s3/s3_object.rb +0 -1781
  457. data/lib/aws/s3/tree.rb +0 -116
  458. data/lib/aws/s3/tree/branch_node.rb +0 -68
  459. data/lib/aws/s3/tree/child_collection.rb +0 -104
  460. data/lib/aws/s3/tree/leaf_node.rb +0 -94
  461. data/lib/aws/s3/tree/node.rb +0 -22
  462. data/lib/aws/s3/tree/parent.rb +0 -87
  463. data/lib/aws/s3/uploaded_part.rb +0 -82
  464. data/lib/aws/s3/uploaded_part_collection.rb +0 -84
  465. data/lib/aws/s3/website_configuration.rb +0 -102
  466. data/lib/aws/simple_db.rb +0 -218
  467. data/lib/aws/simple_db/attribute.rb +0 -156
  468. data/lib/aws/simple_db/attribute_collection.rb +0 -240
  469. data/lib/aws/simple_db/client.rb +0 -67
  470. data/lib/aws/simple_db/config.rb +0 -20
  471. data/lib/aws/simple_db/consistent_read_option.rb +0 -42
  472. data/lib/aws/simple_db/delete_attributes.rb +0 -62
  473. data/lib/aws/simple_db/domain.rb +0 -123
  474. data/lib/aws/simple_db/domain_collection.rb +0 -86
  475. data/lib/aws/simple_db/domain_metadata.rb +0 -110
  476. data/lib/aws/simple_db/errors.rb +0 -55
  477. data/lib/aws/simple_db/expect_condition_option.rb +0 -45
  478. data/lib/aws/simple_db/item.rb +0 -93
  479. data/lib/aws/simple_db/item_collection.rb +0 -654
  480. data/lib/aws/simple_db/item_data.rb +0 -73
  481. data/lib/aws/simple_db/put_attributes.rb +0 -60
  482. data/lib/aws/simple_email_service.rb +0 -430
  483. data/lib/aws/simple_email_service/client.rb +0 -37
  484. data/lib/aws/simple_email_service/config.rb +0 -18
  485. data/lib/aws/simple_email_service/email_address_collection.rb +0 -69
  486. data/lib/aws/simple_email_service/errors.rb +0 -22
  487. data/lib/aws/simple_email_service/identity.rb +0 -209
  488. data/lib/aws/simple_email_service/identity_collection.rb +0 -81
  489. data/lib/aws/simple_email_service/quotas.rb +0 -66
  490. data/lib/aws/simple_workflow.rb +0 -227
  491. data/lib/aws/simple_workflow/activity_task.rb +0 -178
  492. data/lib/aws/simple_workflow/activity_task_collection.rb +0 -123
  493. data/lib/aws/simple_workflow/activity_type.rb +0 -131
  494. data/lib/aws/simple_workflow/activity_type_collection.rb +0 -93
  495. data/lib/aws/simple_workflow/client.rb +0 -69
  496. data/lib/aws/simple_workflow/config.rb +0 -18
  497. data/lib/aws/simple_workflow/count.rb +0 -49
  498. data/lib/aws/simple_workflow/decision_task.rb +0 -603
  499. data/lib/aws/simple_workflow/decision_task_collection.rb +0 -225
  500. data/lib/aws/simple_workflow/domain.rb +0 -122
  501. data/lib/aws/simple_workflow/domain_collection.rb +0 -169
  502. data/lib/aws/simple_workflow/errors.rb +0 -20
  503. data/lib/aws/simple_workflow/history_event.rb +0 -276
  504. data/lib/aws/simple_workflow/history_event_collection.rb +0 -76
  505. data/lib/aws/simple_workflow/option_formatters.rb +0 -82
  506. data/lib/aws/simple_workflow/resource.rb +0 -94
  507. data/lib/aws/simple_workflow/type.rb +0 -89
  508. data/lib/aws/simple_workflow/type_collection.rb +0 -140
  509. data/lib/aws/simple_workflow/workflow_execution.rb +0 -384
  510. data/lib/aws/simple_workflow/workflow_execution_collection.rb +0 -617
  511. data/lib/aws/simple_workflow/workflow_type.rb +0 -179
  512. data/lib/aws/simple_workflow/workflow_type_collection.rb +0 -91
  513. data/lib/aws/sns.rb +0 -76
  514. data/lib/aws/sns/client.rb +0 -35
  515. data/lib/aws/sns/config.rb +0 -18
  516. data/lib/aws/sns/errors.rb +0 -22
  517. data/lib/aws/sns/has_delivery_policy.rb +0 -68
  518. data/lib/aws/sns/message.rb +0 -194
  519. data/lib/aws/sns/originators/from_auto_scaling.rb +0 -68
  520. data/lib/aws/sns/policy.rb +0 -47
  521. data/lib/aws/sns/subscription.rb +0 -165
  522. data/lib/aws/sns/subscription_collection.rb +0 -78
  523. data/lib/aws/sns/topic.rb +0 -403
  524. data/lib/aws/sns/topic_collection.rb +0 -62
  525. data/lib/aws/sns/topic_subscription_collection.rb +0 -54
  526. data/lib/aws/sqs.rb +0 -80
  527. data/lib/aws/sqs/client.rb +0 -53
  528. data/lib/aws/sqs/config.rb +0 -20
  529. data/lib/aws/sqs/errors.rb +0 -125
  530. data/lib/aws/sqs/policy.rb +0 -48
  531. data/lib/aws/sqs/queue.rb +0 -843
  532. data/lib/aws/sqs/queue_collection.rb +0 -182
  533. data/lib/aws/sqs/received_message.rb +0 -182
  534. data/lib/aws/sqs/received_sns_message.rb +0 -116
  535. data/lib/aws/storage_gateway.rb +0 -72
  536. data/lib/aws/storage_gateway/client.rb +0 -42
  537. data/lib/aws/storage_gateway/config.rb +0 -18
  538. data/lib/aws/storage_gateway/errors.rb +0 -22
  539. data/lib/aws/sts.rb +0 -164
  540. data/lib/aws/sts/client.rb +0 -46
  541. data/lib/aws/sts/config.rb +0 -18
  542. data/lib/aws/sts/errors.rb +0 -22
  543. data/lib/aws/sts/federated_session.rb +0 -56
  544. data/lib/aws/sts/policy.rb +0 -30
  545. data/lib/aws/sts/session.rb +0 -48
  546. data/lib/aws/support.rb +0 -29
  547. data/lib/aws/support/client.rb +0 -35
  548. data/lib/aws/support/config.rb +0 -18
  549. data/lib/aws/support/errors.rb +0 -20
  550. data/lib/aws/version.rb +0 -17
  551. data/rails/init.rb +0 -15
@@ -1,377 +0,0 @@
1
- # Copyright 2011-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License"). You
4
- # may not use this file except in compliance with the License. A copy of
5
- # the License is located at
6
- #
7
- # http://aws.amazon.com/apache2.0/
8
- #
9
- # or in the "license" file accompanying this file. This file is
10
- # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
11
- # ANY KIND, either express or implied. See the License for the specific
12
- # language governing permissions and limitations under the License.
13
-
14
- module AWS
15
- module Record
16
- class Model
17
-
18
- module Attributes
19
-
20
- class BooleanAttr < Record::Attributes::BooleanAttr
21
- def self.serialize boolean, options = {}
22
- super.to_s
23
- end
24
- end
25
-
26
- class IntegerAttr < Record::Attributes::IntegerAttr
27
- def self.serialize integer, options = {}
28
- super.to_s
29
- end
30
- end
31
-
32
- class FloatAttr < Record::Attributes::FloatAttr
33
- def self.serialize float, options = {}
34
- super.to_s
35
- end
36
- end
37
-
38
- class SortableIntegerAttr < IntegerAttr
39
-
40
- def initialize name, options = {}
41
- range = options[:range]
42
- raise ArgumentError, "missing required option :range" unless range
43
- raise ArgumentError, ":range should be a integer range" unless
44
- range.is_a?(Range) and range.first.is_a?(Integer)
45
- super(name, options)
46
- end
47
-
48
- # Returns a serialized representation of the integer value suitable for
49
- # storing in SimpleDB.
50
- #
51
- # attribute.serialize(123)
52
- # #=> '123'
53
- #
54
- # # padded to the correct number of digits
55
- # attribute.serialize('123', :range => (0..10_000)
56
- # #=> '00123'
57
- #
58
- # # offset applied to make all values positive
59
- # attribute.serialize('-55', :range => (-100..10_000)
60
- # #=> '00045'
61
- #
62
- # @param [Integer] integer The number to serialize.
63
- # @param [Hash] options
64
- # @option options [required,Range] :range A range that represents the
65
- # minimum and maximum values this integer can be.
66
- # The returned value will have an offset applied (if min is
67
- # less than 0) and will be zero padded.
68
- # @return [String] A serialized representation of the integer.
69
- def self.serialize integer, options = {}
70
- expect(Integer, integer) do
71
- check_range(integer, options)
72
- offset_and_precision(options) do |offset,precision|
73
- "%0#{precision}d" % (integer.to_i + offset)
74
- end
75
- end
76
- end
77
-
78
- def self.deserialize string_value, options = {}
79
- offset_and_precision(options) do |offset,precision|
80
- string_value.to_i - offset
81
- end
82
- end
83
-
84
- protected
85
- def self.offset_and_precision options, &block
86
-
87
- min = options[:range].first
88
- max = options[:range].last
89
-
90
- offset = min < 0 ? min * -1 : 0
91
- precision = (max + offset).to_s.length
92
-
93
- yield(offset, precision)
94
-
95
- end
96
-
97
- def self.check_range number, options
98
- unless options[:range].include?(number)
99
- msg = "unable to serialize `#{number}`, falls outside " +
100
- "the range #{options[:range]}"
101
- raise msg
102
- end
103
- end
104
-
105
- end
106
-
107
- class SortableFloatAttr < FloatAttr
108
-
109
- def initialize name, options = {}
110
- range = options[:range]
111
- raise ArgumentError, "missing required option :range" unless range
112
- raise ArgumentError, ":range should be an integer range" unless
113
- range.is_a?(Range) and range.first.is_a?(Integer)
114
- super(name, options)
115
- end
116
-
117
- def self.serialize float, options = {}
118
- expect(Float, float) do
119
- left, right = float.to_s.split('.')
120
- left = SortableIntegerAttr.serialize(left.to_i, options)
121
- SortableIntegerAttr.check_range(float, options)
122
- "#{left}.#{right}"
123
- end
124
- end
125
-
126
- def self.deserialize string_value, options = {}
127
- expect(String, string_value) do
128
- left, right = string_value.split('.')
129
- left = SortableIntegerAttr.deserialize(left, options)
130
- "#{left}.#{right}".to_f
131
- end
132
- end
133
-
134
- end
135
-
136
- end
137
-
138
- class << self
139
-
140
- # Adds a string attribute to this class.
141
- #
142
- # @example A standard string attribute
143
- #
144
- # class Recipe < AWS::Record::Model
145
- # string_attr :name
146
- # end
147
- #
148
- # recipe = Recipe.new(:name => "Buttermilk Pancakes")
149
- # recipe.name #=> 'Buttermilk Pancakes'
150
- #
151
- # @example A string attribute with `:set` set to true
152
- #
153
- # class Recipe < AWS::Record::Model
154
- # string_attr :tags, :set => true
155
- # end
156
- #
157
- # recipe = Recipe.new(:tags => %w(popular dessert))
158
- # recipe.tags #=> #<Set: {"popular", "desert"}>
159
- #
160
- # @param [Symbol] name The name of the attribute.
161
- # @param [Hash] options
162
- # @option options [Boolean] :set (false) When true this attribute
163
- # can have multiple values.
164
- def string_attr name, options = {}
165
- add_attribute(Record::Attributes::StringAttr.new(name, options))
166
- end
167
-
168
- # Adds an integer attribute to this class.
169
- #
170
- # class Recipe < AWS::Record::Model
171
- # integer_attr :servings
172
- # end
173
- #
174
- # recipe = Recipe.new(:servings => '10')
175
- # recipe.servings #=> 10
176
- #
177
- # @param [Symbol] name The name of the attribute.
178
- # @param [Hash] options
179
- # @option options [Boolean] :set (false) When true this attribute
180
- # can have multiple values.
181
- def integer_attr name, options = {}
182
- add_attribute(Attributes::IntegerAttr.new(name, options))
183
- end
184
-
185
- # Adds a sortable integer attribute to this class.
186
- #
187
- # class Person < AWS::Record::Model
188
- # sortable_integer_attr :age, :range => 0..150
189
- # end
190
- #
191
- # person = Person.new(:age => 10)
192
- # person.age #=> 10
193
- #
194
- # ### Validations
195
- #
196
- # It is recomended to apply a validates_numericality_of with
197
- # minimum and maximum value constraints. If a value is assigned
198
- # to a sortable integer that falls outside of the +:range: it will
199
- # raise a runtime error when the record is saved.
200
- #
201
- # ### Difference Between Sortable an Regular Integer Attributes
202
- #
203
- # Because SimpleDB does not support numeric types, all values must
204
- # be converted to strings. This complicates sorting by numeric values.
205
- # To accomplish sorting numeric attributes the values must be
206
- # zero padded and have an offset applied to eliminate negative values.
207
- #
208
- # @param [Symbol] name The name of the attribute.
209
- # @param [Hash] options
210
- # @option options [Range] :range A numeric range the represents the
211
- # minimum and maximum values this attribute should accept.
212
- # @option options [Boolean] :set (false) When true this attribute
213
- # can have multiple values.
214
- def sortable_integer_attr name, options = {}
215
- add_attribute(Attributes::SortableIntegerAttr.new(name, options))
216
- end
217
-
218
- # Adds a float attribute to this class.
219
- #
220
- # class Listing < AWS::Record::Model
221
- # float_attr :score
222
- # end
223
- #
224
- # listing = Listing.new(:score => '123.456')
225
- # listing.score # => 123.456
226
- #
227
- # @param [Symbol] name The name of the attribute.
228
- # @param [Hash] options
229
- # @option options [Boolean] :set (false) When true this attribute
230
- # can have multiple values.
231
- def float_attr name, options = {}
232
- add_attribute(Attributes::FloatAttr.new(name, options))
233
- end
234
-
235
- # Adds sortable float attribute to this class.
236
- #
237
- # Persisted values are stored (and sorted) as strings. This makes it
238
- # more difficult to sort numbers because they don't sort
239
- # lexicographically unless they have been offset to be positive and
240
- # then zero padded.
241
- #
242
- # ### Postive Floats
243
- #
244
- # To store floats in a sort-friendly manor:
245
- #
246
- # sortable_float_attr :score, :range => (0..10)
247
- #
248
- # This will cause values like 5.5 to persist as a string like '05.5' so
249
- # that they can be sorted lexicographically.
250
- #
251
- # ### Negative Floats
252
- #
253
- # If you need to store negative sortable floats, increase your `:range`
254
- # to include a negative value.
255
- #
256
- # sortable_float_attr :position, :range => (-10..10)
257
- #
258
- # AWS::Record will add 10 to all values and zero pad them
259
- # (e.g. -10.0 will be represented as '00.0' and 10 will be represented as
260
- # '20.0'). This will allow the values to be compared lexicographically.
261
- #
262
- # @note If you change the `:range` after some values have been persisted
263
- # you must also manually migrate all of the old values to have the
264
- # correct padding & offset or they will be interpreted differently.
265
- #
266
- # @param [Symbol] name The name of the attribute.
267
- # @param [Hash] options
268
- # @option options [Range] :range The range of numbers this attribute
269
- # should represent. The min and max values of this range will determine
270
- # how many digits of precision are required and how much of an offset
271
- # is required to make the numbers sort lexicographically.
272
- # @option options [Boolean] :set (false) When true this attribute
273
- # can have multiple values.
274
- def sortable_float_attr name, options = {}
275
- add_attribute(Attributes::SortableFloatAttr.new(name, options))
276
- end
277
-
278
- # Adds a boolean attribute to this class.
279
- #
280
- # @example
281
- #
282
- # class Book < AWS::Record::Model
283
- # boolean_attr :read
284
- # end
285
- #
286
- # b = Book.new
287
- # b.read? # => false
288
- # b.read = true
289
- # b.read? # => true
290
- #
291
- # listing = Listing.new(:score => '123.456'
292
- # listing.score # => 123.456
293
- #
294
- # @param [Symbol] name The name of the attribute.
295
- def boolean_attr name, options = {}
296
-
297
- attr = add_attribute(Attributes::BooleanAttr.new(name, options))
298
-
299
- # add the boolean question mark method
300
- define_method("#{attr.name}?") do
301
- !!__send__(attr.name)
302
- end
303
-
304
- end
305
-
306
- # Adds a datetime attribute to this class.
307
- #
308
- # @example A standard datetime attribute
309
- #
310
- # class Recipe < AWS::Record::Model
311
- # datetime_attr :invented
312
- # end
313
- #
314
- # recipe = Recipe.new(:invented => Time.now)
315
- # recipe.invented #=> <DateTime ...>
316
- #
317
- # If you add a datetime_attr for `:created_at` and/or `:updated_at` those
318
- # will be automanaged.
319
- #
320
- # @param [Symbol] name The name of the attribute.
321
- #
322
- # @param [Hash] options
323
- #
324
- # @option options [Boolean] :set (false) When true this attribute
325
- # can have multiple date times.
326
- #
327
- def datetime_attr name, options = {}
328
- add_attribute(Record::Attributes::DateTimeAttr.new(name, options))
329
- end
330
-
331
- # Adds a date attribute to this class.
332
- #
333
- # @example A standard date attribute
334
- #
335
- # class Person < AWS::Record::Model
336
- # date_attr :birthdate
337
- # end
338
- #
339
- # baby = Person.new
340
- # baby.birthdate = Time.now
341
- # baby.birthdate #=> <Date: ....>
342
- #
343
- # @param [Symbol] name The name of the attribute.
344
- #
345
- # @param [Hash] options
346
- #
347
- # @option options [Boolean] :set (false) When true this attribute
348
- # can have multiple dates.
349
- #
350
- def date_attr name, options = {}
351
- add_attribute(Record::Attributes::DateAttr.new(name, options))
352
- end
353
-
354
- # A convenience method for adding the standard two datetime attributes
355
- # `:created_at` and `:updated_at`.
356
- #
357
- # @example
358
- #
359
- # class Recipe < AWS::Record::Model
360
- # timestamps
361
- # end
362
- #
363
- # recipe = Recipe.new
364
- # recipe.save
365
- # recipe.created_at #=> <DateTime ...>
366
- # recipe.updated_at #=> <DateTime ...>
367
- #
368
- def timestamps
369
- c = datetime_attr :created_at
370
- u = datetime_attr :updated_at
371
- [c, u]
372
- end
373
-
374
- end
375
- end
376
- end
377
- end
@@ -1,232 +0,0 @@
1
- # Copyright 2011-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License"). You
4
- # may not use this file except in compliance with the License. A copy of
5
- # the License is located at
6
- #
7
- # http://aws.amazon.com/apache2.0/
8
- #
9
- # or in the "license" file accompanying this file. This file is
10
- # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
11
- # ANY KIND, either express or implied. See the License for the specific
12
- # language governing permissions and limitations under the License.
13
-
14
- module AWS
15
- module Record
16
- class Model
17
- class << self
18
-
19
- # @param [String] id The id of the record to load.
20
- # @param [Hash] options
21
- # @option options [String] :shard Specifies what shard (i.e. domain)
22
- # should be searched.
23
- # @raise [RecordNotFound] Raises a record not found exception if there
24
- # was no data found for the given id.
25
- # @return [Record::HashModel] Returns the record with the given id.
26
- def find_by_id id, options = {}
27
-
28
- domain = sdb_domain(options[:shard] || options[:domain])
29
-
30
- data = domain.items[id].data.attributes
31
-
32
- raise RecordNotFound, "no data found for id: #{id}" if data.empty?
33
-
34
- obj = self.new(:shard => domain)
35
- obj.send(:hydrate, id, data)
36
- obj
37
-
38
- end
39
- alias_method :[], :find_by_id
40
-
41
- # Finds records in SimpleDB and returns them as objects of the
42
- # current class.
43
- #
44
- # Finding `:all` returns an enumerable scope object
45
- #
46
- # People.find(:all, :order => [:age, :desc], :limit => 10).each do |person|
47
- # puts person.name
48
- # end
49
- #
50
- # Finding `:first` returns a single record (or nil)
51
- #
52
- # boss = People.find(:first, :where => { :boss => true })
53
- #
54
- # Find accepts a hash of find modifiers (`:where`, `:order` and
55
- # `:limit`). You can also choose to omit these modifiers and
56
- # chain them on the scope object returned. In the following
57
- # example only one request is made to SimpleDB (when #each is
58
- # called)
59
- #
60
- # people = People.find(:all)
61
- #
62
- # johns = people.where(:name => 'John Doe')
63
- #
64
- # johns.order(:age, :desc).limit(10).each do |suspects|
65
- # # ...
66
- # end
67
- #
68
- # See also {where}, {order} and {limit} for more
69
- # information and options.
70
- #
71
- # @overload find(id)
72
- # @param id The record to find, raises an exception if the record is
73
- # not found.
74
- #
75
- # @overload find(mode, options = {})
76
- # @param [:all,:first] mode (:all) When finding `:all` matching records
77
- # and array is returned of records. When finding `:first` then
78
- # `nil` or a single record will be returned.
79
- # @param [Hash] options
80
- # @option options [Mixed] :where Conditions that determine what
81
- # records are returned.
82
- # @option options [String,Array] :sort The order records should be
83
- # returned in.
84
- # @option options [Integer] :limit The max number of records to fetch.
85
- def find *args
86
- new_scope.find(*args)
87
- end
88
-
89
- # Returns a chainable scope object that restricts further scopes to a
90
- # particular domain.
91
- #
92
- # Book.domain('books-2').each do |book|
93
- # # ...
94
- # end
95
- #
96
- # @param [String] shard_name
97
- # @return [Scope] Returns a scope for restricting the domain of subsequent
98
- def shard shard_name
99
- new_scope.shard(shard_name)
100
- end
101
- alias_method :domain, :shard
102
-
103
- # Returns an enumerable scope object represents all records.
104
- #
105
- # Book.all.each do |book|
106
- # # ...
107
- # end
108
- #
109
- # This method is equivalent to `find(:all)`, and therefore you can also
110
- # pass aditional options. See {.find} for more information on what
111
- # options you can pass.
112
- #
113
- # Book.all(:where => { :author' => 'me' }).each do |my_book|
114
- # # ...
115
- # end
116
- #
117
- # @return [Scope] Returns an enumerable scope object.
118
- def all options = {}
119
- new_scope.find(:all, options)
120
- end
121
-
122
- # Yields once for each record.
123
- def each &block
124
- all.each(&block)
125
- end
126
-
127
- # Counts records in SimpleDB.
128
- #
129
- # With no arguments, counts all records:
130
- #
131
- # People.count
132
- #
133
- # Accepts query options to count a subset of records:
134
- #
135
- # People.count(:where => { :boss => true })
136
- #
137
- # You can also count records on a scope object:
138
- #
139
- # People.find(:all).where(:boss => true).count
140
- #
141
- # See {find} and {Scope#count} for more details.
142
- #
143
- # @param [Hash] options (<code>{}</code>) Options for counting
144
- # records.
145
- #
146
- # @option options [Mixed] :where Conditions that determine what
147
- # records are counted.
148
- # @option options [Integer] :limit The max number of records to count.
149
- def count(options = {})
150
- new_scope.count(options)
151
- end
152
- alias_method :size, :count
153
-
154
- # @return [Object,nil] Returns the first record found. If there were
155
- # no records found, nil is returned.
156
- def first options = {}
157
- new_scope.first(options)
158
- end
159
-
160
- # Limits which records are retried from SimpleDB when performing a find.
161
- #
162
- # Simple string condition
163
- #
164
- # Car.where('color = "red" or color = "blue"').each {|car| ... }
165
- #
166
- # String with placeholders for quoting params
167
- #
168
- # Car.where('color = ?', 'red')
169
- #
170
- # Car.where('color = ? OR style = ?', 'red', 'compact')
171
- #
172
- # # produces a condition using in, like: WHERE color IN ('red', 'blue')
173
- # Car.where('color IN ?', ['red','blue'])
174
- #
175
- # Hash arguments
176
- #
177
- # # WHERE age = '40' AND gender = 'male'
178
- # People.where(:age => 40, :gender => 'male').each {|person| ... }
179
- #
180
- # # WHERE name IN ('John', 'Jane')
181
- # People.where(:name => ['John', 'Jane']).each{|person| ... }
182
- #
183
- # Chaining where with other scope modifiers
184
- #
185
- # # 10 most expensive red cars
186
- # Car.where(:color => 'red').order(:price, :desc).limit(10)
187
- #
188
- # @overload where(conditions_hash)
189
- # @param [Hash] conditions_hash A hash of attributes to values. Each
190
- # key/value pair from the hash becomes a find condition. All
191
- # conditions are joined by AND.
192
- #
193
- # @overload where(sql_fragment[, quote_params, ...])
194
- #
195
- def where *args
196
- new_scope.where(*args)
197
- end
198
-
199
- # Defines the order in which records are returned when performing a find.
200
- # SimpleDB only allows sorting by one attribute per request.
201
- #
202
- # # oldest to youngest
203
- # People.order(:age, :desc).each {|person| ... }
204
- #
205
- # You can chain order with the other scope modifiers:
206
- #
207
- # Pepole.order(:age, :desc).limit(10).each {|person| ... }
208
- #
209
- # @overload order(attribute, direction = :asc)
210
- # @param [String,Symbol] attribute The attribute to sort by.
211
- # @param [:asc,:desc] direction (:asc) The direction to sort.
212
- def order *args
213
- new_scope.order(*args)
214
- end
215
-
216
- # The maximum number of records to return. By default, all records
217
- # matching the where conditions will be returned from a find.
218
- #
219
- # People.limit(10).each {|person| ... }
220
- #
221
- # Limit can be chained with other scope modifiers:
222
- #
223
- # People.where(:age => 40).limit(10).each {|person| ... }
224
- #
225
- def limit limit
226
- new_scope.limit(limit)
227
- end
228
-
229
- end
230
- end
231
- end
232
- end