aws-sdk 1.8.0 → 1.8.1

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 (521) hide show
  1. data/LICENSE.txt +1 -1
  2. data/lib/aws-sdk.rb +3 -1
  3. data/lib/aws.rb +1 -1
  4. data/lib/aws/api_config/AutoScaling-2011-01-01.yml +31 -2
  5. data/lib/aws/api_config/CloudFormation-2010-05-15.yml +16 -8
  6. data/lib/aws/api_config/CloudFront-2012-05-05.yml +1 -1
  7. data/lib/aws/api_config/CloudSearch-2011-02-01.yml +1 -1
  8. data/lib/aws/api_config/CloudWatch-2010-08-01.yml +1 -1
  9. data/lib/aws/api_config/DataPipeline-2012-10-29.yml +1 -1
  10. data/lib/aws/api_config/DynamoDB-2011-12-05.yml +1 -1
  11. data/lib/aws/api_config/{EC2-2012-07-20.yml → EC2-2012-12-01.yml} +26 -2
  12. data/lib/aws/api_config/ELB-2012-06-01.yml +1 -1
  13. data/lib/aws/api_config/EMR-2009-03-31.yml +1 -1
  14. data/lib/aws/api_config/ElastiCache-2012-03-09.yml +1 -1
  15. data/lib/aws/api_config/ElasticBeanstalk-2010-12-01.yml +1 -1
  16. data/lib/aws/api_config/ElasticTranscoder-2012-09-25.yml +1036 -0
  17. data/lib/aws/api_config/Glacier-2012-06-01.yml +7 -11
  18. data/lib/aws/api_config/IAM-2010-05-08.yml +1 -1
  19. data/lib/aws/api_config/ImportExport-2010-06-01.yml +1 -1
  20. data/lib/aws/api_config/{RDS-2012-07-31.yml → RDS-2012-09-17.yml} +247 -7
  21. data/lib/aws/api_config/Route53-2012-02-29.yml +1 -1
  22. data/lib/aws/api_config/SNS-2010-03-31.yml +1 -1
  23. data/lib/aws/api_config/SQS-2012-11-05.yml +1 -1
  24. data/lib/aws/api_config/STS-2011-06-15.yml +1 -1
  25. data/lib/aws/api_config/SimpleDB-2009-04-15.yml +1 -1
  26. data/lib/aws/api_config/SimpleEmailService-2010-12-01.yml +1 -1
  27. data/lib/aws/api_config/SimpleWorkflow-2012-01-25.yml +1 -1
  28. data/lib/aws/api_config/StorageGateway-2012-06-30.yml +1 -1
  29. data/lib/aws/auto_scaling.rb +1 -1
  30. data/lib/aws/auto_scaling/activity.rb +1 -1
  31. data/lib/aws/auto_scaling/activity_collection.rb +1 -1
  32. data/lib/aws/auto_scaling/client.rb +19 -6
  33. data/lib/aws/auto_scaling/config.rb +1 -1
  34. data/lib/aws/auto_scaling/errors.rb +1 -1
  35. data/lib/aws/auto_scaling/group.rb +2 -2
  36. data/lib/aws/auto_scaling/group_collection.rb +1 -1
  37. data/lib/aws/auto_scaling/group_options.rb +1 -1
  38. data/lib/aws/auto_scaling/instance.rb +1 -1
  39. data/lib/aws/auto_scaling/instance_collection.rb +1 -1
  40. data/lib/aws/auto_scaling/launch_configuration.rb +1 -1
  41. data/lib/aws/auto_scaling/launch_configuration_collection.rb +2 -2
  42. data/lib/aws/auto_scaling/notification_configuration.rb +1 -1
  43. data/lib/aws/auto_scaling/notification_configuration_collection.rb +1 -1
  44. data/lib/aws/auto_scaling/request.rb +1 -1
  45. data/lib/aws/auto_scaling/scaling_policy.rb +1 -1
  46. data/lib/aws/auto_scaling/scaling_policy_collection.rb +1 -1
  47. data/lib/aws/auto_scaling/scaling_policy_options.rb +1 -1
  48. data/lib/aws/auto_scaling/scheduled_action.rb +1 -1
  49. data/lib/aws/auto_scaling/scheduled_action_collection.rb +1 -1
  50. data/lib/aws/auto_scaling/tag.rb +1 -1
  51. data/lib/aws/auto_scaling/tag_collection.rb +1 -1
  52. data/lib/aws/cloud_formation.rb +1 -1
  53. data/lib/aws/cloud_formation/client.rb +154 -52
  54. data/lib/aws/cloud_formation/config.rb +1 -1
  55. data/lib/aws/cloud_formation/errors.rb +1 -1
  56. data/lib/aws/cloud_formation/request.rb +1 -1
  57. data/lib/aws/cloud_formation/stack.rb +1 -2
  58. data/lib/aws/cloud_formation/stack_collection.rb +7 -4
  59. data/lib/aws/cloud_formation/stack_event.rb +1 -1
  60. data/lib/aws/cloud_formation/stack_event_collection.rb +1 -1
  61. data/lib/aws/cloud_formation/stack_options.rb +1 -1
  62. data/lib/aws/cloud_formation/stack_output.rb +1 -1
  63. data/lib/aws/cloud_formation/stack_resource.rb +1 -1
  64. data/lib/aws/cloud_formation/stack_resource_collection.rb +1 -1
  65. data/lib/aws/cloud_formation/stack_resource_summary_collection.rb +1 -1
  66. data/lib/aws/cloud_formation/stack_summary_collection.rb +1 -1
  67. data/lib/aws/cloud_front.rb +2 -2
  68. data/lib/aws/cloud_front/client.rb +5 -5
  69. data/lib/aws/cloud_front/config.rb +1 -1
  70. data/lib/aws/cloud_front/errors.rb +1 -1
  71. data/lib/aws/cloud_front/request.rb +1 -1
  72. data/lib/aws/cloud_search.rb +42 -1
  73. data/lib/aws/cloud_search/client.rb +5 -5
  74. data/lib/aws/cloud_search/config.rb +1 -1
  75. data/lib/aws/cloud_search/errors.rb +1 -1
  76. data/lib/aws/cloud_search/request.rb +1 -1
  77. data/lib/aws/cloud_watch.rb +43 -1
  78. data/lib/aws/cloud_watch/alarm.rb +1 -1
  79. data/lib/aws/cloud_watch/alarm_collection.rb +1 -1
  80. data/lib/aws/cloud_watch/alarm_history_item.rb +1 -1
  81. data/lib/aws/cloud_watch/alarm_history_item_collection.rb +1 -1
  82. data/lib/aws/cloud_watch/client.rb +5 -5
  83. data/lib/aws/cloud_watch/config.rb +1 -1
  84. data/lib/aws/cloud_watch/errors.rb +1 -1
  85. data/lib/aws/cloud_watch/metric.rb +1 -1
  86. data/lib/aws/cloud_watch/metric_alarm_collection.rb +1 -1
  87. data/lib/aws/cloud_watch/metric_collection.rb +1 -1
  88. data/lib/aws/cloud_watch/metric_statistics.rb +1 -1
  89. data/lib/aws/cloud_watch/request.rb +1 -1
  90. data/lib/aws/core.rb +6 -10
  91. data/lib/aws/core/async_handle.rb +1 -1
  92. data/lib/aws/core/autoloader.rb +1 -1
  93. data/lib/aws/core/cacheable.rb +1 -1
  94. data/lib/aws/core/client.rb +2 -2
  95. data/lib/aws/core/collection.rb +1 -1
  96. data/lib/aws/core/collection/simple.rb +1 -1
  97. data/lib/aws/core/collection/with_limit_and_next_token.rb +1 -1
  98. data/lib/aws/core/collection/with_next_token.rb +1 -1
  99. data/lib/aws/core/configuration.rb +5 -2
  100. data/lib/aws/core/credential_providers.rb +23 -4
  101. data/lib/aws/core/data.rb +1 -1
  102. data/lib/aws/core/http/curb_handler.rb +1 -1
  103. data/lib/aws/core/http/handler.rb +1 -1
  104. data/lib/aws/core/http/net_http_handler.rb +19 -14
  105. data/lib/aws/core/http/request.rb +1 -1
  106. data/lib/aws/core/http/response.rb +7 -4
  107. data/lib/aws/core/indifferent_hash.rb +1 -1
  108. data/lib/aws/core/inflection.rb +1 -1
  109. data/lib/aws/core/json_client.rb +1 -1
  110. data/lib/aws/core/json_parser.rb +1 -1
  111. data/lib/aws/core/json_request_builder.rb +1 -1
  112. data/lib/aws/core/json_response_parser.rb +1 -1
  113. data/lib/aws/core/lazy_error_classes.rb +1 -1
  114. data/lib/aws/core/log_formatter.rb +1 -1
  115. data/lib/aws/core/managed_file.rb +1 -1
  116. data/lib/aws/core/meta_utils.rb +1 -1
  117. data/lib/aws/core/model.rb +1 -1
  118. data/lib/aws/core/naming.rb +1 -1
  119. data/lib/aws/core/option_grammar.rb +1 -1
  120. data/lib/aws/core/options/json_serializer.rb +1 -1
  121. data/lib/aws/core/options/validator.rb +1 -1
  122. data/lib/aws/core/options/xml_serializer.rb +2 -2
  123. data/lib/aws/core/page_result.rb +1 -1
  124. data/lib/aws/core/policy.rb +1 -1
  125. data/lib/aws/core/query_client.rb +1 -1
  126. data/lib/aws/core/query_error_parser.rb +1 -1
  127. data/lib/aws/core/query_request_builder.rb +1 -1
  128. data/lib/aws/core/query_response_parser.rb +1 -1
  129. data/lib/aws/core/resource.rb +1 -1
  130. data/lib/aws/core/resource_cache.rb +1 -1
  131. data/lib/aws/core/response.rb +1 -1
  132. data/lib/aws/core/response_cache.rb +1 -1
  133. data/lib/aws/core/rest_error_parser.rb +1 -1
  134. data/lib/aws/core/rest_json_client.rb +1 -1
  135. data/lib/aws/core/rest_request_builder.rb +4 -4
  136. data/lib/aws/core/rest_response_parser.rb +13 -4
  137. data/lib/aws/core/rest_xml_client.rb +1 -1
  138. data/lib/aws/core/service_interface.rb +1 -1
  139. data/lib/aws/core/signature/version_2.rb +1 -1
  140. data/lib/aws/core/signature/version_3.rb +1 -1
  141. data/lib/aws/core/signature/version_3_https.rb +1 -1
  142. data/lib/aws/core/signature/version_4.rb +1 -1
  143. data/lib/aws/core/signer.rb +1 -1
  144. data/lib/aws/core/uri_escape.rb +1 -1
  145. data/lib/aws/core/xml/frame.rb +1 -1
  146. data/lib/aws/core/xml/frame_stack.rb +1 -1
  147. data/lib/aws/core/xml/grammar.rb +1 -1
  148. data/lib/aws/core/xml/parser.rb +1 -1
  149. data/lib/aws/core/xml/root_frame.rb +1 -1
  150. data/lib/aws/core/xml/sax_handlers/libxml.rb +1 -1
  151. data/lib/aws/core/xml/sax_handlers/nokogiri.rb +1 -1
  152. data/lib/aws/core/xml/sax_handlers/ox.rb +1 -1
  153. data/lib/aws/core/xml/sax_handlers/rexml.rb +1 -1
  154. data/lib/aws/core/xml/stub.rb +1 -1
  155. data/lib/aws/data_pipeline.rb +42 -1
  156. data/lib/aws/data_pipeline/client.rb +91 -144
  157. data/lib/aws/data_pipeline/config.rb +1 -1
  158. data/lib/aws/data_pipeline/errors.rb +1 -1
  159. data/lib/aws/data_pipeline/request.rb +1 -1
  160. data/lib/aws/dynamo_db.rb +1 -1
  161. data/lib/aws/dynamo_db/attribute_collection.rb +1 -1
  162. data/lib/aws/dynamo_db/batch_get.rb +1 -1
  163. data/lib/aws/dynamo_db/batch_write.rb +1 -1
  164. data/lib/aws/dynamo_db/binary.rb +1 -1
  165. data/lib/aws/dynamo_db/client.rb +5 -5
  166. data/lib/aws/dynamo_db/config.rb +1 -1
  167. data/lib/aws/dynamo_db/errors.rb +1 -1
  168. data/lib/aws/dynamo_db/expectations.rb +1 -1
  169. data/lib/aws/dynamo_db/item.rb +1 -1
  170. data/lib/aws/dynamo_db/item_collection.rb +11 -11
  171. data/lib/aws/dynamo_db/item_data.rb +1 -1
  172. data/lib/aws/dynamo_db/keys.rb +1 -1
  173. data/lib/aws/dynamo_db/primary_key_element.rb +1 -1
  174. data/lib/aws/dynamo_db/request.rb +1 -1
  175. data/lib/aws/dynamo_db/resource.rb +1 -1
  176. data/lib/aws/dynamo_db/table.rb +1 -1
  177. data/lib/aws/dynamo_db/table_collection.rb +1 -1
  178. data/lib/aws/dynamo_db/types.rb +1 -1
  179. data/lib/aws/ec2.rb +1 -1
  180. data/lib/aws/ec2/attachment.rb +1 -1
  181. data/lib/aws/ec2/attachment_collection.rb +1 -1
  182. data/lib/aws/ec2/availability_zone.rb +1 -1
  183. data/lib/aws/ec2/availability_zone_collection.rb +1 -1
  184. data/lib/aws/ec2/block_device_mappings.rb +1 -1
  185. data/lib/aws/ec2/client.rb +26 -5
  186. data/lib/aws/ec2/collection.rb +1 -1
  187. data/lib/aws/ec2/config.rb +1 -1
  188. data/lib/aws/ec2/config_transform.rb +1 -1
  189. data/lib/aws/ec2/customer_gateway.rb +1 -1
  190. data/lib/aws/ec2/customer_gateway_collection.rb +1 -1
  191. data/lib/aws/ec2/dhcp_options.rb +1 -1
  192. data/lib/aws/ec2/dhcp_options_collection.rb +1 -1
  193. data/lib/aws/ec2/elastic_ip.rb +1 -1
  194. data/lib/aws/ec2/elastic_ip_collection.rb +1 -1
  195. data/lib/aws/ec2/errors.rb +1 -1
  196. data/lib/aws/ec2/export_task.rb +1 -1
  197. data/lib/aws/ec2/export_task_collection.rb +1 -1
  198. data/lib/aws/ec2/filtered_collection.rb +1 -1
  199. data/lib/aws/ec2/has_permissions.rb +1 -1
  200. data/lib/aws/ec2/image.rb +1 -1
  201. data/lib/aws/ec2/image_collection.rb +1 -1
  202. data/lib/aws/ec2/instance.rb +1 -1
  203. data/lib/aws/ec2/instance_collection.rb +2 -2
  204. data/lib/aws/ec2/internet_gateway.rb +1 -1
  205. data/lib/aws/ec2/internet_gateway/attachment.rb +1 -1
  206. data/lib/aws/ec2/internet_gateway_collection.rb +1 -1
  207. data/lib/aws/ec2/key_pair.rb +1 -1
  208. data/lib/aws/ec2/key_pair_collection.rb +1 -1
  209. data/lib/aws/ec2/network_acl.rb +1 -1
  210. data/lib/aws/ec2/network_acl/association.rb +1 -1
  211. data/lib/aws/ec2/network_acl/entry.rb +1 -1
  212. data/lib/aws/ec2/network_acl_collection.rb +1 -1
  213. data/lib/aws/ec2/network_interface.rb +1 -1
  214. data/lib/aws/ec2/network_interface/attachment.rb +1 -1
  215. data/lib/aws/ec2/network_interface_collection.rb +1 -1
  216. data/lib/aws/ec2/permission_collection.rb +1 -1
  217. data/lib/aws/ec2/region.rb +27 -19
  218. data/lib/aws/ec2/region_collection.rb +1 -1
  219. data/lib/aws/ec2/request.rb +1 -1
  220. data/lib/aws/ec2/reserved_instances.rb +1 -1
  221. data/lib/aws/ec2/reserved_instances_collection.rb +1 -1
  222. data/lib/aws/ec2/reserved_instances_offering.rb +1 -1
  223. data/lib/aws/ec2/reserved_instances_offering_collection.rb +1 -1
  224. data/lib/aws/ec2/resource.rb +1 -1
  225. data/lib/aws/ec2/resource_tag_collection.rb +1 -1
  226. data/lib/aws/ec2/route_table.rb +1 -1
  227. data/lib/aws/ec2/route_table/association.rb +1 -1
  228. data/lib/aws/ec2/route_table/route.rb +7 -1
  229. data/lib/aws/ec2/route_table_collection.rb +1 -1
  230. data/lib/aws/ec2/security_group.rb +15 -5
  231. data/lib/aws/ec2/security_group/ip_permission.rb +6 -2
  232. data/lib/aws/ec2/security_group/ip_permission_collection.rb +1 -1
  233. data/lib/aws/ec2/security_group_collection.rb +1 -1
  234. data/lib/aws/ec2/snapshot.rb +1 -1
  235. data/lib/aws/ec2/snapshot_collection.rb +1 -1
  236. data/lib/aws/ec2/subnet.rb +1 -1
  237. data/lib/aws/ec2/subnet_collection.rb +1 -1
  238. data/lib/aws/ec2/tag.rb +1 -1
  239. data/lib/aws/ec2/tag_collection.rb +1 -1
  240. data/lib/aws/ec2/tagged_collection.rb +1 -1
  241. data/lib/aws/ec2/tagged_item.rb +1 -1
  242. data/lib/aws/ec2/volume.rb +1 -1
  243. data/lib/aws/ec2/volume_collection.rb +1 -1
  244. data/lib/aws/ec2/vpc.rb +1 -1
  245. data/lib/aws/ec2/vpc_collection.rb +1 -1
  246. data/lib/aws/ec2/vpn_connection.rb +1 -1
  247. data/lib/aws/ec2/vpn_connection/telemetry.rb +1 -1
  248. data/lib/aws/ec2/vpn_connection_collection.rb +1 -1
  249. data/lib/aws/ec2/vpn_gateway.rb +1 -1
  250. data/lib/aws/ec2/vpn_gateway/attachment.rb +1 -1
  251. data/lib/aws/ec2/vpn_gateway_collection.rb +1 -1
  252. data/lib/aws/elastic_beanstalk.rb +1 -1
  253. data/lib/aws/elastic_beanstalk/client.rb +5 -5
  254. data/lib/aws/elastic_beanstalk/config.rb +1 -1
  255. data/lib/aws/elastic_beanstalk/errors.rb +1 -1
  256. data/lib/aws/elastic_beanstalk/request.rb +1 -1
  257. data/lib/aws/elastic_transcoder.rb +30 -0
  258. data/lib/aws/elastic_transcoder/client.rb +672 -0
  259. data/lib/aws/elastic_transcoder/config.rb +18 -0
  260. data/lib/aws/elastic_transcoder/errors.rb +23 -0
  261. data/lib/aws/elastic_transcoder/request.rb +30 -0
  262. data/lib/aws/elasticache.rb +1 -1
  263. data/lib/aws/elasticache/client.rb +5 -6
  264. data/lib/aws/elasticache/config.rb +1 -1
  265. data/lib/aws/elasticache/errors.rb +1 -1
  266. data/lib/aws/elasticache/request.rb +1 -1
  267. data/lib/aws/elb.rb +1 -1
  268. data/lib/aws/elb/availability_zone_collection.rb +1 -1
  269. data/lib/aws/elb/backend_server_policy_collection.rb +1 -1
  270. data/lib/aws/elb/client.rb +5 -5
  271. data/lib/aws/elb/config.rb +1 -1
  272. data/lib/aws/elb/errors.rb +1 -1
  273. data/lib/aws/elb/instance_collection.rb +1 -1
  274. data/lib/aws/elb/listener.rb +1 -1
  275. data/lib/aws/elb/listener_collection.rb +1 -1
  276. data/lib/aws/elb/listener_opts.rb +1 -1
  277. data/lib/aws/elb/load_balancer.rb +1 -1
  278. data/lib/aws/elb/load_balancer_collection.rb +1 -1
  279. data/lib/aws/elb/load_balancer_policy.rb +1 -1
  280. data/lib/aws/elb/load_balancer_policy_collection.rb +1 -1
  281. data/lib/aws/elb/request.rb +8 -2
  282. data/lib/aws/emr.rb +1 -1
  283. data/lib/aws/emr/client.rb +5 -5
  284. data/lib/aws/emr/config.rb +1 -1
  285. data/lib/aws/emr/errors.rb +1 -1
  286. data/lib/aws/emr/instance_group.rb +1 -1
  287. data/lib/aws/emr/instance_group_collection.rb +1 -1
  288. data/lib/aws/emr/job_flow.rb +1 -1
  289. data/lib/aws/emr/job_flow_collection.rb +1 -1
  290. data/lib/aws/emr/request.rb +1 -1
  291. data/lib/aws/errors.rb +1 -1
  292. data/lib/aws/glacier.rb +29 -1
  293. data/lib/aws/glacier/archive.rb +3 -1
  294. data/lib/aws/glacier/archive_collection.rb +19 -14
  295. data/lib/aws/glacier/client.rb +5 -5
  296. data/lib/aws/glacier/config.rb +1 -1
  297. data/lib/aws/glacier/errors.rb +1 -1
  298. data/lib/aws/glacier/request.rb +1 -1
  299. data/lib/aws/glacier/resource.rb +1 -1
  300. data/lib/aws/glacier/vault.rb +10 -2
  301. data/lib/aws/glacier/vault_collection.rb +1 -1
  302. data/lib/aws/glacier/vault_notification_configuration.rb +3 -1
  303. data/lib/aws/iam.rb +1 -1
  304. data/lib/aws/iam/access_key.rb +1 -1
  305. data/lib/aws/iam/access_key_collection.rb +1 -1
  306. data/lib/aws/iam/account_alias_collection.rb +1 -1
  307. data/lib/aws/iam/client.rb +5 -5
  308. data/lib/aws/iam/collection.rb +1 -1
  309. data/lib/aws/iam/config.rb +1 -1
  310. data/lib/aws/iam/errors.rb +1 -1
  311. data/lib/aws/iam/group.rb +1 -1
  312. data/lib/aws/iam/group_collection.rb +1 -1
  313. data/lib/aws/iam/group_policy_collection.rb +1 -1
  314. data/lib/aws/iam/group_user_collection.rb +1 -1
  315. data/lib/aws/iam/login_profile.rb +1 -1
  316. data/lib/aws/iam/mfa_device.rb +1 -1
  317. data/lib/aws/iam/mfa_device_collection.rb +1 -1
  318. data/lib/aws/iam/policy.rb +1 -1
  319. data/lib/aws/iam/policy_collection.rb +1 -1
  320. data/lib/aws/iam/request.rb +1 -1
  321. data/lib/aws/iam/resource.rb +5 -14
  322. data/lib/aws/iam/server_certificate.rb +1 -1
  323. data/lib/aws/iam/server_certificate_collection.rb +1 -1
  324. data/lib/aws/iam/signing_certificate.rb +1 -1
  325. data/lib/aws/iam/signing_certificate_collection.rb +1 -1
  326. data/lib/aws/iam/user.rb +1 -1
  327. data/lib/aws/iam/user_collection.rb +1 -1
  328. data/lib/aws/iam/user_group_collection.rb +1 -1
  329. data/lib/aws/iam/user_policy.rb +1 -1
  330. data/lib/aws/iam/user_policy_collection.rb +1 -1
  331. data/lib/aws/iam/virtual_mfa_device.rb +1 -1
  332. data/lib/aws/iam/virtual_mfa_device_collection.rb +1 -1
  333. data/lib/aws/import_export.rb +1 -1
  334. data/lib/aws/import_export/client.rb +5 -5
  335. data/lib/aws/import_export/config.rb +1 -1
  336. data/lib/aws/import_export/errors.rb +1 -1
  337. data/lib/aws/import_export/request.rb +1 -1
  338. data/lib/aws/rails.rb +1 -1
  339. data/lib/aws/rds.rb +1 -1
  340. data/lib/aws/rds/client.rb +193 -7
  341. data/lib/aws/rds/config.rb +1 -1
  342. data/lib/aws/rds/db_instance.rb +5 -1
  343. data/lib/aws/rds/db_instance_collection.rb +1 -1
  344. data/lib/aws/rds/db_snapshot.rb +1 -1
  345. data/lib/aws/rds/db_snapshot_collection.rb +1 -1
  346. data/lib/aws/rds/errors.rb +1 -1
  347. data/lib/aws/rds/request.rb +1 -1
  348. data/lib/aws/record.rb +1 -1
  349. data/lib/aws/record/abstract_base.rb +119 -63
  350. data/lib/aws/record/attributes.rb +1 -1
  351. data/lib/aws/record/conversion.rb +1 -1
  352. data/lib/aws/record/dirty_tracking.rb +1 -1
  353. data/lib/aws/record/errors.rb +1 -1
  354. data/lib/aws/record/exceptions.rb +2 -2
  355. data/lib/aws/record/hash_model.rb +1 -1
  356. data/lib/aws/record/hash_model/attributes.rb +1 -1
  357. data/lib/aws/record/hash_model/finder_methods.rb +1 -1
  358. data/lib/aws/record/hash_model/scope.rb +1 -1
  359. data/lib/aws/record/model.rb +1 -1
  360. data/lib/aws/record/model/attributes.rb +1 -1
  361. data/lib/aws/record/model/finder_methods.rb +1 -1
  362. data/lib/aws/record/model/scope.rb +1 -1
  363. data/lib/aws/record/naming.rb +1 -1
  364. data/lib/aws/record/scope.rb +2 -2
  365. data/lib/aws/record/validations.rb +21 -3
  366. data/lib/aws/record/validator.rb +11 -2
  367. data/lib/aws/record/validators/acceptance.rb +2 -2
  368. data/lib/aws/record/validators/block.rb +2 -2
  369. data/lib/aws/record/validators/confirmation.rb +1 -1
  370. data/lib/aws/record/validators/count.rb +1 -1
  371. data/lib/aws/record/validators/exclusion.rb +2 -2
  372. data/lib/aws/record/validators/format.rb +2 -2
  373. data/lib/aws/record/validators/inclusion.rb +2 -2
  374. data/lib/aws/record/validators/length.rb +2 -2
  375. data/lib/aws/record/validators/method.rb +1 -1
  376. data/lib/aws/record/validators/numericality.rb +2 -2
  377. data/lib/aws/record/validators/presence.rb +2 -2
  378. data/lib/aws/route_53.rb +17 -3
  379. data/lib/aws/route_53/change_batch.rb +159 -0
  380. data/lib/aws/route_53/change_info.rb +72 -0
  381. data/lib/aws/route_53/client.rb +5 -5
  382. data/lib/aws/route_53/config.rb +1 -1
  383. data/lib/aws/route_53/errors.rb +1 -1
  384. data/lib/aws/route_53/hosted_zone.rb +111 -0
  385. data/lib/aws/route_53/hosted_zone_collection.rb +100 -0
  386. data/lib/aws/route_53/request.rb +1 -1
  387. data/lib/aws/route_53/resource_record_set.rb +212 -0
  388. data/lib/aws/route_53/resource_record_set_collection.rb +110 -0
  389. data/lib/aws/s3.rb +3 -2
  390. data/lib/aws/s3/access_control_list.rb +1 -1
  391. data/lib/aws/s3/acl_object.rb +1 -1
  392. data/lib/aws/s3/acl_options.rb +1 -1
  393. data/lib/aws/s3/bucket.rb +114 -1
  394. data/lib/aws/s3/bucket_collection.rb +1 -1
  395. data/lib/aws/s3/bucket_lifecycle_configuration.rb +1 -1
  396. data/lib/aws/s3/bucket_tag_collection.rb +1 -1
  397. data/lib/aws/s3/bucket_version_collection.rb +1 -1
  398. data/lib/aws/s3/cipher_io.rb +1 -1
  399. data/lib/aws/s3/client.rb +148 -98
  400. data/lib/aws/s3/client/xml.rb +10 -1
  401. data/lib/aws/s3/config.rb +1 -1
  402. data/lib/aws/s3/cors_rule.rb +1 -1
  403. data/lib/aws/s3/cors_rule_collection.rb +1 -1
  404. data/lib/aws/s3/data_options.rb +1 -1
  405. data/lib/aws/s3/encryption_utils.rb +1 -1
  406. data/lib/aws/s3/errors.rb +1 -1
  407. data/lib/aws/s3/multipart_upload.rb +1 -1
  408. data/lib/aws/s3/multipart_upload_collection.rb +1 -1
  409. data/lib/aws/s3/object_collection.rb +1 -1
  410. data/lib/aws/s3/object_metadata.rb +1 -1
  411. data/lib/aws/s3/object_upload_collection.rb +1 -1
  412. data/lib/aws/s3/object_version.rb +1 -1
  413. data/lib/aws/s3/object_version_collection.rb +1 -1
  414. data/lib/aws/s3/paginated_collection.rb +1 -1
  415. data/lib/aws/s3/policy.rb +1 -1
  416. data/lib/aws/s3/prefix_and_delimiter_collection.rb +1 -1
  417. data/lib/aws/s3/prefixed_collection.rb +1 -1
  418. data/lib/aws/s3/presigned_post.rb +1 -1
  419. data/lib/aws/s3/request.rb +4 -2
  420. data/lib/aws/s3/s3_object.rb +77 -83
  421. data/lib/aws/s3/tree.rb +1 -1
  422. data/lib/aws/s3/tree/branch_node.rb +1 -1
  423. data/lib/aws/s3/tree/child_collection.rb +1 -1
  424. data/lib/aws/s3/tree/leaf_node.rb +1 -1
  425. data/lib/aws/s3/tree/node.rb +1 -1
  426. data/lib/aws/s3/tree/parent.rb +1 -1
  427. data/lib/aws/s3/uploaded_part.rb +1 -1
  428. data/lib/aws/s3/uploaded_part_collection.rb +1 -1
  429. data/lib/aws/s3/website_configuration.rb +60 -0
  430. data/lib/aws/simple_db.rb +1 -1
  431. data/lib/aws/simple_db/attribute.rb +1 -1
  432. data/lib/aws/simple_db/attribute_collection.rb +1 -1
  433. data/lib/aws/simple_db/client.rb +5 -5
  434. data/lib/aws/simple_db/config.rb +1 -1
  435. data/lib/aws/simple_db/consistent_read_option.rb +1 -1
  436. data/lib/aws/simple_db/delete_attributes.rb +1 -1
  437. data/lib/aws/simple_db/domain.rb +1 -1
  438. data/lib/aws/simple_db/domain_collection.rb +1 -1
  439. data/lib/aws/simple_db/domain_metadata.rb +1 -1
  440. data/lib/aws/simple_db/errors.rb +1 -1
  441. data/lib/aws/simple_db/expect_condition_option.rb +1 -1
  442. data/lib/aws/simple_db/item.rb +1 -1
  443. data/lib/aws/simple_db/item_collection.rb +1 -1
  444. data/lib/aws/simple_db/item_data.rb +1 -1
  445. data/lib/aws/simple_db/put_attributes.rb +1 -1
  446. data/lib/aws/simple_db/request.rb +1 -1
  447. data/lib/aws/simple_email_service.rb +1 -1
  448. data/lib/aws/simple_email_service/client.rb +5 -5
  449. data/lib/aws/simple_email_service/config.rb +1 -1
  450. data/lib/aws/simple_email_service/email_address_collection.rb +1 -1
  451. data/lib/aws/simple_email_service/errors.rb +1 -1
  452. data/lib/aws/simple_email_service/identity.rb +1 -1
  453. data/lib/aws/simple_email_service/identity_collection.rb +1 -1
  454. data/lib/aws/simple_email_service/quotas.rb +1 -1
  455. data/lib/aws/simple_email_service/request.rb +1 -1
  456. data/lib/aws/simple_workflow.rb +1 -1
  457. data/lib/aws/simple_workflow/activity_task.rb +1 -1
  458. data/lib/aws/simple_workflow/activity_task_collection.rb +1 -1
  459. data/lib/aws/simple_workflow/activity_type.rb +1 -1
  460. data/lib/aws/simple_workflow/activity_type_collection.rb +1 -1
  461. data/lib/aws/simple_workflow/client.rb +5 -5
  462. data/lib/aws/simple_workflow/config.rb +1 -1
  463. data/lib/aws/simple_workflow/count.rb +1 -1
  464. data/lib/aws/simple_workflow/decision_task.rb +4 -2
  465. data/lib/aws/simple_workflow/decision_task_collection.rb +1 -1
  466. data/lib/aws/simple_workflow/domain.rb +1 -1
  467. data/lib/aws/simple_workflow/domain_collection.rb +1 -1
  468. data/lib/aws/simple_workflow/errors.rb +1 -1
  469. data/lib/aws/simple_workflow/history_event.rb +1 -1
  470. data/lib/aws/simple_workflow/history_event_collection.rb +1 -1
  471. data/lib/aws/simple_workflow/option_formatters.rb +1 -1
  472. data/lib/aws/simple_workflow/request.rb +1 -1
  473. data/lib/aws/simple_workflow/resource.rb +1 -1
  474. data/lib/aws/simple_workflow/type.rb +1 -1
  475. data/lib/aws/simple_workflow/type_collection.rb +1 -1
  476. data/lib/aws/simple_workflow/workflow_execution.rb +1 -1
  477. data/lib/aws/simple_workflow/workflow_execution_collection.rb +1 -1
  478. data/lib/aws/simple_workflow/workflow_type.rb +1 -1
  479. data/lib/aws/simple_workflow/workflow_type_collection.rb +1 -1
  480. data/lib/aws/sns.rb +1 -1
  481. data/lib/aws/sns/client.rb +5 -5
  482. data/lib/aws/sns/config.rb +1 -1
  483. data/lib/aws/sns/errors.rb +1 -1
  484. data/lib/aws/sns/has_delivery_policy.rb +1 -1
  485. data/lib/aws/sns/policy.rb +1 -1
  486. data/lib/aws/sns/request.rb +1 -1
  487. data/lib/aws/sns/subscription.rb +1 -1
  488. data/lib/aws/sns/subscription_collection.rb +1 -1
  489. data/lib/aws/sns/topic.rb +1 -1
  490. data/lib/aws/sns/topic_collection.rb +1 -1
  491. data/lib/aws/sns/topic_subscription_collection.rb +1 -1
  492. data/lib/aws/sqs.rb +1 -1
  493. data/lib/aws/sqs/client.rb +5 -5
  494. data/lib/aws/sqs/config.rb +1 -1
  495. data/lib/aws/sqs/errors.rb +1 -1
  496. data/lib/aws/sqs/policy.rb +1 -1
  497. data/lib/aws/sqs/queue.rb +2 -2
  498. data/lib/aws/sqs/queue_collection.rb +1 -1
  499. data/lib/aws/sqs/received_message.rb +1 -1
  500. data/lib/aws/sqs/received_sns_message.rb +6 -2
  501. data/lib/aws/sqs/request.rb +1 -1
  502. data/lib/aws/storage_gateway.rb +1 -1
  503. data/lib/aws/storage_gateway/client.rb +5 -5
  504. data/lib/aws/storage_gateway/config.rb +1 -1
  505. data/lib/aws/storage_gateway/errors.rb +1 -1
  506. data/lib/aws/storage_gateway/request.rb +1 -1
  507. data/lib/aws/sts.rb +1 -1
  508. data/lib/aws/sts/client.rb +5 -5
  509. data/lib/aws/sts/config.rb +1 -1
  510. data/lib/aws/sts/errors.rb +1 -1
  511. data/lib/aws/sts/federated_session.rb +1 -1
  512. data/lib/aws/sts/policy.rb +1 -1
  513. data/lib/aws/sts/request.rb +1 -1
  514. data/lib/aws/sts/session.rb +1 -1
  515. data/lib/aws/version.rb +2 -2
  516. data/lib/net/http/connection_pool.rb +1 -1
  517. data/lib/net/http/connection_pool/connection.rb +1 -1
  518. data/lib/net/http/connection_pool/session.rb +1 -1
  519. data/rails/init.rb +1 -1
  520. metadata +18 -6
  521. data/lib/aws/core/http/httparty_handler.rb +0 -115
