aws-sdk-euca 1.8.5

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 (539) hide show
  1. data/.yardopts +5 -0
  2. data/LICENSE.txt +12 -0
  3. data/README.rdoc +189 -0
  4. data/ca-bundle.crt +3895 -0
  5. data/lib/aws-sdk-euca.rb +79 -0
  6. data/lib/aws-sdk.rb +79 -0
  7. data/lib/aws.rb +14 -0
  8. data/lib/aws/api_config/AutoScaling-2011-01-01.yml +825 -0
  9. data/lib/aws/api_config/CloudFormation-2010-05-15.yml +322 -0
  10. data/lib/aws/api_config/CloudFront-2012-05-05.yml +2102 -0
  11. data/lib/aws/api_config/CloudSearch-2011-02-01.yml +681 -0
  12. data/lib/aws/api_config/CloudWatch-2010-08-01.yml +433 -0
  13. data/lib/aws/api_config/DataPipeline-2012-10-29.yml +422 -0
  14. data/lib/aws/api_config/DynamoDB-2011-12-05.yml +1160 -0
  15. data/lib/aws/api_config/EC2-2013-02-01.yml +4368 -0
  16. data/lib/aws/api_config/ELB-2012-06-01.yml +597 -0
  17. data/lib/aws/api_config/EMR-2009-03-31.yml +370 -0
  18. data/lib/aws/api_config/ElastiCache-2012-03-09.yml +777 -0
  19. data/lib/aws/api_config/ElastiCache-2012-11-15.yml +979 -0
  20. data/lib/aws/api_config/ElasticBeanstalk-2010-12-01.yml +823 -0
  21. data/lib/aws/api_config/ElasticTranscoder-2012-09-25.yml +1036 -0
  22. data/lib/aws/api_config/Glacier-2012-06-01.yml +618 -0
  23. data/lib/aws/api_config/IAM-2010-05-08.yml +1222 -0
  24. data/lib/aws/api_config/ImportExport-2010-06-01.yml +109 -0
  25. data/lib/aws/api_config/OpsWorks-2013-02-18.yml +1463 -0
  26. data/lib/aws/api_config/RDS-2012-09-17.yml +1861 -0
  27. data/lib/aws/api_config/RDS-2013-02-12.yml +2377 -0
  28. data/lib/aws/api_config/Redshift-2012-12-01.yml +1149 -0
  29. data/lib/aws/api_config/Route53-2012-02-29.yml +380 -0
  30. data/lib/aws/api_config/Route53-2012-12-12.yml +547 -0
  31. data/lib/aws/api_config/SNS-2010-03-31.yml +249 -0
  32. data/lib/aws/api_config/SQS-2012-11-05.yml +317 -0
  33. data/lib/aws/api_config/STS-2011-06-15.yml +81 -0
  34. data/lib/aws/api_config/SimpleDB-2009-04-15.yml +306 -0
  35. data/lib/aws/api_config/SimpleEmailService-2010-12-01.yml +346 -0
  36. data/lib/aws/api_config/SimpleWorkflow-2012-01-25.yml +2358 -0
  37. data/lib/aws/api_config/StorageGateway-2012-06-30.yml +748 -0
  38. data/lib/aws/auto_scaling.rb +164 -0
  39. data/lib/aws/auto_scaling/activity.rb +102 -0
  40. data/lib/aws/auto_scaling/activity_collection.rb +82 -0
  41. data/lib/aws/auto_scaling/client.rb +521 -0
  42. data/lib/aws/auto_scaling/config.rb +18 -0
  43. data/lib/aws/auto_scaling/errors.rb +22 -0
  44. data/lib/aws/auto_scaling/group.rb +420 -0
  45. data/lib/aws/auto_scaling/group_collection.rb +96 -0
  46. data/lib/aws/auto_scaling/group_options.rb +146 -0
  47. data/lib/aws/auto_scaling/instance.rb +192 -0
  48. data/lib/aws/auto_scaling/instance_collection.rb +63 -0
  49. data/lib/aws/auto_scaling/launch_configuration.rb +158 -0
  50. data/lib/aws/auto_scaling/launch_configuration_collection.rb +154 -0
  51. data/lib/aws/auto_scaling/notification_configuration.rb +89 -0
  52. data/lib/aws/auto_scaling/notification_configuration_collection.rb +184 -0
  53. data/lib/aws/auto_scaling/request.rb +29 -0
  54. data/lib/aws/auto_scaling/scaling_policy.rb +142 -0
  55. data/lib/aws/auto_scaling/scaling_policy_collection.rb +72 -0
  56. data/lib/aws/auto_scaling/scaling_policy_options.rb +64 -0
  57. data/lib/aws/auto_scaling/scheduled_action.rb +145 -0
  58. data/lib/aws/auto_scaling/scheduled_action_collection.rb +195 -0
  59. data/lib/aws/auto_scaling/tag.rb +59 -0
  60. data/lib/aws/auto_scaling/tag_collection.rb +112 -0
  61. data/lib/aws/cloud_formation.rb +272 -0
  62. data/lib/aws/cloud_formation/client.rb +369 -0
  63. data/lib/aws/cloud_formation/config.rb +18 -0
  64. data/lib/aws/cloud_formation/errors.rb +22 -0
  65. data/lib/aws/cloud_formation/request.rb +29 -0
  66. data/lib/aws/cloud_formation/stack.rb +255 -0
  67. data/lib/aws/cloud_formation/stack_collection.rb +209 -0
  68. data/lib/aws/cloud_formation/stack_event.rb +75 -0
  69. data/lib/aws/cloud_formation/stack_event_collection.rb +47 -0
  70. data/lib/aws/cloud_formation/stack_options.rb +72 -0
  71. data/lib/aws/cloud_formation/stack_output.rb +53 -0
  72. data/lib/aws/cloud_formation/stack_resource.rb +117 -0
  73. data/lib/aws/cloud_formation/stack_resource_collection.rb +84 -0
  74. data/lib/aws/cloud_formation/stack_resource_summary_collection.rb +64 -0
  75. data/lib/aws/cloud_formation/stack_summary_collection.rb +123 -0
  76. data/lib/aws/cloud_front.rb +73 -0
  77. data/lib/aws/cloud_front/client.rb +1307 -0
  78. data/lib/aws/cloud_front/config.rb +18 -0
  79. data/lib/aws/cloud_front/errors.rb +22 -0
  80. data/lib/aws/cloud_front/request.rb +44 -0
  81. data/lib/aws/cloud_search.rb +74 -0
  82. data/lib/aws/cloud_search/client.rb +558 -0
  83. data/lib/aws/cloud_search/config.rb +18 -0
  84. data/lib/aws/cloud_search/errors.rb +22 -0
  85. data/lib/aws/cloud_search/request.rb +23 -0
  86. data/lib/aws/cloud_watch.rb +119 -0
  87. data/lib/aws/cloud_watch/alarm.rb +272 -0
  88. data/lib/aws/cloud_watch/alarm_collection.rb +153 -0
  89. data/lib/aws/cloud_watch/alarm_history_item.rb +50 -0
  90. data/lib/aws/cloud_watch/alarm_history_item_collection.rb +84 -0
  91. data/lib/aws/cloud_watch/client.rb +247 -0
  92. data/lib/aws/cloud_watch/config.rb +18 -0
  93. data/lib/aws/cloud_watch/errors.rb +22 -0
  94. data/lib/aws/cloud_watch/metric.rb +135 -0
  95. data/lib/aws/cloud_watch/metric_alarm_collection.rb +160 -0
  96. data/lib/aws/cloud_watch/metric_collection.rb +131 -0
  97. data/lib/aws/cloud_watch/metric_statistics.rb +69 -0
  98. data/lib/aws/cloud_watch/request.rb +23 -0
  99. data/lib/aws/core.rb +587 -0
  100. data/lib/aws/core/async_handle.rb +90 -0
  101. data/lib/aws/core/autoloader.rb +64 -0
  102. data/lib/aws/core/cacheable.rb +78 -0
  103. data/lib/aws/core/client.rb +691 -0
  104. data/lib/aws/core/collection.rb +267 -0
  105. data/lib/aws/core/collection/simple.rb +82 -0
  106. data/lib/aws/core/collection/with_limit_and_next_token.rb +71 -0
  107. data/lib/aws/core/collection/with_next_token.rb +97 -0
  108. data/lib/aws/core/configuration.rb +546 -0
  109. data/lib/aws/core/credential_providers.rb +461 -0
  110. data/lib/aws/core/data.rb +247 -0
  111. data/lib/aws/core/http/curb_handler.rb +155 -0
  112. data/lib/aws/core/http/handler.rb +89 -0
  113. data/lib/aws/core/http/net_http_handler.rb +128 -0
  114. data/lib/aws/core/http/request.rb +263 -0
  115. data/lib/aws/core/http/response.rb +81 -0
  116. data/lib/aws/core/indifferent_hash.rb +88 -0
  117. data/lib/aws/core/inflection.rb +56 -0
  118. data/lib/aws/core/json_client.rb +47 -0
  119. data/lib/aws/core/json_parser.rb +76 -0
  120. data/lib/aws/core/json_request_builder.rb +35 -0
  121. data/lib/aws/core/json_response_parser.rb +79 -0
  122. data/lib/aws/core/lazy_error_classes.rb +90 -0
  123. data/lib/aws/core/log_formatter.rb +462 -0
  124. data/lib/aws/core/managed_file.rb +32 -0
  125. data/lib/aws/core/meta_utils.rb +45 -0
  126. data/lib/aws/core/model.rb +57 -0
  127. data/lib/aws/core/naming.rb +30 -0
  128. data/lib/aws/core/option_grammar.rb +735 -0
  129. data/lib/aws/core/options/json_serializer.rb +82 -0
  130. data/lib/aws/core/options/validator.rb +155 -0
  131. data/lib/aws/core/options/xml_serializer.rb +118 -0
  132. data/lib/aws/core/page_result.rb +75 -0
  133. data/lib/aws/core/policy.rb +916 -0
  134. data/lib/aws/core/query_client.rb +41 -0
  135. data/lib/aws/core/query_error_parser.rb +24 -0
  136. data/lib/aws/core/query_request_builder.rb +47 -0
  137. data/lib/aws/core/query_response_parser.rb +35 -0
  138. data/lib/aws/core/resource.rb +413 -0
  139. data/lib/aws/core/resource_cache.rb +40 -0
  140. data/lib/aws/core/response.rb +208 -0
  141. data/lib/aws/core/response_cache.rb +50 -0
  142. data/lib/aws/core/rest_error_parser.rb +24 -0
  143. data/lib/aws/core/rest_json_client.rb +40 -0
  144. data/lib/aws/core/rest_request_builder.rb +146 -0
  145. data/lib/aws/core/rest_response_parser.rb +66 -0
  146. data/lib/aws/core/rest_xml_client.rb +47 -0
  147. data/lib/aws/core/service_interface.rb +61 -0
  148. data/lib/aws/core/signature/version_2.rb +56 -0
  149. data/lib/aws/core/signature/version_3.rb +77 -0
  150. data/lib/aws/core/signature/version_3_https.rb +54 -0
  151. data/lib/aws/core/signature/version_4.rb +135 -0
  152. data/lib/aws/core/signer.rb +46 -0
  153. data/lib/aws/core/uri_escape.rb +44 -0
  154. data/lib/aws/core/xml/frame.rb +244 -0
  155. data/lib/aws/core/xml/frame_stack.rb +85 -0
  156. data/lib/aws/core/xml/grammar.rb +307 -0
  157. data/lib/aws/core/xml/parser.rb +70 -0
  158. data/lib/aws/core/xml/root_frame.rb +65 -0
  159. data/lib/aws/core/xml/sax_handlers/libxml.rb +47 -0
  160. data/lib/aws/core/xml/sax_handlers/nokogiri.rb +55 -0
  161. data/lib/aws/core/xml/sax_handlers/ox.rb +41 -0
  162. data/lib/aws/core/xml/sax_handlers/rexml.rb +43 -0
  163. data/lib/aws/core/xml/stub.rb +123 -0
  164. data/lib/aws/data_pipeline.rb +73 -0
  165. data/lib/aws/data_pipeline/client.rb +339 -0
  166. data/lib/aws/data_pipeline/config.rb +18 -0
  167. data/lib/aws/data_pipeline/errors.rb +20 -0
  168. data/lib/aws/data_pipeline/request.rb +26 -0
  169. data/lib/aws/dynamo_db.rb +206 -0
  170. data/lib/aws/dynamo_db/attribute_collection.rb +461 -0
  171. data/lib/aws/dynamo_db/batch_get.rb +213 -0
  172. data/lib/aws/dynamo_db/batch_write.rb +252 -0
  173. data/lib/aws/dynamo_db/binary.rb +35 -0
  174. data/lib/aws/dynamo_db/client.rb +904 -0
  175. data/lib/aws/dynamo_db/config.rb +24 -0
  176. data/lib/aws/dynamo_db/errors.rb +20 -0
  177. data/lib/aws/dynamo_db/expectations.rb +40 -0
  178. data/lib/aws/dynamo_db/item.rb +133 -0
  179. data/lib/aws/dynamo_db/item_collection.rb +852 -0
  180. data/lib/aws/dynamo_db/item_data.rb +31 -0
  181. data/lib/aws/dynamo_db/keys.rb +41 -0
  182. data/lib/aws/dynamo_db/primary_key_element.rb +48 -0
  183. data/lib/aws/dynamo_db/request.rb +26 -0
  184. data/lib/aws/dynamo_db/resource.rb +33 -0
  185. data/lib/aws/dynamo_db/table.rb +491 -0
  186. data/lib/aws/dynamo_db/table_collection.rb +165 -0
  187. data/lib/aws/dynamo_db/types.rb +111 -0
  188. data/lib/aws/ec2.rb +440 -0
  189. data/lib/aws/ec2/attachment.rb +140 -0
  190. data/lib/aws/ec2/attachment_collection.rb +54 -0
  191. data/lib/aws/ec2/availability_zone.rb +86 -0
  192. data/lib/aws/ec2/availability_zone_collection.rb +43 -0
  193. data/lib/aws/ec2/block_device_mappings.rb +53 -0
  194. data/lib/aws/ec2/client.rb +3621 -0
  195. data/lib/aws/ec2/collection.rb +36 -0
  196. data/lib/aws/ec2/config.rb +18 -0
  197. data/lib/aws/ec2/config_transform.rb +63 -0
  198. data/lib/aws/ec2/customer_gateway.rb +90 -0
  199. data/lib/aws/ec2/customer_gateway_collection.rb +73 -0
  200. data/lib/aws/ec2/dhcp_options.rb +106 -0
  201. data/lib/aws/ec2/dhcp_options_collection.rb +87 -0
  202. data/lib/aws/ec2/elastic_ip.rb +208 -0
  203. data/lib/aws/ec2/elastic_ip_collection.rb +97 -0
  204. data/lib/aws/ec2/errors.rb +32 -0
  205. data/lib/aws/ec2/export_task.rb +120 -0
  206. data/lib/aws/ec2/export_task_collection.rb +67 -0
  207. data/lib/aws/ec2/filtered_collection.rb +89 -0
  208. data/lib/aws/ec2/has_permissions.rb +44 -0
  209. data/lib/aws/ec2/image.rb +264 -0
  210. data/lib/aws/ec2/image_collection.rb +228 -0
  211. data/lib/aws/ec2/instance.rb +796 -0
  212. data/lib/aws/ec2/instance_collection.rb +372 -0
  213. data/lib/aws/ec2/internet_gateway.rb +122 -0
  214. data/lib/aws/ec2/internet_gateway/attachment.rb +78 -0
  215. data/lib/aws/ec2/internet_gateway_collection.rb +54 -0
  216. data/lib/aws/ec2/key_pair.rb +82 -0
  217. data/lib/aws/ec2/key_pair_collection.rb +99 -0
  218. data/lib/aws/ec2/network_acl.rb +256 -0
  219. data/lib/aws/ec2/network_acl/association.rb +56 -0
  220. data/lib/aws/ec2/network_acl/entry.rb +147 -0
  221. data/lib/aws/ec2/network_acl_collection.rb +64 -0
  222. data/lib/aws/ec2/network_interface.rb +228 -0
  223. data/lib/aws/ec2/network_interface/attachment.rb +100 -0
  224. data/lib/aws/ec2/network_interface_collection.rb +103 -0
  225. data/lib/aws/ec2/permission_collection.rb +174 -0
  226. data/lib/aws/ec2/region.rb +106 -0
  227. data/lib/aws/ec2/region_collection.rb +51 -0
  228. data/lib/aws/ec2/request.rb +21 -0
  229. data/lib/aws/ec2/reserved_instances.rb +56 -0
  230. data/lib/aws/ec2/reserved_instances_collection.rb +40 -0
  231. data/lib/aws/ec2/reserved_instances_offering.rb +60 -0
  232. data/lib/aws/ec2/reserved_instances_offering_collection.rb +39 -0
  233. data/lib/aws/ec2/resource.rb +161 -0
  234. data/lib/aws/ec2/resource_tag_collection.rb +211 -0
  235. data/lib/aws/ec2/route_table.rb +205 -0
  236. data/lib/aws/ec2/route_table/association.rb +119 -0
  237. data/lib/aws/ec2/route_table/route.rb +119 -0
  238. data/lib/aws/ec2/route_table_collection.rb +72 -0
  239. data/lib/aws/ec2/security_group.rb +484 -0
  240. data/lib/aws/ec2/security_group/ip_permission.rb +135 -0
  241. data/lib/aws/ec2/security_group/ip_permission_collection.rb +82 -0
  242. data/lib/aws/ec2/security_group_collection.rb +135 -0
  243. data/lib/aws/ec2/snapshot.rb +143 -0
  244. data/lib/aws/ec2/snapshot_collection.rb +132 -0
  245. data/lib/aws/ec2/subnet.rb +161 -0
  246. data/lib/aws/ec2/subnet_collection.rb +115 -0
  247. data/lib/aws/ec2/tag.rb +81 -0
  248. data/lib/aws/ec2/tag_collection.rb +107 -0
  249. data/lib/aws/ec2/tagged_collection.rb +53 -0
  250. data/lib/aws/ec2/tagged_item.rb +85 -0
  251. data/lib/aws/ec2/volume.rb +174 -0
  252. data/lib/aws/ec2/volume_collection.rb +101 -0
  253. data/lib/aws/ec2/vpc.rb +166 -0
  254. data/lib/aws/ec2/vpc_collection.rb +70 -0
  255. data/lib/aws/ec2/vpn_connection.rb +99 -0
  256. data/lib/aws/ec2/vpn_connection/telemetry.rb +49 -0
  257. data/lib/aws/ec2/vpn_connection_collection.rb +96 -0
  258. data/lib/aws/ec2/vpn_gateway.rb +123 -0
  259. data/lib/aws/ec2/vpn_gateway/attachment.rb +45 -0
  260. data/lib/aws/ec2/vpn_gateway_collection.rb +77 -0
  261. data/lib/aws/elastic_beanstalk.rb +50 -0
  262. data/lib/aws/elastic_beanstalk/client.rb +867 -0
  263. data/lib/aws/elastic_beanstalk/config.rb +18 -0
  264. data/lib/aws/elastic_beanstalk/errors.rb +22 -0
  265. data/lib/aws/elastic_beanstalk/request.rb +29 -0
  266. data/lib/aws/elastic_transcoder.rb +30 -0
  267. data/lib/aws/elastic_transcoder/client.rb +672 -0
  268. data/lib/aws/elastic_transcoder/config.rb +18 -0
  269. data/lib/aws/elastic_transcoder/errors.rb +23 -0
  270. data/lib/aws/elastic_transcoder/request.rb +30 -0
  271. data/lib/aws/elasticache.rb +50 -0
  272. data/lib/aws/elasticache/client.rb +920 -0
  273. data/lib/aws/elasticache/config.rb +18 -0
  274. data/lib/aws/elasticache/errors.rb +22 -0
  275. data/lib/aws/elasticache/request.rb +23 -0
  276. data/lib/aws/elb.rb +67 -0
  277. data/lib/aws/elb/availability_zone_collection.rb +138 -0
  278. data/lib/aws/elb/backend_server_policy_collection.rb +139 -0
  279. data/lib/aws/elb/client.rb +500 -0
  280. data/lib/aws/elb/config.rb +18 -0
  281. data/lib/aws/elb/errors.rb +26 -0
  282. data/lib/aws/elb/instance_collection.rb +173 -0
  283. data/lib/aws/elb/listener.rb +190 -0
  284. data/lib/aws/elb/listener_collection.rb +113 -0
  285. data/lib/aws/elb/listener_opts.rb +45 -0
  286. data/lib/aws/elb/load_balancer.rb +281 -0
  287. data/lib/aws/elb/load_balancer_collection.rb +134 -0
  288. data/lib/aws/elb/load_balancer_policy.rb +93 -0
  289. data/lib/aws/elb/load_balancer_policy_collection.rb +208 -0
  290. data/lib/aws/elb/request.rb +29 -0
  291. data/lib/aws/emr.rb +86 -0
  292. data/lib/aws/emr/client.rb +330 -0
  293. data/lib/aws/emr/config.rb +18 -0
  294. data/lib/aws/emr/errors.rb +22 -0
  295. data/lib/aws/emr/instance_group.rb +138 -0
  296. data/lib/aws/emr/instance_group_collection.rb +82 -0
  297. data/lib/aws/emr/job_flow.rb +306 -0
  298. data/lib/aws/emr/job_flow_collection.rb +185 -0
  299. data/lib/aws/emr/request.rb +23 -0
  300. data/lib/aws/errors.rb +162 -0
  301. data/lib/aws/glacier.rb +80 -0
  302. data/lib/aws/glacier/archive.rb +56 -0
  303. data/lib/aws/glacier/archive_collection.rb +146 -0
  304. data/lib/aws/glacier/client.rb +286 -0
  305. data/lib/aws/glacier/config.rb +19 -0
  306. data/lib/aws/glacier/errors.rb +22 -0
  307. data/lib/aws/glacier/request.rb +34 -0
  308. data/lib/aws/glacier/resource.rb +30 -0
  309. data/lib/aws/glacier/vault.rb +145 -0
  310. data/lib/aws/glacier/vault_collection.rb +75 -0
  311. data/lib/aws/glacier/vault_notification_configuration.rb +29 -0
  312. data/lib/aws/iam.rb +420 -0
  313. data/lib/aws/iam/access_key.rb +180 -0
  314. data/lib/aws/iam/access_key_collection.rb +128 -0
  315. data/lib/aws/iam/account_alias_collection.rb +79 -0
  316. data/lib/aws/iam/client.rb +1092 -0
  317. data/lib/aws/iam/collection.rb +83 -0
  318. data/lib/aws/iam/config.rb +18 -0
  319. data/lib/aws/iam/errors.rb +22 -0
  320. data/lib/aws/iam/group.rb +111 -0
  321. data/lib/aws/iam/group_collection.rb +132 -0
  322. data/lib/aws/iam/group_policy_collection.rb +47 -0
  323. data/lib/aws/iam/group_user_collection.rb +84 -0
  324. data/lib/aws/iam/login_profile.rb +99 -0
  325. data/lib/aws/iam/mfa_device.rb +52 -0
  326. data/lib/aws/iam/mfa_device_collection.rb +127 -0
  327. data/lib/aws/iam/policy.rb +46 -0
  328. data/lib/aws/iam/policy_collection.rb +188 -0
  329. data/lib/aws/iam/request.rb +29 -0
  330. data/lib/aws/iam/resource.rb +62 -0
  331. data/lib/aws/iam/server_certificate.rb +141 -0
  332. data/lib/aws/iam/server_certificate_collection.rb +138 -0
  333. data/lib/aws/iam/signing_certificate.rb +169 -0
  334. data/lib/aws/iam/signing_certificate_collection.rb +131 -0
  335. data/lib/aws/iam/user.rb +205 -0
  336. data/lib/aws/iam/user_collection.rb +133 -0
  337. data/lib/aws/iam/user_group_collection.rb +98 -0
  338. data/lib/aws/iam/user_policy.rb +90 -0
  339. data/lib/aws/iam/user_policy_collection.rb +45 -0
  340. data/lib/aws/iam/virtual_mfa_device.rb +139 -0
  341. data/lib/aws/iam/virtual_mfa_device_collection.rb +73 -0
  342. data/lib/aws/import_export.rb +73 -0
  343. data/lib/aws/import_export/client.rb +109 -0
  344. data/lib/aws/import_export/config.rb +19 -0
  345. data/lib/aws/import_export/errors.rb +22 -0
  346. data/lib/aws/import_export/request.rb +23 -0
  347. data/lib/aws/ops_works.rb +30 -0
  348. data/lib/aws/ops_works/client.rb +713 -0
  349. data/lib/aws/ops_works/config.rb +18 -0
  350. data/lib/aws/ops_works/errors.rb +20 -0
  351. data/lib/aws/ops_works/request.rb +27 -0
  352. data/lib/aws/rails.rb +195 -0
  353. data/lib/aws/rds.rb +71 -0
  354. data/lib/aws/rds/client.rb +2228 -0
  355. data/lib/aws/rds/config.rb +18 -0
  356. data/lib/aws/rds/db_instance.rb +205 -0
  357. data/lib/aws/rds/db_instance_collection.rb +75 -0
  358. data/lib/aws/rds/db_snapshot.rb +163 -0
  359. data/lib/aws/rds/db_snapshot_collection.rb +89 -0
  360. data/lib/aws/rds/errors.rb +22 -0
  361. data/lib/aws/rds/request.rb +23 -0
  362. data/lib/aws/record.rb +116 -0
  363. data/lib/aws/record/abstract_base.rb +701 -0
  364. data/lib/aws/record/attributes.rb +384 -0
  365. data/lib/aws/record/conversion.rb +38 -0
  366. data/lib/aws/record/dirty_tracking.rb +285 -0
  367. data/lib/aws/record/errors.rb +143 -0
  368. data/lib/aws/record/exceptions.rb +48 -0
  369. data/lib/aws/record/hash_model.rb +161 -0
  370. data/lib/aws/record/hash_model/attributes.rb +197 -0
  371. data/lib/aws/record/hash_model/finder_methods.rb +172 -0
  372. data/lib/aws/record/hash_model/scope.rb +108 -0
  373. data/lib/aws/record/model.rb +427 -0
  374. data/lib/aws/record/model/attributes.rb +379 -0
  375. data/lib/aws/record/model/finder_methods.rb +232 -0
  376. data/lib/aws/record/model/scope.rb +213 -0
  377. data/lib/aws/record/naming.rb +31 -0
  378. data/lib/aws/record/scope.rb +199 -0
  379. data/lib/aws/record/validations.rb +712 -0
  380. data/lib/aws/record/validator.rb +246 -0
  381. data/lib/aws/record/validators/acceptance.rb +51 -0
  382. data/lib/aws/record/validators/block.rb +38 -0
  383. data/lib/aws/record/validators/confirmation.rb +43 -0
  384. data/lib/aws/record/validators/count.rb +108 -0
  385. data/lib/aws/record/validators/exclusion.rb +43 -0
  386. data/lib/aws/record/validators/format.rb +57 -0
  387. data/lib/aws/record/validators/inclusion.rb +56 -0
  388. data/lib/aws/record/validators/length.rb +107 -0
  389. data/lib/aws/record/validators/method.rb +33 -0
  390. data/lib/aws/record/validators/numericality.rb +138 -0
  391. data/lib/aws/record/validators/presence.rb +45 -0
  392. data/lib/aws/redshift.rb +52 -0
  393. data/lib/aws/redshift/client.rb +1291 -0
  394. data/lib/aws/redshift/config.rb +18 -0
  395. data/lib/aws/redshift/errors.rb +22 -0
  396. data/lib/aws/redshift/request.rb +29 -0
  397. data/lib/aws/route_53.rb +87 -0
  398. data/lib/aws/route_53/change_batch.rb +159 -0
  399. data/lib/aws/route_53/change_info.rb +72 -0
  400. data/lib/aws/route_53/client.rb +387 -0
  401. data/lib/aws/route_53/config.rb +18 -0
  402. data/lib/aws/route_53/errors.rb +22 -0
  403. data/lib/aws/route_53/hosted_zone.rb +111 -0
  404. data/lib/aws/route_53/hosted_zone_collection.rb +100 -0
  405. data/lib/aws/route_53/request.rb +23 -0
  406. data/lib/aws/route_53/resource_record_set.rb +237 -0
  407. data/lib/aws/route_53/resource_record_set_collection.rb +110 -0
  408. data/lib/aws/s3.rb +155 -0
  409. data/lib/aws/s3/access_control_list.rb +257 -0
  410. data/lib/aws/s3/acl_object.rb +264 -0
  411. data/lib/aws/s3/acl_options.rb +204 -0
  412. data/lib/aws/s3/bucket.rb +742 -0
  413. data/lib/aws/s3/bucket_collection.rb +160 -0
  414. data/lib/aws/s3/bucket_lifecycle_configuration.rb +458 -0
  415. data/lib/aws/s3/bucket_tag_collection.rb +109 -0
  416. data/lib/aws/s3/bucket_version_collection.rb +77 -0
  417. data/lib/aws/s3/cipher_io.rb +119 -0
  418. data/lib/aws/s3/client.rb +1700 -0
  419. data/lib/aws/s3/client/xml.rb +231 -0
  420. data/lib/aws/s3/config.rb +36 -0
  421. data/lib/aws/s3/cors_rule.rb +106 -0
  422. data/lib/aws/s3/cors_rule_collection.rb +192 -0
  423. data/lib/aws/s3/data_options.rb +185 -0
  424. data/lib/aws/s3/encryption_utils.rb +139 -0
  425. data/lib/aws/s3/errors.rb +94 -0
  426. data/lib/aws/s3/multipart_upload.rb +320 -0
  427. data/lib/aws/s3/multipart_upload_collection.rb +68 -0
  428. data/lib/aws/s3/object_collection.rb +355 -0
  429. data/lib/aws/s3/object_metadata.rb +96 -0
  430. data/lib/aws/s3/object_upload_collection.rb +77 -0
  431. data/lib/aws/s3/object_version.rb +148 -0
  432. data/lib/aws/s3/object_version_collection.rb +89 -0
  433. data/lib/aws/s3/paginated_collection.rb +75 -0
  434. data/lib/aws/s3/policy.rb +74 -0
  435. data/lib/aws/s3/prefix_and_delimiter_collection.rb +47 -0
  436. data/lib/aws/s3/prefixed_collection.rb +81 -0
  437. data/lib/aws/s3/presigned_post.rb +555 -0
  438. data/lib/aws/s3/request.rb +201 -0
  439. data/lib/aws/s3/s3_object.rb +1690 -0
  440. data/lib/aws/s3/tree.rb +118 -0
  441. data/lib/aws/s3/tree/branch_node.rb +68 -0
  442. data/lib/aws/s3/tree/child_collection.rb +104 -0
  443. data/lib/aws/s3/tree/leaf_node.rb +94 -0
  444. data/lib/aws/s3/tree/node.rb +22 -0
  445. data/lib/aws/s3/tree/parent.rb +87 -0
  446. data/lib/aws/s3/uploaded_part.rb +80 -0
  447. data/lib/aws/s3/uploaded_part_collection.rb +84 -0
  448. data/lib/aws/s3/website_configuration.rb +102 -0
  449. data/lib/aws/simple_db.rb +219 -0
  450. data/lib/aws/simple_db/attribute.rb +154 -0
  451. data/lib/aws/simple_db/attribute_collection.rb +231 -0
  452. data/lib/aws/simple_db/client.rb +287 -0
  453. data/lib/aws/simple_db/config.rb +20 -0
  454. data/lib/aws/simple_db/consistent_read_option.rb +42 -0
  455. data/lib/aws/simple_db/delete_attributes.rb +62 -0
  456. data/lib/aws/simple_db/domain.rb +121 -0
  457. data/lib/aws/simple_db/domain_collection.rb +86 -0
  458. data/lib/aws/simple_db/domain_metadata.rb +110 -0
  459. data/lib/aws/simple_db/errors.rb +55 -0
  460. data/lib/aws/simple_db/expect_condition_option.rb +45 -0
  461. data/lib/aws/simple_db/item.rb +93 -0
  462. data/lib/aws/simple_db/item_collection.rb +649 -0
  463. data/lib/aws/simple_db/item_data.rb +73 -0
  464. data/lib/aws/simple_db/put_attributes.rb +60 -0
  465. data/lib/aws/simple_db/request.rb +23 -0
  466. data/lib/aws/simple_email_service.rb +428 -0
  467. data/lib/aws/simple_email_service/client.rb +276 -0
  468. data/lib/aws/simple_email_service/config.rb +19 -0
  469. data/lib/aws/simple_email_service/email_address_collection.rb +69 -0
  470. data/lib/aws/simple_email_service/errors.rb +22 -0
  471. data/lib/aws/simple_email_service/identity.rb +209 -0
  472. data/lib/aws/simple_email_service/identity_collection.rb +81 -0
  473. data/lib/aws/simple_email_service/quotas.rb +64 -0
  474. data/lib/aws/simple_email_service/request.rb +27 -0
  475. data/lib/aws/simple_workflow.rb +228 -0
  476. data/lib/aws/simple_workflow/activity_task.rb +173 -0
  477. data/lib/aws/simple_workflow/activity_task_collection.rb +123 -0
  478. data/lib/aws/simple_workflow/activity_type.rb +131 -0
  479. data/lib/aws/simple_workflow/activity_type_collection.rb +93 -0
  480. data/lib/aws/simple_workflow/client.rb +1204 -0
  481. data/lib/aws/simple_workflow/config.rb +18 -0
  482. data/lib/aws/simple_workflow/count.rb +49 -0
  483. data/lib/aws/simple_workflow/decision_task.rb +603 -0
  484. data/lib/aws/simple_workflow/decision_task_collection.rb +225 -0
  485. data/lib/aws/simple_workflow/domain.rb +122 -0
  486. data/lib/aws/simple_workflow/domain_collection.rb +169 -0
  487. data/lib/aws/simple_workflow/errors.rb +20 -0
  488. data/lib/aws/simple_workflow/history_event.rb +276 -0
  489. data/lib/aws/simple_workflow/history_event_collection.rb +76 -0
  490. data/lib/aws/simple_workflow/option_formatters.rb +82 -0
  491. data/lib/aws/simple_workflow/request.rb +33 -0
  492. data/lib/aws/simple_workflow/resource.rb +94 -0
  493. data/lib/aws/simple_workflow/type.rb +89 -0
  494. data/lib/aws/simple_workflow/type_collection.rb +140 -0
  495. data/lib/aws/simple_workflow/workflow_execution.rb +386 -0
  496. data/lib/aws/simple_workflow/workflow_execution_collection.rb +617 -0
  497. data/lib/aws/simple_workflow/workflow_type.rb +177 -0
  498. data/lib/aws/simple_workflow/workflow_type_collection.rb +91 -0
  499. data/lib/aws/sns.rb +76 -0
  500. data/lib/aws/sns/client.rb +266 -0
  501. data/lib/aws/sns/config.rb +18 -0
  502. data/lib/aws/sns/errors.rb +22 -0
  503. data/lib/aws/sns/has_delivery_policy.rb +68 -0
  504. data/lib/aws/sns/policy.rb +47 -0
  505. data/lib/aws/sns/request.rb +23 -0
  506. data/lib/aws/sns/subscription.rb +144 -0
  507. data/lib/aws/sns/subscription_collection.rb +78 -0
  508. data/lib/aws/sns/topic.rb +403 -0
  509. data/lib/aws/sns/topic_collection.rb +62 -0
  510. data/lib/aws/sns/topic_subscription_collection.rb +54 -0
  511. data/lib/aws/sqs.rb +81 -0
  512. data/lib/aws/sqs/client.rb +258 -0
  513. data/lib/aws/sqs/config.rb +18 -0
  514. data/lib/aws/sqs/errors.rb +101 -0
  515. data/lib/aws/sqs/policy.rb +48 -0
  516. data/lib/aws/sqs/queue.rb +764 -0
  517. data/lib/aws/sqs/queue_collection.rb +174 -0
  518. data/lib/aws/sqs/received_message.rb +181 -0
  519. data/lib/aws/sqs/received_sns_message.rb +116 -0
  520. data/lib/aws/sqs/request.rb +67 -0
  521. data/lib/aws/storage_gateway.rb +73 -0
  522. data/lib/aws/storage_gateway/client.rb +472 -0
  523. data/lib/aws/storage_gateway/config.rb +18 -0
  524. data/lib/aws/storage_gateway/errors.rb +22 -0
  525. data/lib/aws/storage_gateway/request.rb +28 -0
  526. data/lib/aws/sts.rb +163 -0
  527. data/lib/aws/sts/client.rb +157 -0
  528. data/lib/aws/sts/config.rb +18 -0
  529. data/lib/aws/sts/errors.rb +22 -0
  530. data/lib/aws/sts/federated_session.rb +56 -0
  531. data/lib/aws/sts/policy.rb +30 -0
  532. data/lib/aws/sts/request.rb +29 -0
  533. data/lib/aws/sts/session.rb +48 -0
  534. data/lib/aws/version.rb +18 -0
  535. data/lib/net/http/connection_pool.rb +226 -0
  536. data/lib/net/http/connection_pool/connection.rb +189 -0
  537. data/lib/net/http/connection_pool/session.rb +126 -0
  538. data/rails/init.rb +15 -0
  539. metadata +632 -0
