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,388 +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
- require 'date'
15
-
16
- module AWS
17
- module Record
18
- module Attributes
19
-
20
- # Base class for all of the AWS::Record attributes.
21
- class BaseAttr
22
-
23
- # @param [Symbol] name Name of this attribute. It should be a name that
24
- # is safe to use as a method.
25
- # @param [Hash] options
26
- # @option options [String] :persist_as Defaults to the name of the
27
- # attribute. You can pass a string to specify what the attribute
28
- # will be named in the backend storage.
29
- # @option options [Boolean] :set (false) When true this attribute can
30
- # accept multiple unique values.
31
- def initialize name, options = {}
32
- @name = name.to_s
33
- @options = options.dup
34
- if options[:set] and !self.class.allow_set?
35
- raise ArgumentError, "invalid option :set for #{self.class}"
36
- end
37
- end
38
-
39
- # @return [String] The name of this attribute
40
- attr_reader :name
41
-
42
- # @return [Hash] Attribute options passed to the constructor.
43
- attr_reader :options
44
-
45
- # @return [Boolean] Returns true if this attribute can have
46
- # multiple values.
47
- def set?
48
- options[:set] ? true : false
49
- end
50
-
51
- # @return Returns the default value for this attribute.
52
- def default_value
53
- if options[:default_value].is_a?(Proc)
54
- options[:default_value].call
55
- else
56
- options[:default_value]
57
- end
58
- end
59
-
60
- # @return [String] Returns the name this attribute will use
61
- # in the storage backend.
62
- def persist_as
63
- (options[:persist_as] || @name).to_s
64
- end
65
-
66
- # @param [Mixed] raw_value A single value to type cast.
67
- # @return [Mixed] Returns the type casted value.
68
- def type_cast raw_value
69
- self.class.type_cast(raw_value, options)
70
- end
71
-
72
- # @param [String] serialized_value The serialized string value.
73
- # @return [Mixed] Returns a deserialized type-casted value.
74
- def deserialize serialized_value
75
- self.class.deserialize(serialized_value, options)
76
- end
77
-
78
- # Takes the type casted value and serializes it
79
- # @param [Mixed] type_casted_value A single value to serialize.
80
- # @return [Mixed] Returns the serialized value.
81
- def serialize type_casted_value
82
- self.class.serialize(type_casted_value, options)
83
- end
84
-
85
- # @param [String] serialized_value The raw value returned from AWS.
86
- # @return [Mixed] Returns the type-casted deserialized value.
87
- def self.deserialize serialized_value, options = {}
88
- self.type_cast(serialized_value, options)
89
- end
90
-
91
- # @return [Boolean] Returns true if this attribute type can be used
92
- # with the `:set => true` option. Certain attirbutes can not
93
- # be represented with multiple values (like BooleanAttr).
94
- def self.allow_set?
95
- raise NotImplementedError
96
- end
97
-
98
- # @api private
99
- protected
100
- def self.expect klass, value, &block
101
- unless value.is_a?(klass)
102
- raise ArgumentError, "expected a #{klass}, got #{value.class}"
103
- end
104
- yield if block_given?
105
- end
106
-
107
- end
108
-
109
- class StringAttr < BaseAttr
110
-
111
- # Returns the value cast to a string. Empty strings are returned as
112
- # nil by default. Type casting is done by calling #to_s on the value.
113
- #
114
- # string_attr.type_cast(123)
115
- # # => '123'
116
- #
117
- # string_attr.type_cast('')
118
- # # => nil
119
- #
120
- # string_attr.type_cast('', :preserve_empty_strings => true)
121
- # # => ''
122
- #
123
- # @param [Mixed] raw_value
124
- # @param [Hash] options
125
- # @option options [Boolean] :preserve_empty_strings (false) When true,
126
- # empty strings are preserved and not cast to nil.
127
- # @return [String,nil] The type casted value.
128
- def self.type_cast raw_value, options = {}
129
- case raw_value
130
- when nil then nil
131
- when '' then options[:preserve_empty_strings] ? '' : nil
132
- when String then raw_value
133
- else raw_value.to_s
134
- end
135
- end
136
-
137
- # Returns a serialized representation of the string value suitable for
138
- # storing in SimpleDB.
139
- # @param [String] string
140
- # @param [Hash] options
141
- # @return [String] The serialized string.
142
- def self.serialize string, options = {}
143
- unless string.is_a?(String)
144
- msg = "expected a String value, got #{string.class}"
145
- raise ArgumentError, msg
146
- end
147
- string
148
- end
149
-
150
- # @api private
151
- def self.allow_set?
152
- true
153
- end
154
-
155
- end
156
-
157
- class BooleanAttr < BaseAttr
158
-
159
- def self.type_cast raw_value, options = {}
160
- case raw_value
161
- when nil then nil
162
- when '' then nil
163
- when false, 'false', '0', 0 then false
164
- else true
165
- end
166
- end
167
-
168
- def self.serialize boolean, options = {}
169
- case boolean
170
- when false then 0
171
- when true then 1
172
- else
173
- msg = "expected a boolean value, got #{boolean.class}"
174
- raise ArgumentError, msg
175
- end
176
- end
177
-
178
- # @api private
179
- def self.allow_set?
180
- false
181
- end
182
-
183
- end
184
-
185
- class IntegerAttr < BaseAttr
186
-
187
- # Returns value cast to an integer. Empty strings are cast to
188
- # nil by default. Type casting is done by calling #to_i on the value.
189
- #
190
- # int_attribute.type_cast('123')
191
- # #=> 123
192
- #
193
- # int_attribute.type_cast('')
194
- # #=> nil
195
- #
196
- # @param [Mixed] raw_value The value to type cast to an integer.
197
- # @return [Integer,nil] Returns the type casted integer or nil
198
- def self.type_cast raw_value, options = {}
199
- case raw_value
200
- when nil then nil
201
- when '' then nil
202
- when Integer then raw_value
203
- else
204
- raw_value.respond_to?(:to_i) ?
205
- raw_value.to_i :
206
- raw_value.to_s.to_i
207
- end
208
- end
209
-
210
- # Returns a serialized representation of the integer value suitable for
211
- # storing in SimpleDB.
212
- #
213
- # attribute.serialize(123)
214
- # #=> '123'
215
- #
216
- # @param [Integer] integer The number to serialize.
217
- # @param [Hash] options
218
- # @return [String] A serialized representation of the integer.
219
- def self.serialize integer, options = {}
220
- expect(Integer, integer) { integer }
221
- end
222
-
223
- # @api private
224
- def self.allow_set?
225
- true
226
- end
227
-
228
- end
229
-
230
- class FloatAttr < BaseAttr
231
-
232
- def self.type_cast raw_value, options = {}
233
- case raw_value
234
- when nil then nil
235
- when '' then nil
236
- when Float then raw_value
237
- else
238
- raw_value.respond_to?(:to_f) ?
239
- raw_value.to_f :
240
- raw_value.to_s.to_f
241
- end
242
- end
243
-
244
- def self.serialize float, options = {}
245
- expect(Float, float) { float }
246
- end
247
-
248
- # @api private
249
- def self.allow_set?
250
- true
251
- end
252
-
253
- end
254
-
255
- class DateAttr < BaseAttr
256
-
257
- # Returns value cast to a Date object. Empty strings are cast to
258
- # nil. Values are cast first to strings and then passed to
259
- # Date.parse. Integers are treated as timestamps.
260
- #
261
- # date_attribute.type_cast('2000-01-02T10:11:12Z')
262
- # #=> #<Date: 4903091/2,0,2299161>
263
- #
264
- # date_attribute.type_cast(1306170146)
265
- # #<Date: 4911409/2,0,2299161>
266
- #
267
- # date_attribute.type_cast('')
268
- # #=> nil
269
- #
270
- # date_attribute.type_cast(nil)
271
- # #=> nil
272
- #
273
- # @param [Mixed] raw_value The value to cast to a Date object.
274
- # @param [Hash] options
275
- # @return [Date,nil]
276
- def self.type_cast raw_value, options = {}
277
- case raw_value
278
- when nil then nil
279
- when '' then nil
280
- when Date then raw_value
281
- when Integer then
282
- begin
283
- Date.parse(Time.at(raw_value).to_s) # assumed timestamp
284
- rescue
285
- nil
286
- end
287
- else
288
- begin
289
- Date.parse(raw_value.to_s) # Time, DateTime or String
290
- rescue
291
- nil
292
- end
293
- end
294
- end
295
-
296
- # Returns a Date object encoded as a string (suitable for sorting).
297
- #
298
- # attribute.serialize(DateTime.parse('2001-01-01'))
299
- # #=> '2001-01-01'
300
- #
301
- # @param [Date] date The date to serialize.
302
- #
303
- # @param [Hash] options
304
- #
305
- # @return [String] Returns the date object serialized to a string
306
- # ('YYYY-MM-DD').
307
- #
308
- def self.serialize date, options = {}
309
- unless date.is_a?(Date)
310
- raise ArgumentError, "expected a Date value, got #{date.class}"
311
- end
312
- date.strftime('%Y-%m-%d')
313
- end
314
-
315
- # @api private
316
- def self.allow_set?
317
- true
318
- end
319
-
320
- end
321
-
322
- class DateTimeAttr < BaseAttr
323
-
324
- # Returns value cast to a DateTime object. Empty strings are cast to
325
- # nil. Values are cast first to strings and then passed to
326
- # DateTime.parse. Integers are treated as timestamps.
327
- #
328
- # datetime_attribute.type_cast('2000-01-02')
329
- # #=> #<DateTime: 4903091/2,0,2299161>
330
- #
331
- # datetime_attribute.type_cast(1306170146)
332
- # #<DateTime: 106086465073/43200,-7/24,2299161>
333
- #
334
- # datetime_attribute.type_cast('')
335
- # #=> nil
336
- #
337
- # datetime_attribute.type_cast(nil)
338
- # #=> nil
339
- #
340
- # @param [Mixed] raw_value The value to cast to a DateTime object.
341
- # @param [Hash] options
342
- # @return [DateTime,nil]
343
- def self.type_cast raw_value, options = {}
344
- case raw_value
345
- when nil then nil
346
- when '' then nil
347
- when DateTime then raw_value
348
- when Integer then
349
- begin
350
- DateTime.parse(Time.at(raw_value).to_s) # timestamp
351
- rescue
352
- nil
353
- end
354
- else
355
- begin
356
- DateTime.parse(raw_value.to_s) # Time, Date or String
357
- rescue
358
- nil
359
- end
360
- end
361
- end
362
-
363
- # Returns a DateTime object encoded as a string (suitable for sorting).
364
- #
365
- # attribute.serialize(DateTime.parse('2001-01-01'))
366
- # #=> '2001-01-01T00:00:00:Z)
367
- #
368
- # @param [DateTime] datetime The datetime object to serialize.
369
- # @param [Hash] options
370
- # @return [String] Returns the datetime object serialized to a string
371
- # in ISO8601 format (e.g. '2011-01-02T10:11:12Z')
372
- def self.serialize datetime, options = {}
373
- unless datetime.is_a?(DateTime)
374
- msg = "expected a DateTime value, got #{datetime.class}"
375
- raise ArgumentError, msg
376
- end
377
- datetime.strftime('%Y-%m-%dT%H:%M:%S%Z')
378
- end
379
-
380
- # @api private
381
- def self.allow_set?
382
- true
383
- end
384
-
385
- end
386
- end
387
- end
388
- end
@@ -1,38 +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
-
17
- # @api private
18
- module Conversion
19
-
20
- # @api private
21
- def to_model
22
- self
23
- end
24
-
25
- # @api private
26
- def to_key
27
- persisted? ? [id] : nil
28
- end
29
-
30
- # @api private
31
- def to_param
32
- persisted? ? to_key.join('-') : nil
33
- end
34
-
35
- end
36
-
37
- end
38
- end
@@ -1,287 +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
-
17
- # Provides a way to track changes in your records.
18
- #
19
- # my_book = Book['bookid']
20
- #
21
- # my_book.changed? #=> false
22
- # my_book.title #=> "My Book"
23
- # my_book.title = "My Awesome Book"
24
- # my_book.changed? #=> true
25
- #
26
- # my_book = Book['bookid']
27
- #
28
- # You can inspect further and get a list of changed attributes
29
- #
30
- # my_book.changed #=> ['title']
31
- #
32
- # Or you can get a more detailed description of the changes. {#changes}
33
- # returns a hash of changed attributes (keys) with their old and new
34
- # values.
35
- #
36
- # my_book.changes
37
- # #=> { 'title' => ['My Book', 'My Awesome Book']
38
- #
39
- # For every configured attribute you also get a handful of methods
40
- # for inspecting changes on that attribute. Given the following
41
- # attribute:
42
- #
43
- # string_attr :title
44
- #
45
- # You can now call any of the following methods:
46
- #
47
- # * title_changed?
48
- # * title_change
49
- # * title_was
50
- # * reset_title!
51
- # * title_will_change!
52
- #
53
- # Given the title change from above:
54
- #
55
- # my_book.title_changed? #=> true
56
- # my_book.title_change #=> ['My Book', 'My Awesome Book']
57
- # my_book.title_was #=> ['My Book']
58
- #
59
- # my_book.reset_title!
60
- # my_book.title #=> 'My Book'
61
- #
62
- # ## In-Place Editing
63
- #
64
- # Dirty tracking works by comparing incoming attribute values upon
65
- # assignment against the value that was there previously. If you
66
- # use functions against the value that modify it (like gsub!)
67
- # you must notify your record about the coming change.
68
- #
69
- # my_book.title #=> 'My Book'
70
- # my_book.title_will_change!
71
- # my_book.title.gsub!(/My/, 'Your')
72
- # my_book.title_change #=> ['My Book', 'Your Book']
73
- #
74
- # ## Partial Updates
75
- #
76
- # Dirty tracking makes it possible to only persist those attributes
77
- # that have changed since they were loaded. This speeds up requests
78
- # against AWS when saving data.
79
- #
80
- module DirtyTracking
81
-
82
- # Returns true if this model has unsaved changes.
83
- #
84
- # b = Book.new(:title => 'My Book')
85
- # b.changed?
86
- # #=> true
87
- #
88
- # New objects and objects freshly loaded should not have any changes:
89
- #
90
- # b = Book.new
91
- # b.changed? #=> false
92
- #
93
- # b = Book.first
94
- # b.changed? #=> false
95
- #
96
- # @return [Boolean] Returns true if any of the attributes have
97
- # unsaved changes.
98
- def changed?
99
- !orig_values.empty?
100
- end
101
-
102
- # Returns an array of attribute names that have changes.
103
- #
104
- # book.changed #=> []
105
- # person.title = 'New Title'
106
- # book.changed #=> ['title']
107
- #
108
- # @return [Array] Returns an array of attribute names that have
109
- # unsaved changes.
110
- def changed
111
- orig_values.keys
112
- end
113
-
114
- # Returns the changed attributes in a hash. Keys are attribute names,
115
- # values are two value arrays. The first value is the previous
116
- # attribute value, the second is the current attribute value.
117
- #
118
- # book.title = 'New Title'
119
- # book.changes
120
- # #=> { 'title' => ['Old Title', 'New Title'] }
121
- #
122
- # @return [Hash] Returns a hash of attribute changes.
123
- def changes
124
- changed.inject({}) do |changes, attr_name|
125
- changes[attr_name] = attribute_change(attr_name)
126
- changes
127
- end
128
- end
129
-
130
- # Returns true if the named attribute has unsaved changes.
131
- #
132
- # This is an attribute method. The following two expressions
133
- # are equivilent:
134
- #
135
- # book.title_changed?
136
- # book.attribute_changed?(:title)
137
- #
138
- # @param [String] attribute_name Name of the attribute to check
139
- # for changes.
140
- #
141
- # @return [Boolean] Returns true if the named attribute
142
- # has unsaved changes.
143
- # @api private
144
- private
145
- def attribute_changed? attribute_name
146
- orig_values.keys.include?(attribute_name)
147
- end
148
-
149
- # Returns an array of the old value and the new value for
150
- # attributes that have unsaved changes, returns nil otherwise.
151
- #
152
- # This is an attribute method. The following two expressions
153
- # are equivilent:
154
- #
155
- # book.title_change
156
- # book.attribute_change(:title)
157
- #
158
- # @example Asking for changes on an unchanged attribute
159
- #
160
- # book = Book.new
161
- # book.title_change #=> nil
162
- #
163
- # @example Getting changed attributes on a new object
164
- #
165
- # book = Book.new(:title => 'My Book')
166
- # book.title_change #=> [nil, 'My Book']
167
- #
168
- # @example Getting changed attributes on a loaded object
169
- #
170
- # book = Book.first
171
- # book.title = 'New Title'
172
- # book.title_change #=> ['Old Title', 'New Title']
173
- #
174
- # @param [String] attribute_name Name of the attribute to fetch
175
- # a change for.
176
- # @return [Boolean] Returns true if the named attribute
177
- # has unsaved changes.
178
- # @api private
179
- private
180
- def attribute_change attribute_name
181
- self.class.attribute_for(attribute_name) do |attribute|
182
- if orig_values.has_key?(attribute.name)
183
- [orig_values[attribute.name], __send__(attribute.name)]
184
- else
185
- nil
186
- end
187
- end
188
- end
189
-
190
- # Returns the previous value for changed attributes, or the current
191
- # value for unchanged attributes.
192
- #
193
- # This is an attribute method. The following two expressions
194
- # are equivilent:
195
- #
196
- # book.title_was
197
- # book.attribute_was(:title)
198
- #
199
- # @example Returns the previous value for changed attributes:
200
- #
201
- # book = Book.where(:title => 'My Book').first
202
- # book.title = 'New Title'
203
- # book.title_was #=> 'My Book'
204
- #
205
- # @example Returns the current value for unchanged attributes:
206
- #
207
- # book = Book.where(:title => 'My Book').first
208
- # book.title_was #=> 'My Book'
209
- #
210
- # @return Returns the previous value for changed attributes
211
- # or the current value for unchanged attributes.
212
- # @api private
213
- private
214
- def attribute_was attribute_name
215
- self.class.attribute_for(attribute_name) do |attribute|
216
- name = attribute.name
217
- orig_values.has_key?(name) ? orig_values[name] : __send__(name)
218
- end
219
- end
220
-
221
- # Reverts any changes to the attribute, restoring its original value.
222
- # @param [String] attribute_name Name of the attribute to reset.
223
- # @return [nil]
224
- # @api private
225
- private
226
- def reset_attribute! attribute_name
227
- __send__("#{attribute_name}=", attribute_was(attribute_name))
228
- nil
229
- end
230
-
231
- # Indicate to the record that you are about to edit an attribute
232
- # in place.
233
- # @param [String] attribute_name Name of the attribute that will
234
- # be changed.
235
- # @return [nil]
236
- # @api private
237
- private
238
- def attribute_will_change! attribute_name
239
- self.class.attribute_for(attribute_name) do |attribute|
240
- name = attribute.name
241
- unless orig_values.has_key?(name)
242
- was = __send__(name)
243
- begin
244
- # booleans, nil, etc all #respond_to?(:clone), but they raise
245
- # a TypeError when you attempt to dup them.
246
- orig_values[name] = was.clone
247
- rescue TypeError
248
- orig_values[name] = was
249
- end
250
- end
251
- end
252
- nil
253
- end
254
-
255
- private
256
- def orig_values
257
- @_orig_values ||= {}
258
- end
259
-
260
- private
261
- def clear_change! attribute_name
262
- orig_values.delete(attribute_name)
263
- end
264
-
265
- private
266
- def ignore_changes &block
267
- begin
268
- @_ignore_changes = true
269
- yield
270
- ensure
271
- @_ignore_changes = false
272
- end
273
- end
274
-
275
- private
276
- def if_tracking_changes &block
277
- yield unless @_ignore_changes
278
- end
279
-
280
- private
281
- def clear_changes!
282
- orig_values.clear
283
- end
284
-
285
- end
286
- end
287
- end