@@ -0,0 +1,72 @@
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
+ class Route53
16
+ #
17
+ # @attr_reader [String] id
18
+ # change id.
19
+ #
20
+ # @attr_reader [String] status
21
+ # status of the change.
22
+ #
23
+ # @attr_reader [Time] submitted_at
24
+ #
25
+ class ChangeInfo < Core::Resource
26
+
27
+ # @private
28
+ def initialize id, options = {}
29
+ @id = id
30
+ super
31
+ end
32
+
33
+ attr_reader :id
34
+
35
+ attribute :status
36
+
37
+ attribute :submitted_at, :static => true
38
+
39
+ populates_from :change_resource_record_sets do |resp|
40
+ resp[:change_info] if resp[:change_info][:id] == id
41
+ end
42
+
43
+ populates_from :create_hosted_zone do |resp|
44
+ resp[:change_info] if resp[:change_info][:id] == id
45
+ end
46
+
47
+ populates_from :delete_hosted_zone do |resp|
48
+ resp[:change_info] if resp[:change_info][:id] == id
49
+ end
50
+
51
+ populates_from :get_change do |resp|
52
+ resp[:change_info] if resp[:change_info][:id] == id
53
+ end
54
+
55
+ # @return [Boolean] Returns true if this alarm exists.
56
+ def exists?
57
+ get_resource.data[:change_info][:id] == id
58
+ end
59
+
60
+ protected
61
+
62
+ def resource_identifiers
63
+ [[:id, id]]
64
+ end
65
+
66
+ def get_resource attr_name = nil
67
+ client.get_change(:id => id)
68
+ end
69
+
70
+ end
71
+ end
72
+ end
@@ -1,4 +1,4 @@
1
- # Copyright 2011-2012 Amazon.com, Inc. or its affiliates. All Rights Reserved.
1
+ # Copyright 2011-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License"). You
4
4
  # may not use this file except in compliance with the License. A copy of