@@ -0,0 +1,369 @@
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 CloudFormation
16
+
17
+ # Client class for AWS CloudFormation.
18
+ class Client < Core::QueryClient
19
+
20
+ # @private
21
+ CACHEABLE_REQUESTS = Set[
22
+ :describe_adjustment_types,
23
+ :describe_auto_scaling_groups,
24
+ :describe_auto_scaling_instances,
25
+ :describe_auto_scaling_notification_types,
26
+ :describe_launch_configurations,
27
+ :describe_metric_collection_types,
28
+ :describe_notification_configurations,
29
+ :describe_policies,
30
+ :describe_scaling_activities,
31
+ :describe_scaling_process_types,
32
+ :describe_scheduled_actions,
33
+ :describe_tags,
34
+ ]
35
+
36
+ # client methods #
37
+
38
+ # @!method cancel_update_stack(options = {})
39
+ # Calls the CancelUpdateStack API operation.
40
+ # @param [Hash] options
41
+ # * +:stack_name+ - *required* - (String) The name or the unique
42
+ # identifier associated with the stack.
43
+ # @return [Core::Response]
44
+
45
+ # @!method create_stack(options = {})
46
+ # Calls the CreateStack API operation.
47
+ # @param [Hash] options
48
+ # * +:stack_name+ - *required* - (String) The name associated with the
49
+ # stack. The name must be unique within your AWS account. Must
50
+ # contain only alphanumeric characters (case sensitive) and start
51
+ # with an alpha character. Maximum length of the name is 255
52
+ # characters.
53
+ # * +:template_body+ - (String) Structure containing the template body.
54
+ # (For more information, go to the AWS CloudFormation User Guide.)
55
+ # Conditional: You must pass TemplateBody or TemplateURL. If both are
56
+ # passed, only TemplateBody is used.
57
+ # * +:template_url+ - (String) Location of file containing the template
58
+ # body. The URL must point to a template (max size: 307,200 bytes)
59
+ # located in an S3 bucket in the same region as the stack. For more
60
+ # information, go to the AWS CloudFormation User Guide. Conditional:
61
+ # You must pass TemplateURL or TemplateBody. If both are passed, only
62
+ # TemplateBody is used.
63
+ # * +:parameters+ - (Array<Hash>) A list of Parameter structures that
64
+ # specify input parameters for the stack.
65
+ # * +:parameter_key+ - (String) The key associated with the
66
+ # parameter.
67
+ # * +:parameter_value+ - (String) The value associated with the
68
+ # parameter.
69
+ # * +:disable_rollback+ - (Boolean) Set to +true+ to disable rollback
70
+ # of the stack if stack creation failed. You can specify either
71
+ # DisableRollback or OnFailure, but not both. Default: +false+
72
+ # * +:timeout_in_minutes+ - (Integer) The amount of time that can pass
73
+ # before the stack status becomes CREATE_FAILED; if DisableRollback
74
+ # is not set or is set to +false+ , the stack will be rolled back.
75
+ # * +:notification_arns+ - (Array<String>) The Simple Notification
76
+ # Service (SNS) topic ARNs to publish stack related events. You can
77
+ # find your SNS topic ARNs using the SNS console or your Command Line
78
+ # Interface (CLI).
79
+ # * +:capabilities+ - (Array<String>) The list of capabilities that you
80
+ # want to allow in the stack. If your template contains IAM
81
+ # resources, you must specify the CAPABILITY_IAM value for this
82
+ # parameter; otherwise, this action returns an
83
+ # InsufficientCapabilities error. IAM resources are the following:
84
+ # AWS::IAM::AccessKey, AWS::IAM::Group, AWS::IAM::Policy,
85
+ # AWS::IAM::User, and AWS::IAM::UserToGroupAddition.
86
+ # * +:on_failure+ - (String) Determines what action will be taken if
87
+ # stack creation fails. This must be one of: DO_NOTHING, ROLLBACK, or
88
+ # DELETE. You can specify either OnFailure or DisableRollback, but
89
+ # not both. Default: ROLLBACK
90
+ # * +:tags+ - (Array<Hash>) A set of user-defined Tags to associate
91
+ # with this stack, represented by key/value pairs. Tags defined for
92
+ # the stack are propogated to EC2 resources that are created as part
93
+ # of the stack. A maximum number of 10 tags can be specified.
94
+ # * +:key+ - (String) Required. A string used to identify this tag.
95
+ # You can specify a maximum of 128 characters for a tag key. Tags
96
+ # owned by Amazon Web Services (AWS) have the reserved prefix:
97
+ # aws:.
98
+ # * +:value+ - (String) Required. A string containing the value for
99
+ # this tag. You can specify a maximum of 256 characters for a tag
100
+ # value.
101
+ # @return [Core::Response]
102
+ # The #data method of the response object returns
103
+ # a hash with the following structure:
104
+ # * +:stack_id+ - (String)
105
+
106
+ # @!method delete_stack(options = {})
107
+ # Calls the DeleteStack API operation.
108
+ # @param [Hash] options
109
+ # * +:stack_name+ - *required* - (String) The name or the unique
110
+ # identifier associated with the stack.
111
+ # @return [Core::Response]
112
+
113
+ # @!method describe_stack_events(options = {})
114
+ # Calls the DescribeStackEvents API operation.
115
+ # @param [Hash] options
116
+ # * +:stack_name+ - (String) The name or the unique identifier
117
+ # associated with the stack. Default: There is no default value.
118
+ # * +:next_token+ - (String) String that identifies the start of the
119
+ # next list of events, if there is one. Default: There is no default
120
+ # value.
121
+ # @return [Core::Response]
122
+ # The #data method of the response object returns
123
+ # a hash with the following structure:
124
+ # * +:stack_events+ - (Array<Hash>)
125
+ # * +:stack_id+ - (String)
126
+ # * +:event_id+ - (String)
127
+ # * +:stack_name+ - (String)
128
+ # * +:logical_resource_id+ - (String)
129
+ # * +:physical_resource_id+ - (String)
130
+ # * +:resource_type+ - (String)
131
+ # * +:timestamp+ - (Time)
132
+ # * +:resource_status+ - (String)
133
+ # * +:resource_status_reason+ - (String)
134
+ # * +:resource_properties+ - (String)
135
+ # * +:next_token+ - (String)
136
+
137
+ # @!method describe_stack_resource(options = {})
138
+ # Calls the DescribeStackResource API operation.
139
+ # @param [Hash] options
140
+ # * +:stack_name+ - *required* - (String) The name or the unique
141
+ # identifier associated with the stack. Default: There is no default
142
+ # value.
143
+ # * +:logical_resource_id+ - *required* - (String) The logical name of
144
+ # the resource as specified in the template. Default: There is no
145
+ # default value.
146
+ # @return [Core::Response]
147
+ # The #data method of the response object returns
148
+ # a hash with the following structure:
149
+ # * +:stack_resource_detail+ - (Hash)
150
+ # * +:stack_name+ - (String)
151
+ # * +:stack_id+ - (String)
152
+ # * +:logical_resource_id+ - (String)
153
+ # * +:physical_resource_id+ - (String)
154
+ # * +:resource_type+ - (String)
155
+ # * +:last_updated_timestamp+ - (Time)
156
+ # * +:resource_status+ - (String)
157
+ # * +:resource_status_reason+ - (String)
158
+ # * +:description+ - (String)
159
+ # * +:metadata+ - (String)
160
+
161
+ # @!method describe_stack_resources(options = {})
162
+ # Calls the DescribeStackResources API operation.
163
+ # @param [Hash] options
164
+ # * +:stack_name+ - (String) The name or the unique identifier
165
+ # associated with the stack. Required: Conditional. If you do not
166
+ # specify StackName, you must specify PhysicalResourceId. Default:
167
+ # There is no default value.
168
+ # * +:logical_resource_id+ - (String) The logical name of the resource
169
+ # as specified in the template. Default: There is no default value.
170
+ # * +:physical_resource_id+ - (String) The name or unique identifier
171
+ # that corresponds to a physical instance ID of a resource supported
172
+ # by AWS CloudFormation. For example, for an Amazon Elastic Compute
173
+ # Cloud (EC2) instance, PhysicalResourceId corresponds to the
174
+ # InstanceId. You can pass the EC2 InstanceId to
175
+ # DescribeStackResources to find which stack the instance belongs to
176
+ # and what other resources are part of the stack. Required:
177
+ # Conditional. If you do not specify PhysicalResourceId, you must
178
+ # specify StackName. Default: There is no default value.
179
+ # @return [Core::Response]
180
+ # The #data method of the response object returns
181
+ # a hash with the following structure:
182
+ # * +:stack_resources+ - (Array<Hash>)
183
+ # * +:stack_name+ - (String)
184
+ # * +:stack_id+ - (String)
185
+ # * +:logical_resource_id+ - (String)
186
+ # * +:physical_resource_id+ - (String)
187
+ # * +:resource_type+ - (String)
188
+ # * +:timestamp+ - (Time)
189
+ # * +:resource_status+ - (String)
190
+ # * +:resource_status_reason+ - (String)
191
+ # * +:description+ - (String)
192
+
193
+ # @!method describe_stacks(options = {})
194
+ # Calls the DescribeStacks API operation.
195
+ # @param [Hash] options
196
+ # * +:stack_name+ - (String) The name or the unique identifier
197
+ # associated with the stack. Default: There is no default value.
198
+ # * +:next_token+ - (String)
199
+ # @return [Core::Response]
200
+ # The #data method of the response object returns
201
+ # a hash with the following structure:
202
+ # * +:stacks+ - (Array<Hash>)
203
+ # * +:stack_id+ - (String)
204
+ # * +:stack_name+ - (String)
205
+ # * +:description+ - (String)
206
+ # * +:parameters+ - (Array<Hash>)
207
+ # * +:parameter_key+ - (String)
208
+ # * +:parameter_value+ - (String)
209
+ # * +:creation_time+ - (Time)
210
+ # * +:last_updated_time+ - (Time)
211
+ # * +:stack_status+ - (String)
212
+ # * +:stack_status_reason+ - (String)
213
+ # * +:disable_rollback+ - (Boolean)
214
+ # * +:notification_arns+ - (Array<String>)
215
+ # * +:timeout_in_minutes+ - (Integer)
216
+ # * +:capabilities+ - (Array<String>)
217
+ # * +:outputs+ - (Array<Hash>)
218
+ # * +:output_key+ - (String)
219
+ # * +:output_value+ - (String)
220
+ # * +:description+ - (String)
221
+ # * +:tags+ - (Array<Hash>)
222
+ # * +:key+ - (String)
223
+ # * +:value+ - (String)
224
+ # * +:next_token+ - (String)
225
+
226
+ # @!method estimate_template_cost(options = {})
227
+ # Calls the EstimateTemplateCost API operation.
228
+ # @param [Hash] options
229
+ # * +:template_body+ - (String) Structure containing the template body.
230
+ # (For more information, go to the AWS CloudFormation User Guide.)
231
+ # Conditional: You must pass TemplateBody or TemplateURL. If both are
232
+ # passed, only TemplateBody is used.
233
+ # * +:template_url+ - (String) Location of file containing the template
234
+ # body. The URL must point to a template located in an S3 bucket in
235
+ # the same region as the stack. For more information, go to the AWS
236
+ # CloudFormation User Guide. Conditional: You must pass TemplateURL
237
+ # or TemplateBody. If both are passed, only TemplateBody is used.
238
+ # * +:parameters+ - (Array<Hash>) A list of Parameter structures that
239
+ # specify input parameters.
240
+ # * +:parameter_key+ - (String) The key associated with the
241
+ # parameter.
242
+ # * +:parameter_value+ - (String) The value associated with the
243
+ # parameter.
244
+ # @return [Core::Response]
245
+ # The #data method of the response object returns
246
+ # a hash with the following structure:
247
+ # * +:url+ - (String)
248
+
249
+ # @!method get_template(options = {})
250
+ # Calls the GetTemplate API operation.
251
+ # @param [Hash] options
252
+ # * +:stack_name+ - *required* - (String) The name or the unique
253
+ # identifier associated with the stack.
254
+ # @return [Core::Response]
255
+ # The #data method of the response object returns
256
+ # a hash with the following structure:
257
+ # * +:template_body+ - (String)
258
+
259
+ # @!method list_stack_resources(options = {})
260
+ # Calls the ListStackResources API operation.
261
+ # @param [Hash] options
262
+ # * +:stack_name+ - *required* - (String) The name or the unique
263
+ # identifier associated with the stack. Default: There is no default
264
+ # value.
265
+ # * +:next_token+ - (String) String that identifies the start of the
266
+ # next list of stack resource summaries, if there is one. Default:
267
+ # There is no default value.
268
+ # @return [Core::Response]
269
+ # The #data method of the response object returns
270
+ # a hash with the following structure:
271
+ # * +:stack_resource_summaries+ - (Array<Hash>)
272
+ # * +:logical_resource_id+ - (String)
273
+ # * +:physical_resource_id+ - (String)
274
+ # * +:resource_type+ - (String)
275
+ # * +:last_updated_timestamp+ - (Time)
276
+ # * +:resource_status+ - (String)
277
+ # * +:resource_status_reason+ - (String)
278
+ # * +:next_token+ - (String)
279
+
280
+ # @!method list_stacks(options = {})
281
+ # Calls the ListStacks API operation.
282
+ # @param [Hash] options
283
+ # * +:next_token+ - (String) String that identifies the start of the
284
+ # next list of stacks, if there is one. Default: There is no default
285
+ # value.
286
+ # * +:stack_status_filter+ - (Array<String>) Stack status to use as a
287
+ # filter. Specify one or more stack status codes to list only stacks
288
+ # with the specified status codes. For a complete list of stack
289
+ # status codes, see the StackStatus parameter of the Stack data type.
290
+ # @return [Core::Response]
291
+ # The #data method of the response object returns
292
+ # a hash with the following structure:
293
+ # * +:stack_summaries+ - (Array<Hash>)
294
+ # * +:stack_id+ - (String)
295
+ # * +:stack_name+ - (String)
296
+ # * +:template_description+ - (String)
297
+ # * +:creation_time+ - (Time)
298
+ # * +:last_updated_time+ - (Time)
299
+ # * +:deletion_time+ - (Time)
300
+ # * +:stack_status+ - (String)
301
+ # * +:stack_status_reason+ - (String)
302
+ # * +:next_token+ - (String)
303
+
304
+ # @!method update_stack(options = {})
305
+ # Calls the UpdateStack API operation.
306
+ # @param [Hash] options
307
+ # * +:stack_name+ - *required* - (String) The name or stack ID of the
308
+ # stack to update. Must contain only alphanumeric characters (case
309
+ # sensitive) and start with an alpha character. Maximum length of the
310
+ # name is 255 characters.
311
+ # * +:template_body+ - (String) Structure containing the template body.
312
+ # (For more information, go to the AWS CloudFormation User Guide.)
313
+ # Conditional: You must pass TemplateBody or TemplateURL. If both are
314
+ # passed, only TemplateBody is used.
315
+ # * +:template_url+ - (String) Location of file containing the template
316
+ # body. The URL must point to a template located in an S3 bucket in
317
+ # the same region as the stack. For more information, go to the AWS
318
+ # CloudFormation User Guide. Conditional: You must pass TemplateURL
319
+ # or TemplateBody. If both are passed, only TemplateBody is used.
320
+ # * +:parameters+ - (Array<Hash>) A list of Parameter structures that
321
+ # specify input parameters for the stack.
322
+ # * +:parameter_key+ - (String) The key associated with the
323
+ # parameter.
324
+ # * +:parameter_value+ - (String) The value associated with the
325
+ # parameter.
326
+ # * +:capabilities+ - (Array<String>) The list of capabilities that you
327
+ # want to allow in the stack. If your stack contains IAM resources,
328
+ # you must specify the CAPABILITY_IAM value for this parameter;
329
+ # otherwise, this action returns an InsufficientCapabilities error.
330
+ # IAM resources are the following: AWS::IAM::AccessKey,
331
+ # AWS::IAM::Group, AWS::IAM::Policy, AWS::IAM::User, and
332
+ # AWS::IAM::UserToGroupAddition.
333
+ # @return [Core::Response]
334
+ # The #data method of the response object returns
335
+ # a hash with the following structure:
336
+ # * +:stack_id+ - (String)
337
+
338
+ # @!method validate_template(options = {})
339
+ # Calls the ValidateTemplate API operation.
340
+ # @param [Hash] options
341
+ # * +:template_body+ - (String) String containing the template body.
342
+ # (For more information, go to the AWS CloudFormation User Guide.)
343
+ # Conditional: You must pass TemplateURL or TemplateBody. If both are
344
+ # passed, only TemplateBody is used.
345
+ # * +:template_url+ - (String) Location of file containing the template
346
+ # body. The URL must point to a template (max size: 307,200 bytes)
347
+ # located in an S3 bucket in the same region as the stack. For more
348
+ # information, go to the AWS CloudFormation User Guide. Conditional:
349
+ # You must pass TemplateURL or TemplateBody. If both are passed, only
350
+ # TemplateBody is used.
351
+ # @return [Core::Response]
352
+ # The #data method of the response object returns
353
+ # a hash with the following structure:
354
+ # * +:parameters+ - (Array<Hash>)
355
+ # * +:parameter_key+ - (String)
356
+ # * +:default_value+ - (String)
357
+ # * +:no_echo+ - (Boolean)
358
+ # * +:description+ - (String)
359
+ # * +:description+ - (String)
360
+ # * +:capabilities+ - (Array<String>)
361
+ # * +:capabilities_reason+ - (String)
362
+
363
+ # end client methods #
364
+
365
+ define_client_methods('2010-05-15')
366
+
367
+ end
368
+ end
369
+ end
@@ -0,0 +1,18 @@
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
+ AWS::Core::Configuration.module_eval do
15
+
16
+ add_service 'CloudFormation', 'cloud_formation', 'cloudformation.us-east-1.amazonaws.com'
17
+
18
+ end
@@ -0,0 +1,22 @@
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 CloudFormation
16
+ module Errors
17
+
18
+ extend Core::LazyErrorClasses
19
+
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,29 @@
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 CloudFormation
16
+
17
+ # @private
18
+ class Request < Core::Http::Request
19
+
20
+ include Core::Signature::Version4
21
+
22
+ def service
23
+ 'cloudformation'
24
+ end
25
+
26
+ end
27
+
28
+ end
29
+ end
@@ -0,0 +1,255 @@
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
+
15
+ module AWS
16
+ class CloudFormation
17
+
18
+ # @attr_reader [String] template Returns the stack's template as a JSON
19
+ # string.
20
+ #
21
+ # @attr_reader [Time] creation_time The time the stack was created.
22
+ #
23
+ # @attr_reader [Time,nil] last_updated_time The time the stack was
24
+ # last updated.
25
+ #
26
+ # @attr_reader [String] stack_id Unique stack identifier.
27
+ #
28
+ # @attr_reader [String] status The status of the stack.
29
+ #
30
+ # @attr_reader [String] status_reason Success/Failure message
31
+ # associated with the +status+.
32
+ #
33
+ # @attr_reader [Array<String>] capabilities The capabilities
34
+ # allowed in the stack.
35
+ #
36
+ # @attr_reader [String] description User defined description
37
+ # associated with the stack.
38
+ #
39
+ # @attr_reader [Boolean] disable_rollback Specifies if the stack
40
+ # is rolled back due to stack creation errors.
41
+ #
42
+ # @attr_reader [Array<String>] notification_arns
43
+ # SNS topic ARNs to which stack related events are published.
44
+ #
45
+ # @attr_reader [Hash] parameters Returns a hash of stack parameters.
46
+ #
47
+ # @attr_reader [Integer] timeout
48
+ # The number of minutes within the stack creation should complete.
49
+ #
50
+ class Stack < Core::Resource
51
+
52
+ include StackOptions
53
+
54
+ # @private
55
+ def initialize name, options = {}
56
+ @name = name
57
+ super
58
+ end
59
+
60
+ # @return [String] Returns the stack name.
61
+ attr_reader :name
62
+
63
+ define_attribute_type :template
64
+
65
+ define_attribute_type :describe
66
+
67
+ ## returned by GetTemplate
68
+
69
+ template_attribute :template, :from => :template_body
70
+
71
+ alias_method :template_body, :template
72
+
73
+ ## returned by DescribeStacks
74
+
75
+ describe_attribute :creation_time, :static => true
76
+
77
+ describe_attribute :last_updated_time
78
+
79
+ describe_attribute :stack_id, :static => true
80
+
81
+ describe_attribute :status, :from => :stack_status
82
+
83
+ describe_attribute :status_reason, :from => :stack_status_reason
84
+
85
+ describe_attribute :capabilities
86
+
87
+ describe_attribute :description
88
+
89
+ describe_attribute :disable_rollback, :from => :disable_rollback?
90
+
91
+ alias_method :disable_rollback?, :disable_rollback
92
+
93
+ describe_attribute :notification_arns
94
+
95
+ describe_attribute :output_details, :from => :outputs
96
+
97
+ protected :output_details
98
+
99
+ describe_attribute :parameters do
100
+ translates_output do |params|
101
+ params.inject({}) do |hash,param|
102
+ hash.merge(param[:parameter_key] => param[:parameter_value])
103
+ end
104
+ end
105
+ end
106
+
107
+ describe_attribute :timeout, :from => :timeout_in_minutes
108
+
109
+ alias_method :timeout_in_minutes, :timeout
110
+
111
+ ## attribute providers
112
+
113
+ provider(:describe_stacks) do |provider|
114
+ provider.find do |resp|
115
+ resp.data[:stacks].find{|stack| stack[:stack_name] == name }
116
+ end
117
+ provider.provides *describe_attributes.keys
118
+ end
119
+
120
+ provider(:get_template) do |provider|
121
+ provider.find do |resp|
122
+ resp if resp.request_options[:stack_name] == name
123
+ end
124
+ provider.provides *template_attributes.keys
125
+ end
126
+
127
+ # @return [Array<StackOutput>]
128
+ def outputs
129
+ output_details.collect do |o|
130
+ key, value, desc = o.values_at(:output_key, :output_value, :description)
131
+ StackOutput.new(self, key, value, desc)
132
+ end
133
+ end
134
+
135
+ # @return [StackEventCollection] Returns a collection that represents
136
+ # all events for this stack.
137
+ def events
138
+ StackEventCollection.new(self)
139
+ end
140
+
141
+ # Returns a stack resource collection that enumerates all resources
142
+ # for this stack.
143
+ #
144
+ # stack.resources.each do |resource|
145
+ # puts "#{resource.resource_type}: #{resource.physical_resource_id}"
146
+ # end
147
+ #
148
+ # If you want a specific resource and you know its logical resource
149
+ # id, you can use this collection to return a reference to it.
150
+ #
151
+ # resource = stack.resources['logical-resource-id']
152
+ #
153
+ # @return [StackResourceCollection]
154
+ #
155
+ def resources
156
+ StackResourceCollection.new(self)
157
+ end
158
+
159
+ # Returns a stack resource summary collection, that when enumerated
160
+ # yields summary hashes. Each hash has the following keys:
161
+ #
162
+ # * +:last_updated_timestamp+
163
+ # * +:logical_resource_id+
164
+ # * +:physical_resource_id+
165
+ # * +:resource_status+
166
+ # * +:resource_status_reason+
167
+ # * +:resource_type+
168
+ #
169
+ # @return [StackResourceSummaryCollection]
170
+ #
171
+ def resource_summaries
172
+ StackResourceSummaryCollection.new(self)
173
+ end
174
+
175
+ # @param [Hash] options
176
+ #
177
+ # @option options [String,URI,S3::S3Object,Object] :template
178
+ # A new stack template. This may be provided in a number of formats
179
+ # including:
180
+ #
181
+ # * a String, containing the template as a JSON document.
182
+ # * a URL String pointing to the document in S3.
183
+ # * a URI object pointing to the document in S3.
184
+ # * an {S3::S3Object} which contains the template.
185
+ # * an Object which responds to #to_json and returns the template.
186
+ #
187
+ # @option options [Hash] :parameters A hash that specifies the
188
+ # input parameters of the new stack.
189
+ #
190
+ # @option options[Array<String>] :capabilities The list of capabilities
191
+ # that you want to allow in the stack. If your stack contains IAM
192
+ # resources, you must specify the CAPABILITY_IAM value for this
193
+ # parameter; otherwise, this action returns an
194
+ # InsufficientCapabilities error. IAM resources are the following:
195
+ #
196
+ # * AWS::IAM::AccessKey
197
+ # * AWS::IAM::Group
198
+ # * AWS::IAM::Policy
199
+ # * AWS::IAM::User
200
+ # * AWS::IAM::UserToGroupAddition
201
+ #
202
+ # @return [nil]
203
+ #
204
+ def update options = {}
205
+ client_opts = options.dup
206
+
207
+ apply_stack_name(name, client_opts)
208
+ apply_template(client_opts)
209
+ apply_parameters(client_opts)
210
+
211
+ client.update_stack(client_opts)
212
+
213
+ nil
214
+ end
215
+
216
+ # @return (see CloudFormation#estimate_template_cost)
217
+ def estimate_template_cost
218
+ cloud_formation = CloudFormation.new(:config => config)
219
+ cloud_formation.estimate_template_cost(template, parameters)
220
+ end
221
+
222
+ # Deletes the current stack.
223
+ # @return [nil]
224
+ def delete
225
+ client.delete_stack(:stack_name => name)
226
+ nil
227
+ end
228
+
229
+ # @return [Boolean]
230
+ def exists?
231
+ begin
232
+ client.describe_stacks(resource_options)
233
+ true
234
+ rescue Errors::ValidationError
235
+ false
236
+ end
237
+ end
238
+
239
+ protected
240
+
241
+ def resource_identifiers
242
+ [[:stack_name, name]]
243
+ end
244
+
245
+ def get_resource attribute
246
+ if attribute.name == :template
247
+ client.get_template(resource_options)
248
+ else
249
+ client.describe_stacks(resource_options)
250
+ end
251
+ end
252
+
253
+ end
254
+ end
255
+ end