@@ -17,12 +17,10 @@ module AWS
17
17
  # Client class for Route53.
18
18
  class Client < Core::RESTXMLClient
19
19
 
20
- define_client_methods('2012-02-29')
21
-
22
20
  # @private
23
21
  CACHEABLE_REQUESTS = Set[]
24
22
 
25
- ## client methods ##
23
+ # client methods #
26
24
 
27
25
  # @!method change_resource_record_sets(options = {})
28
26
  # Calls the POST ChangeResourceRecordSets API operation.
@@ -257,7 +255,9 @@ module AWS
257
255
  # * +:next_record_identifier+ - (String)
258
256
  # * +:max_items+ - (Integer)
259
257
 
260
- ## end client methods ##
258
+ # end client methods #
259
+
260
+ define_client_methods('2012-02-29')
261
261
 
262
262
  end
263
263
  end
@@ -1,4 +1,4 @@
1
- # Copyright 2011-2012 Amazon.com, Inc. or its affiliates. All Rights Reserved.
1
+ # Copyright 2011-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License"). You
4
4
  # may not use this file except in compliance with the License. A copy of
@@ -1,4 +1,4 @@
1
- # Copyright 2011-2012 Amazon.com, Inc. or its affiliates. All Rights Reserved.
1
+ # Copyright 2011-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License"). You
4
4
  # may not use this file except in compliance with the License. A copy of
@@ -0,0 +1,111 @@
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
+ class Route53
16
+
17
+ # = Delete existing hosted zone
18
+ #
19
+ # hosted_zone = AWS::Route53::HostedZone.new(hosted_zone_id)
20
+ # hosted_zone.delete
21
+ #
22
+ # @attr_reader [String] name The hosted zone name.
23
+ #
24
+ # @attr_reader [String] caller_reference
25
+ #
26
+ # @attr_reader [Integer] resource_record_set_count
27
+ # The resource record set count.
28
+ #
29
+ # @attr_reader [Array<String>] delegation_set
30
+ #
31
+ class HostedZone < Core::Resource
32
+
33
+ # @private
34
+ def initialize id, options = {}
35
+ @id = id.sub(%r!^/hostedzone/!, '')
36
+ @change_info = options[:change_info]
37
+ super
38
+ end
39
+
40
+ # @return [String] The hosted zone ID.
41
+ attr_reader :id
42
+
43
+ # @return [ChangeInfo] Change info for the newly created HostedZone
44
+ # instance.
45
+ attr_reader :change_info
46
+
47
+ # The Hosted zone path.
48
+ # @return [String]
49
+ def path
50
+ "/hostedzone/#{id}"
51
+ end
52
+
53
+ attribute :name, :static => true
54
+
55
+ attribute :caller_reference, :static => true
56
+
57
+ attribute :configuration, :from => :config, :static => true
58
+
59
+ attribute :resource_record_set_count
60
+
61
+ attribute :delegation_set, :static => true
62
+
63
+ populates_from :create_hosted_zone do |resp|
64
+ resp[:hosted_zone] if resp[:hosted_zone][:id] == path
65
+ end
66
+
67
+ populates_from :get_hosted_zone do |resp|
68
+ resp[:hosted_zone] if resp[:hosted_zone][:id] == path
69
+ end
70
+
71
+ populates_from :list_hosted_zones do |resp|
72
+ resp.data[:hosted_zones].find { |detail| detail[:hosted_zone][:id] == path }
73
+ end
74
+
75
+ # Deletes the hosted zone.
76
+ # @return [ChangeInfo]
77
+ def delete
78
+ resp = client.delete_hosted_zone(:id => id)
79
+ if resp[:change_info][:id]
80
+ ChangeInfo.new_from(:delete_hosted_zone,
81
+ resp[:change_info],
82
+ resp[:change_info][:id],
83
+ :config => config)
84
+ end
85
+ end
86
+
87
+ # @return [Boolean] Returns +true+ if this hosted zone exists.
88
+ def exists?
89
+ get_resource.data[:hosted_zone][:id] == path
90
+ end
91
+
92
+ # Returns resource recoed sets.
93
+ # @return [ResourceRecordSetCollection]
94
+ def resource_record_sets
95
+ ResourceRecordSetCollection.new(id, :config => config)
96
+ end
97
+ alias_method :rrsets, :resource_record_sets
98
+
99
+ private
100
+
101
+ def resource_identifiers
102
+ [[:id, id], [:name, name], [:caller_reference, caller_reference]]
103
+ end
104
+
105
+ def get_resource attr_name = nil
106
+ client.get_hosted_zone(:id => id)
107
+ end
108
+
109
+ end
110
+ end
111
+ end
@@ -0,0 +1,100 @@
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 'time'
15
+
16
+ module AWS
17
+ class Route53
18
+
19
+ # = Create new hosted zone
20
+ #
21
+ # r53 = AWS::Route53.new
22
+ # hosted_zone = r53.hosted_zones.create('example.com.')
23
+ #
24
+ # = Find existing hosted zone
25
+ #
26
+ # r53 = AWS::Route53.new
27
+ # hosted_zone = r53.hosted_zones['example.com.']
28
+ #
29
+ class HostedZoneCollection
30
+
31
+ include Core::Collection::WithLimitAndNextToken
32
+
33
+ # @private
34
+ def initialize options = {}
35
+ @filters = options[:filters] || {}
36
+ super
37
+ end
38
+
39
+ # Find hosted zone by id.
40
+ # @param [String] hosted_zone_id
41
+ # @return [HostedZone]
42
+ def [] hosted_zone_id
43
+ HostedZone.new(hosted_zone_id, :config => config)
44
+ end
45
+
46
+ # @param [String] name
47
+ # @option options [String] :comment
48
+ # @option options [String] :caller_reference
49
+ # @return [HostedZone]
50
+ def create name, options = {}
51
+ options[:name] = name
52
+ unless options[:caller_reference]
53
+ options[:caller_reference] = "CreateHostedZone, #{name}, #{Time.now.httpdate}"
54
+ end
55
+ if options[:comment]
56
+ options[:hosted_zone_config] ||= {}
57
+ options[:hosted_zone_config][:comment] = options[:comment]
58
+ end
59
+
60
+ resp = client.create_hosted_zone(options)
61
+
62
+ change_info = ChangeInfo.new_from(:create_hosted_zone, resp,
63
+ resp[:change_info][:id],
64
+ :config => config)
65
+
66
+ HostedZone.new_from(:create_hosted_zone, resp,
67
+ resp[:hosted_zone][:id],
68
+ :change_info => change_info,
69
+ :config => config)
70
+
71
+ end
72
+
73
+ protected
74
+
75
+ def _each_item next_token, limit, options = {}, &block
76
+
77
+ options = @filters.merge(options)
78
+
79
+ options[:marker] = next_token if next_token
80
+ options[:maxitems] = limit if limit
81
+
82
+ resp = client.list_hosted_zones(options)
83
+ resp.data[:hosted_zones].each do |details|
84
+ hosted_zone = HostedZone.new_from(
85
+ :list_hosted_zones,
86
+ details,
87
+ details[:id],
88
+ :config => config)
89
+
90
+ yield(hosted_zone)
91
+
92
+ end
93
+
94
+ resp.data[:next_marker]
95
+
96
+ end
97
+
98
+ end
99
+ end
100
+ end
@@ -1,4 +1,4 @@
1
- # Copyright 2011-2012 Amazon.com, Inc. or its affiliates. All Rights Reserved.
1
+ # Copyright 2011-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License"). You
4
4
  # may not use this file except in compliance with the License. A copy of
@@ -0,0 +1,212 @@
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
+ class Route53
16
+
17
+ # = Modify resource record set
18
+ #
19
+ # rrsets = AWS::Route53::HostedZone.new(hosted_zone_id).rrsets
20
+ # rrset = rrsets['foo.example.com.', 'A']
21
+ # rrset.ttl = 3600
22
+ # rrset.update
23
+ #
24
+ # = Delete existing resource record set
25
+ #
26
+ # rrsets = AWS::Route53::HostedZone.new(hosted_zone_id).rrsets
27
+ # rrset = rrsets['foo.example.com.', 'A']
28
+ # rrset.delete
29
+ #
30
+ # @attr_reader [Hash] alias_target
31
+ #
32
+ # @attr_reader [Integer] weight
33
+ #
34
+ # @attr_reader [String] region
35
+ #
36
+ # @attr_reader [Integer] ttl
37
+ #
38
+ # @attr_reader [Array<Hash>] resource_records
39
+ #
40
+ class ResourceRecordSet < Core::Resource
41
+
42
+ # @private
43
+ def initialize name, type, options = {}
44
+ @name = name
45
+ @type = type
46
+ @set_identifier = options[:set_identifier]
47
+ @hosted_zone_id = options[:hosted_zone_id]
48
+ @change_info = options[:change_info]
49
+ @create_options = {}
50
+ super
51
+ end
52
+
53
+ # @return [String] The hosted zone ID.
54
+ attr_reader :hosted_zone_id
55
+
56
+ # @return [ChangeInfo]
57
+ attr_reader :change_info
58
+
59
+ # @return [String] name
60
+ attr_reader :name
61
+
62
+ # @param [String] new_name
63
+ # @return [String]
64
+ def name= new_name
65
+ @create_options[:name] = new_name
66
+ end
67
+
68
+ # @return [String]
69
+ attr_reader :type
70
+
71
+ # @param [String] new_type
72
+ # @return [String]
73
+ def type= new_type
74
+ @create_options[:type] = new_type
75
+ end
76
+
77
+ # @return [String]
78
+ attr_reader :set_identifier
79
+
80
+ alias_method :identifier, :set_identifier
81
+
82
+ # @param [String] new_identifier
83
+ # @return [String]
84
+ def set_identifier= new_identifier
85
+ @create_options[:set_identifier] = new_identifier
86
+ end
87
+
88
+ alias_method :identifier=, :set_identifier=
89
+
90
+ attribute :alias_target
91
+
92
+ # @param [Hash] new_target
93
+ # @return [Hash]
94
+ def alias_target= new_target
95
+ @create_options[:alias_target] = new_target
96
+ end
97
+
98
+ attribute :weight
99
+
100
+ # @param [Integer] new_weight
101
+ # @return [Integer]
102
+ def weight= new_weight
103
+ @create_options[:weight] = new_weight
104
+ end
105
+
106
+ attribute :region
107
+
108
+ # @param [String] new_region
109
+ # @return [String]
110
+ def region= new_region
111
+ @create_options[:region] = new_region
112
+ end
113
+
114
+ attribute :ttl
115
+
116
+ # @param [Integer] new_ttl
117
+ # @return [Integer]
118
+ def ttl= new_ttl
119
+ @create_options[:ttl] = new_ttl
120
+ end
121
+
122
+ attribute :resource_records
123
+
124
+ # @param [Array<Hash>] new_rrs
125
+ # @return [Array<Hash>]
126
+ def resource_records= new_rrs
127
+ @create_options[:resource_records] = new_rrs
128
+ end
129
+
130
+ populates_from :list_resource_record_sets do |resp|
131
+ resp[:resource_record_sets].find { |details|
132
+ if set_identifier
133
+ details[:name] == name and details[:type] == type and details[:set_identifier] == set_identifier
134
+ else
135
+ details[:name] == name and details[:type] == type
136
+ end
137
+ }
138
+ end
139
+
140
+ # @return [Boolean] Returns +true+ if this rrset exists.
141
+ def exists?
142
+ !get_resource.data[:resource_record_sets].find { |details|
143
+ if set_identifier
144
+ details[:name] == name and details[:type] == type and details[:set_identifier] == set_identifier
145
+ else
146
+ details[:name] == name and details[:type] == type
147
+ end
148
+ }.nil?
149
+ end
150
+
151
+ # Update values of resource record set.
152
+ # @param [Hash] options Options for change batch.
153
+ # @return [ResourceRecordSet] New resource record set with current value.
154
+ def update options = {}
155
+ delete_options = {:name => name, :type => type}
156
+ delete_options[:set_identifier] = set_identifier if set_identifier
157
+ delete_options[:alias_target] = alias_target if alias_target
158
+ delete_options[:weight] = weight if weight
159
+ delete_options[:region] = region if region
160
+ delete_options[:ttl] = ttl if ttl
161
+ delete_options[:resource_records] = resource_records if resource_records
162
+
163
+ create_options = delete_options.merge(@create_options)
164
+ @create_options = {}
165
+ batch = ChangeBatch.new(hosted_zone_id, options.merge(:config => config))
166
+ batch << DeleteRequest.new(delete_options[:name], delete_options[:type], delete_options)
167
+ batch << CreateRequest.new(create_options[:name], create_options[:type], create_options)
168
+
169
+ @name = create_options[:name]
170
+ @type = create_options[:type]
171
+ @set_identifier = create_options[:set_identifier]
172
+ @change_info = batch.call()
173
+ self
174
+ end
175
+
176
+ # Delete resource record set.
177
+ # @param [Hash] options Options for change batch.
178
+ # @return [ChangeInfo]
179
+ def delete options = {}
180
+ delete_options = {:name => name, :type => type}
181
+ delete_options[:set_identifier] = set_identifier if set_identifier
182
+ delete_options[:alias_target] = alias_target if alias_target
183
+ delete_options[:weight] = weight if weight
184
+ delete_options[:region] = region if region
185
+ delete_options[:ttl] = ttl if ttl
186
+ delete_options[:resource_records] = resource_records if resource_records
187
+
188
+ batch = ChangeBatch.new(hosted_zone_id, options.merge(:config => config))
189
+ batch << DeleteRequest.new(delete_options[:name], delete_options[:type], delete_options)
190
+
191
+ change_info = batch.call()
192
+ end
193
+
194
+ private
195
+
196
+ def resource_identifiers
197
+ [[:name, name], [:type, type], [:set_identifier, set_identifier]]
198
+ end
199
+
200
+ def get_resource attr_name = nil
201
+ options = {}
202
+ options[:start_record_name] = name
203
+ options[:start_record_type] = type
204
+ options[:start_record_identifier] = set_identifier if set_identifier
205
+ options[:hosted_zone_id] = hosted_zone_id
206
+
207
+ client.list_resource_record_sets(options)
208
+ end
209
+
210
+ end
211
+ end
212
+ end