aws-sdk 1.32.0 → 3.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (551) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +100 -0
  3. data/LICENSE.txt +199 -9
  4. data/VERSION +1 -0
  5. data/lib/aws-sdk.rb +2 -14
  6. metadata +22 -591
  7. data/.yardopts +0 -7
  8. data/README.md +0 -291
  9. data/bin/aws-rb +0 -169
  10. data/ca-bundle.crt +0 -3554
  11. data/endpoints.json +0 -1506
  12. data/lib/aws.rb +0 -14
  13. data/lib/aws/api_config/AutoScaling-2011-01-01.yml +0 -869
  14. data/lib/aws/api_config/CloudFormation-2010-05-15.yml +0 -358
  15. data/lib/aws/api_config/CloudFront-2013-05-12.yml +0 -2448
  16. data/lib/aws/api_config/CloudFront-2013-08-26.yml +0 -2599
  17. data/lib/aws/api_config/CloudFront-2013-09-27.yml +0 -2765
  18. data/lib/aws/api_config/CloudFront-2013-11-11.yml +0 -2886
  19. data/lib/aws/api_config/CloudSearch-2011-02-01.yml +0 -681
  20. data/lib/aws/api_config/CloudTrail-2013-11-01.yml +0 -159
  21. data/lib/aws/api_config/CloudWatch-2010-08-01.yml +0 -433
  22. data/lib/aws/api_config/DataPipeline-2012-10-29.yml +0 -422
  23. data/lib/aws/api_config/DirectConnect-2012-10-25.yml +0 -735
  24. data/lib/aws/api_config/DynamoDB-2011-12-05.yml +0 -1168
  25. data/lib/aws/api_config/DynamoDB-2012-08-10.yml +0 -2005
  26. data/lib/aws/api_config/EC2-2013-08-15.yml +0 -4708
  27. data/lib/aws/api_config/EC2-2013-10-01.yml +0 -4726
  28. data/lib/aws/api_config/EC2-2013-10-15.yml +0 -4726
  29. data/lib/aws/api_config/ELB-2012-06-01.yml +0 -632
  30. data/lib/aws/api_config/EMR-2009-03-31.yml +0 -953
  31. data/lib/aws/api_config/ElastiCache-2013-06-15.yml +0 -1188
  32. data/lib/aws/api_config/ElasticBeanstalk-2010-12-01.yml +0 -847
  33. data/lib/aws/api_config/ElasticTranscoder-2012-09-25.yml +0 -2285
  34. data/lib/aws/api_config/Glacier-2012-06-01.yml +0 -649
  35. data/lib/aws/api_config/IAM-2010-05-08.yml +0 -1297
  36. data/lib/aws/api_config/ImportExport-2010-06-01.yml +0 -109
  37. data/lib/aws/api_config/Kinesis-2013-12-02.yml +0 -201
  38. data/lib/aws/api_config/OpsWorks-2013-02-18.yml +0 -1825
  39. data/lib/aws/api_config/RDS-2013-05-15.yml +0 -2464
  40. data/lib/aws/api_config/RDS-2013-09-09.yml +0 -2641
  41. data/lib/aws/api_config/Redshift-2012-12-01.yml +0 -2137
  42. data/lib/aws/api_config/Route53-2012-12-12.yml +0 -547
  43. data/lib/aws/api_config/SNS-2010-03-31.yml +0 -433
  44. data/lib/aws/api_config/SQS-2012-11-05.yml +0 -319
  45. data/lib/aws/api_config/STS-2011-06-15.yml +0 -147
  46. data/lib/aws/api_config/SimpleDB-2009-04-15.yml +0 -306
  47. data/lib/aws/api_config/SimpleEmailService-2010-12-01.yml +0 -346
  48. data/lib/aws/api_config/SimpleWorkflow-2012-01-25.yml +0 -2388
  49. data/lib/aws/api_config/StorageGateway-2012-06-30.yml +0 -748
  50. data/lib/aws/api_config/StorageGateway-2013-06-30.yml +0 -1025
  51. data/lib/aws/api_config/Support-2013-04-15.yml +0 -426
  52. data/lib/aws/auto_scaling.rb +0 -163
  53. data/lib/aws/auto_scaling/activity.rb +0 -102
  54. data/lib/aws/auto_scaling/activity_collection.rb +0 -81
  55. data/lib/aws/auto_scaling/client.rb +0 -48
  56. data/lib/aws/auto_scaling/config.rb +0 -18
  57. data/lib/aws/auto_scaling/errors.rb +0 -22
  58. data/lib/aws/auto_scaling/group.rb +0 -421
  59. data/lib/aws/auto_scaling/group_collection.rb +0 -96
  60. data/lib/aws/auto_scaling/group_options.rb +0 -155
  61. data/lib/aws/auto_scaling/instance.rb +0 -192
  62. data/lib/aws/auto_scaling/instance_collection.rb +0 -63
  63. data/lib/aws/auto_scaling/launch_configuration.rb +0 -162
  64. data/lib/aws/auto_scaling/launch_configuration_collection.rb +0 -160
  65. data/lib/aws/auto_scaling/notification_configuration.rb +0 -89
  66. data/lib/aws/auto_scaling/notification_configuration_collection.rb +0 -183
  67. data/lib/aws/auto_scaling/scaling_policy.rb +0 -142
  68. data/lib/aws/auto_scaling/scaling_policy_collection.rb +0 -72
  69. data/lib/aws/auto_scaling/scaling_policy_options.rb +0 -65
  70. data/lib/aws/auto_scaling/scheduled_action.rb +0 -141
  71. data/lib/aws/auto_scaling/scheduled_action_collection.rb +0 -202
  72. data/lib/aws/auto_scaling/tag.rb +0 -59
  73. data/lib/aws/auto_scaling/tag_collection.rb +0 -114
  74. data/lib/aws/cloud_formation.rb +0 -272
  75. data/lib/aws/cloud_formation/client.rb +0 -48
  76. data/lib/aws/cloud_formation/config.rb +0 -18
  77. data/lib/aws/cloud_formation/errors.rb +0 -22
  78. data/lib/aws/cloud_formation/stack.rb +0 -266
  79. data/lib/aws/cloud_formation/stack_collection.rb +0 -232
  80. data/lib/aws/cloud_formation/stack_event.rb +0 -73
  81. data/lib/aws/cloud_formation/stack_event_collection.rb +0 -47
  82. data/lib/aws/cloud_formation/stack_options.rb +0 -72
  83. data/lib/aws/cloud_formation/stack_output.rb +0 -53
  84. data/lib/aws/cloud_formation/stack_resource.rb +0 -117
  85. data/lib/aws/cloud_formation/stack_resource_collection.rb +0 -83
  86. data/lib/aws/cloud_formation/stack_resource_summary_collection.rb +0 -64
  87. data/lib/aws/cloud_formation/stack_summary_collection.rb +0 -123
  88. data/lib/aws/cloud_front.rb +0 -72
  89. data/lib/aws/cloud_front/client.rb +0 -45
  90. data/lib/aws/cloud_front/config.rb +0 -18
  91. data/lib/aws/cloud_front/errors.rb +0 -22
  92. data/lib/aws/cloud_search.rb +0 -73
  93. data/lib/aws/cloud_search/client.rb +0 -36
  94. data/lib/aws/cloud_search/config.rb +0 -18
  95. data/lib/aws/cloud_search/errors.rb +0 -22
  96. data/lib/aws/cloud_trail.rb +0 -72
  97. data/lib/aws/cloud_trail/client.rb +0 -35
  98. data/lib/aws/cloud_trail/config.rb +0 -18
  99. data/lib/aws/cloud_trail/errors.rb +0 -22
  100. data/lib/aws/cloud_watch.rb +0 -118
  101. data/lib/aws/cloud_watch/alarm.rb +0 -290
  102. data/lib/aws/cloud_watch/alarm_collection.rb +0 -153
  103. data/lib/aws/cloud_watch/alarm_history_item.rb +0 -50
  104. data/lib/aws/cloud_watch/alarm_history_item_collection.rb +0 -84
  105. data/lib/aws/cloud_watch/client.rb +0 -40
  106. data/lib/aws/cloud_watch/config.rb +0 -18
  107. data/lib/aws/cloud_watch/errors.rb +0 -22
  108. data/lib/aws/cloud_watch/metric.rb +0 -135
  109. data/lib/aws/cloud_watch/metric_alarm_collection.rb +0 -160
  110. data/lib/aws/cloud_watch/metric_collection.rb +0 -129
  111. data/lib/aws/cloud_watch/metric_statistics.rb +0 -69
  112. data/lib/aws/core.rb +0 -701
  113. data/lib/aws/core/async_handle.rb +0 -90
  114. data/lib/aws/core/cacheable.rb +0 -77
  115. data/lib/aws/core/client.rb +0 -778
  116. data/lib/aws/core/collection.rb +0 -263
  117. data/lib/aws/core/collection/simple.rb +0 -82
  118. data/lib/aws/core/collection/with_limit_and_next_token.rb +0 -71
  119. data/lib/aws/core/collection/with_next_token.rb +0 -97
  120. data/lib/aws/core/configuration.rb +0 -541
  121. data/lib/aws/core/credential_providers.rb +0 -506
  122. data/lib/aws/core/data.rb +0 -247
  123. data/lib/aws/core/deprecations.rb +0 -84
  124. data/lib/aws/core/endpoints.rb +0 -37
  125. data/lib/aws/core/http/connection_pool.rb +0 -349
  126. data/lib/aws/core/http/curb_handler.rb +0 -148
  127. data/lib/aws/core/http/handler.rb +0 -89
  128. data/lib/aws/core/http/net_http_handler.rb +0 -147
  129. data/lib/aws/core/http/patch.rb +0 -102
  130. data/lib/aws/core/http/request.rb +0 -249
  131. data/lib/aws/core/http/response.rb +0 -81
  132. data/lib/aws/core/indifferent_hash.rb +0 -88
  133. data/lib/aws/core/inflection.rb +0 -56
  134. data/lib/aws/core/json_client.rb +0 -47
  135. data/lib/aws/core/json_parser.rb +0 -76
  136. data/lib/aws/core/json_request_builder.rb +0 -35
  137. data/lib/aws/core/json_response_parser.rb +0 -79
  138. data/lib/aws/core/lazy_error_classes.rb +0 -90
  139. data/lib/aws/core/log_formatter.rb +0 -428
  140. data/lib/aws/core/managed_file.rb +0 -32
  141. data/lib/aws/core/meta_utils.rb +0 -45
  142. data/lib/aws/core/model.rb +0 -57
  143. data/lib/aws/core/naming.rb +0 -30
  144. data/lib/aws/core/option_grammar.rb +0 -738
  145. data/lib/aws/core/options/json_serializer.rb +0 -82
  146. data/lib/aws/core/options/validator.rb +0 -155
  147. data/lib/aws/core/options/xml_serializer.rb +0 -118
  148. data/lib/aws/core/page_result.rb +0 -75
  149. data/lib/aws/core/policy.rb +0 -942
  150. data/lib/aws/core/query_client.rb +0 -41
  151. data/lib/aws/core/query_error_parser.rb +0 -24
  152. data/lib/aws/core/query_request_builder.rb +0 -47
  153. data/lib/aws/core/query_response_parser.rb +0 -35
  154. data/lib/aws/core/region.rb +0 -85
  155. data/lib/aws/core/region_collection.rb +0 -80
  156. data/lib/aws/core/resource.rb +0 -413
  157. data/lib/aws/core/resource_cache.rb +0 -40
  158. data/lib/aws/core/response.rb +0 -211
  159. data/lib/aws/core/response_cache.rb +0 -50
  160. data/lib/aws/core/rest_error_parser.rb +0 -24
  161. data/lib/aws/core/rest_json_client.rb +0 -40
  162. data/lib/aws/core/rest_request_builder.rb +0 -154
  163. data/lib/aws/core/rest_response_parser.rb +0 -66
  164. data/lib/aws/core/rest_xml_client.rb +0 -47
  165. data/lib/aws/core/service_interface.rb +0 -83
  166. data/lib/aws/core/signers/base.rb +0 -46
  167. data/lib/aws/core/signers/cloud_front.rb +0 -56
  168. data/lib/aws/core/signers/s3.rb +0 -159
  169. data/lib/aws/core/signers/version_2.rb +0 -72
  170. data/lib/aws/core/signers/version_3.rb +0 -86
  171. data/lib/aws/core/signers/version_3_https.rb +0 -61
  172. data/lib/aws/core/signers/version_4.rb +0 -228
  173. data/lib/aws/core/signers/version_4/chunk_signed_stream.rb +0 -191
  174. data/lib/aws/core/uri_escape.rb +0 -44
  175. data/lib/aws/core/xml/frame.rb +0 -244
  176. data/lib/aws/core/xml/frame_stack.rb +0 -85
  177. data/lib/aws/core/xml/grammar.rb +0 -306
  178. data/lib/aws/core/xml/parser.rb +0 -70
  179. data/lib/aws/core/xml/root_frame.rb +0 -65
  180. data/lib/aws/core/xml/sax_handlers/libxml.rb +0 -47
  181. data/lib/aws/core/xml/sax_handlers/nokogiri.rb +0 -56
  182. data/lib/aws/core/xml/sax_handlers/ox.rb +0 -41
  183. data/lib/aws/core/xml/sax_handlers/rexml.rb +0 -47
  184. data/lib/aws/core/xml/stub.rb +0 -123
  185. data/lib/aws/data_pipeline.rb +0 -72
  186. data/lib/aws/data_pipeline/client.rb +0 -36
  187. data/lib/aws/data_pipeline/config.rb +0 -18
  188. data/lib/aws/data_pipeline/errors.rb +0 -20
  189. data/lib/aws/direct_connect.rb +0 -73
  190. data/lib/aws/direct_connect/client.rb +0 -36
  191. data/lib/aws/direct_connect/config.rb +0 -18
  192. data/lib/aws/direct_connect/errors.rb +0 -22
  193. data/lib/aws/dynamo_db.rb +0 -214
  194. data/lib/aws/dynamo_db/attribute_collection.rb +0 -456
  195. data/lib/aws/dynamo_db/batch_get.rb +0 -213
  196. data/lib/aws/dynamo_db/batch_write.rb +0 -252
  197. data/lib/aws/dynamo_db/binary.rb +0 -35
  198. data/lib/aws/dynamo_db/client.rb +0 -129
  199. data/lib/aws/dynamo_db/client/v20111205.rb +0 -1266
  200. data/lib/aws/dynamo_db/client/v20120810.rb +0 -1409
  201. data/lib/aws/dynamo_db/client_v2.rb +0 -44
  202. data/lib/aws/dynamo_db/config.rb +0 -24
  203. data/lib/aws/dynamo_db/errors.rb +0 -20
  204. data/lib/aws/dynamo_db/expectations.rb +0 -40
  205. data/lib/aws/dynamo_db/item.rb +0 -133
  206. data/lib/aws/dynamo_db/item_collection.rb +0 -856
  207. data/lib/aws/dynamo_db/item_data.rb +0 -31
  208. data/lib/aws/dynamo_db/keys.rb +0 -41
  209. data/lib/aws/dynamo_db/primary_key_element.rb +0 -48
  210. data/lib/aws/dynamo_db/resource.rb +0 -33
  211. data/lib/aws/dynamo_db/table.rb +0 -496
  212. data/lib/aws/dynamo_db/table_collection.rb +0 -165
  213. data/lib/aws/dynamo_db/types.rb +0 -111
  214. data/lib/aws/ec2.rb +0 -428
  215. data/lib/aws/ec2/attachment.rb +0 -135
  216. data/lib/aws/ec2/attachment_collection.rb +0 -54
  217. data/lib/aws/ec2/availability_zone.rb +0 -86
  218. data/lib/aws/ec2/availability_zone_collection.rb +0 -43
  219. data/lib/aws/ec2/block_device_mappings.rb +0 -53
  220. data/lib/aws/ec2/client.rb +0 -101
  221. data/lib/aws/ec2/collection.rb +0 -36
  222. data/lib/aws/ec2/config.rb +0 -30
  223. data/lib/aws/ec2/customer_gateway.rb +0 -90
  224. data/lib/aws/ec2/customer_gateway_collection.rb +0 -73
  225. data/lib/aws/ec2/dhcp_options.rb +0 -106
  226. data/lib/aws/ec2/dhcp_options_collection.rb +0 -87
  227. data/lib/aws/ec2/elastic_ip.rb +0 -209
  228. data/lib/aws/ec2/elastic_ip_collection.rb +0 -93
  229. data/lib/aws/ec2/errors.rb +0 -32
  230. data/lib/aws/ec2/export_task.rb +0 -120
  231. data/lib/aws/ec2/export_task_collection.rb +0 -67
  232. data/lib/aws/ec2/filtered_collection.rb +0 -87
  233. data/lib/aws/ec2/has_permissions.rb +0 -44
  234. data/lib/aws/ec2/image.rb +0 -270
  235. data/lib/aws/ec2/image_collection.rb +0 -220
  236. data/lib/aws/ec2/instance.rb +0 -803
  237. data/lib/aws/ec2/instance_collection.rb +0 -391
  238. data/lib/aws/ec2/internet_gateway.rb +0 -122
  239. data/lib/aws/ec2/internet_gateway/attachment.rb +0 -78
  240. data/lib/aws/ec2/internet_gateway_collection.rb +0 -54
  241. data/lib/aws/ec2/key_pair.rb +0 -82
  242. data/lib/aws/ec2/key_pair_collection.rb +0 -99
  243. data/lib/aws/ec2/network_acl.rb +0 -256
  244. data/lib/aws/ec2/network_acl/association.rb +0 -56
  245. data/lib/aws/ec2/network_acl/entry.rb +0 -147
  246. data/lib/aws/ec2/network_acl_collection.rb +0 -64
  247. data/lib/aws/ec2/network_interface.rb +0 -237
  248. data/lib/aws/ec2/network_interface/attachment.rb +0 -100
  249. data/lib/aws/ec2/network_interface_collection.rb +0 -103
  250. data/lib/aws/ec2/permission_collection.rb +0 -174
  251. data/lib/aws/ec2/region.rb +0 -106
  252. data/lib/aws/ec2/region_collection.rb +0 -51
  253. data/lib/aws/ec2/reserved_instances.rb +0 -56
  254. data/lib/aws/ec2/reserved_instances_collection.rb +0 -40
  255. data/lib/aws/ec2/reserved_instances_offering.rb +0 -60
  256. data/lib/aws/ec2/reserved_instances_offering_collection.rb +0 -45
  257. data/lib/aws/ec2/resource.rb +0 -161
  258. data/lib/aws/ec2/resource_tag_collection.rb +0 -211
  259. data/lib/aws/ec2/route_table.rb +0 -205
  260. data/lib/aws/ec2/route_table/association.rb +0 -119
  261. data/lib/aws/ec2/route_table/route.rb +0 -119
  262. data/lib/aws/ec2/route_table_collection.rb +0 -72
  263. data/lib/aws/ec2/security_group.rb +0 -482
  264. data/lib/aws/ec2/security_group/ip_permission.rb +0 -135
  265. data/lib/aws/ec2/security_group/ip_permission_collection.rb +0 -82
  266. data/lib/aws/ec2/security_group_collection.rb +0 -133
  267. data/lib/aws/ec2/snapshot.rb +0 -143
  268. data/lib/aws/ec2/snapshot_collection.rb +0 -131
  269. data/lib/aws/ec2/subnet.rb +0 -161
  270. data/lib/aws/ec2/subnet_collection.rb +0 -115
  271. data/lib/aws/ec2/tag.rb +0 -81
  272. data/lib/aws/ec2/tag_collection.rb +0 -107
  273. data/lib/aws/ec2/tagged_collection.rb +0 -53
  274. data/lib/aws/ec2/tagged_item.rb +0 -85
  275. data/lib/aws/ec2/volume.rb +0 -174
  276. data/lib/aws/ec2/volume_collection.rb +0 -98
  277. data/lib/aws/ec2/vpc.rb +0 -166
  278. data/lib/aws/ec2/vpc_collection.rb +0 -70
  279. data/lib/aws/ec2/vpn_connection.rb +0 -99
  280. data/lib/aws/ec2/vpn_connection/telemetry.rb +0 -49
  281. data/lib/aws/ec2/vpn_connection_collection.rb +0 -96
  282. data/lib/aws/ec2/vpn_gateway.rb +0 -123
  283. data/lib/aws/ec2/vpn_gateway/attachment.rb +0 -45
  284. data/lib/aws/ec2/vpn_gateway_collection.rb +0 -77
  285. data/lib/aws/elastic_beanstalk.rb +0 -49
  286. data/lib/aws/elastic_beanstalk/client.rb +0 -36
  287. data/lib/aws/elastic_beanstalk/config.rb +0 -18
  288. data/lib/aws/elastic_beanstalk/errors.rb +0 -22
  289. data/lib/aws/elastic_transcoder.rb +0 -29
  290. data/lib/aws/elastic_transcoder/client.rb +0 -48
  291. data/lib/aws/elastic_transcoder/config.rb +0 -18
  292. data/lib/aws/elastic_transcoder/errors.rb +0 -23
  293. data/lib/aws/elasticache.rb +0 -49
  294. data/lib/aws/elasticache/client.rb +0 -35
  295. data/lib/aws/elasticache/config.rb +0 -18
  296. data/lib/aws/elasticache/errors.rb +0 -22
  297. data/lib/aws/elb.rb +0 -66
  298. data/lib/aws/elb/availability_zone_collection.rb +0 -138
  299. data/lib/aws/elb/backend_server_policy_collection.rb +0 -139
  300. data/lib/aws/elb/client.rb +0 -35
  301. data/lib/aws/elb/config.rb +0 -18
  302. data/lib/aws/elb/errors.rb +0 -26
  303. data/lib/aws/elb/instance_collection.rb +0 -168
  304. data/lib/aws/elb/listener.rb +0 -190
  305. data/lib/aws/elb/listener_collection.rb +0 -113
  306. data/lib/aws/elb/listener_opts.rb +0 -45
  307. data/lib/aws/elb/load_balancer.rb +0 -280
  308. data/lib/aws/elb/load_balancer_collection.rb +0 -146
  309. data/lib/aws/elb/load_balancer_policy.rb +0 -93
  310. data/lib/aws/elb/load_balancer_policy_collection.rb +0 -208
  311. data/lib/aws/emr.rb +0 -87
  312. data/lib/aws/emr/client.rb +0 -35
  313. data/lib/aws/emr/config.rb +0 -18
  314. data/lib/aws/emr/errors.rb +0 -22
  315. data/lib/aws/emr/instance_group.rb +0 -138
  316. data/lib/aws/emr/instance_group_collection.rb +0 -82
  317. data/lib/aws/emr/job_flow.rb +0 -307
  318. data/lib/aws/emr/job_flow_collection.rb +0 -185
  319. data/lib/aws/errors.rb +0 -162
  320. data/lib/aws/glacier.rb +0 -79
  321. data/lib/aws/glacier/archive.rb +0 -56
  322. data/lib/aws/glacier/archive_collection.rb +0 -146
  323. data/lib/aws/glacier/client.rb +0 -49
  324. data/lib/aws/glacier/config.rb +0 -19
  325. data/lib/aws/glacier/errors.rb +0 -22
  326. data/lib/aws/glacier/resource.rb +0 -30
  327. data/lib/aws/glacier/vault.rb +0 -145
  328. data/lib/aws/glacier/vault_collection.rb +0 -75
  329. data/lib/aws/glacier/vault_notification_configuration.rb +0 -29
  330. data/lib/aws/iam.rb +0 -408
  331. data/lib/aws/iam/access_key.rb +0 -185
  332. data/lib/aws/iam/access_key_collection.rb +0 -128
  333. data/lib/aws/iam/account_alias_collection.rb +0 -79
  334. data/lib/aws/iam/client.rb +0 -49
  335. data/lib/aws/iam/collection.rb +0 -83
  336. data/lib/aws/iam/config.rb +0 -18
  337. data/lib/aws/iam/errors.rb +0 -22
  338. data/lib/aws/iam/group.rb +0 -111
  339. data/lib/aws/iam/group_collection.rb +0 -132
  340. data/lib/aws/iam/group_policy_collection.rb +0 -47
  341. data/lib/aws/iam/group_user_collection.rb +0 -84
  342. data/lib/aws/iam/login_profile.rb +0 -99
  343. data/lib/aws/iam/mfa_device.rb +0 -52
  344. data/lib/aws/iam/mfa_device_collection.rb +0 -127
  345. data/lib/aws/iam/policy.rb +0 -46
  346. data/lib/aws/iam/policy_collection.rb +0 -188
  347. data/lib/aws/iam/resource.rb +0 -62
  348. data/lib/aws/iam/server_certificate.rb +0 -141
  349. data/lib/aws/iam/server_certificate_collection.rb +0 -138
  350. data/lib/aws/iam/signing_certificate.rb +0 -174
  351. data/lib/aws/iam/signing_certificate_collection.rb +0 -131
  352. data/lib/aws/iam/user.rb +0 -200
  353. data/lib/aws/iam/user_collection.rb +0 -133
  354. data/lib/aws/iam/user_group_collection.rb +0 -98
  355. data/lib/aws/iam/user_policy.rb +0 -90
  356. data/lib/aws/iam/user_policy_collection.rb +0 -45
  357. data/lib/aws/iam/virtual_mfa_device.rb +0 -139
  358. data/lib/aws/iam/virtual_mfa_device_collection.rb +0 -73
  359. data/lib/aws/import_export.rb +0 -73
  360. data/lib/aws/import_export/client.rb +0 -35
  361. data/lib/aws/import_export/config.rb +0 -19
  362. data/lib/aws/import_export/errors.rb +0 -22
  363. data/lib/aws/kinesis.rb +0 -53
  364. data/lib/aws/kinesis/client.rb +0 -35
  365. data/lib/aws/kinesis/config.rb +0 -18
  366. data/lib/aws/kinesis/errors.rb +0 -20
  367. data/lib/aws/ops_works.rb +0 -29
  368. data/lib/aws/ops_works/client.rb +0 -35
  369. data/lib/aws/ops_works/config.rb +0 -18
  370. data/lib/aws/ops_works/errors.rb +0 -20
  371. data/lib/aws/rails.rb +0 -195
  372. data/lib/aws/rds.rb +0 -70
  373. data/lib/aws/rds/client.rb +0 -42
  374. data/lib/aws/rds/config.rb +0 -18
  375. data/lib/aws/rds/db_instance.rb +0 -216
  376. data/lib/aws/rds/db_instance_collection.rb +0 -75
  377. data/lib/aws/rds/db_snapshot.rb +0 -163
  378. data/lib/aws/rds/db_snapshot_collection.rb +0 -89
  379. data/lib/aws/rds/errors.rb +0 -22
  380. data/lib/aws/record.rb +0 -139
  381. data/lib/aws/record/abstract_base.rb +0 -690
  382. data/lib/aws/record/attributes.rb +0 -388
  383. data/lib/aws/record/conversion.rb +0 -38
  384. data/lib/aws/record/dirty_tracking.rb +0 -287
  385. data/lib/aws/record/errors.rb +0 -143
  386. data/lib/aws/record/exceptions.rb +0 -51
  387. data/lib/aws/record/hash_model.rb +0 -204
  388. data/lib/aws/record/hash_model/attributes.rb +0 -195
  389. data/lib/aws/record/hash_model/finder_methods.rb +0 -172
  390. data/lib/aws/record/hash_model/scope.rb +0 -108
  391. data/lib/aws/record/model.rb +0 -453
  392. data/lib/aws/record/model/attributes.rb +0 -377
  393. data/lib/aws/record/model/finder_methods.rb +0 -232
  394. data/lib/aws/record/model/scope.rb +0 -212
  395. data/lib/aws/record/naming.rb +0 -31
  396. data/lib/aws/record/scope.rb +0 -203
  397. data/lib/aws/record/validations.rb +0 -694
  398. data/lib/aws/record/validator.rb +0 -246
  399. data/lib/aws/record/validators/acceptance.rb +0 -49
  400. data/lib/aws/record/validators/block.rb +0 -36
  401. data/lib/aws/record/validators/confirmation.rb +0 -41
  402. data/lib/aws/record/validators/count.rb +0 -106
  403. data/lib/aws/record/validators/exclusion.rb +0 -41
  404. data/lib/aws/record/validators/format.rb +0 -55
  405. data/lib/aws/record/validators/inclusion.rb +0 -54
  406. data/lib/aws/record/validators/length.rb +0 -105
  407. data/lib/aws/record/validators/method.rb +0 -31
  408. data/lib/aws/record/validators/numericality.rb +0 -136
  409. data/lib/aws/record/validators/presence.rb +0 -43
  410. data/lib/aws/redshift.rb +0 -51
  411. data/lib/aws/redshift/client.rb +0 -35
  412. data/lib/aws/redshift/config.rb +0 -18
  413. data/lib/aws/redshift/errors.rb +0 -22
  414. data/lib/aws/route_53.rb +0 -86
  415. data/lib/aws/route_53/change_batch.rb +0 -161
  416. data/lib/aws/route_53/change_info.rb +0 -72
  417. data/lib/aws/route_53/client.rb +0 -35
  418. data/lib/aws/route_53/config.rb +0 -18
  419. data/lib/aws/route_53/errors.rb +0 -22
  420. data/lib/aws/route_53/hosted_zone.rb +0 -111
  421. data/lib/aws/route_53/hosted_zone_collection.rb +0 -100
  422. data/lib/aws/route_53/resource_record_set.rb +0 -251
  423. data/lib/aws/route_53/resource_record_set_collection.rb +0 -110
  424. data/lib/aws/s3.rb +0 -156
  425. data/lib/aws/s3/access_control_list.rb +0 -265
  426. data/lib/aws/s3/acl_object.rb +0 -264
  427. data/lib/aws/s3/acl_options.rb +0 -204
  428. data/lib/aws/s3/bucket.rb +0 -742
  429. data/lib/aws/s3/bucket_collection.rb +0 -162
  430. data/lib/aws/s3/bucket_lifecycle_configuration.rb +0 -457
  431. data/lib/aws/s3/bucket_tag_collection.rb +0 -111
  432. data/lib/aws/s3/bucket_version_collection.rb +0 -79
  433. data/lib/aws/s3/cipher_io.rb +0 -120
  434. data/lib/aws/s3/client.rb +0 -1919
  435. data/lib/aws/s3/client/xml.rb +0 -259
  436. data/lib/aws/s3/config.rb +0 -48
  437. data/lib/aws/s3/cors_rule.rb +0 -108
  438. data/lib/aws/s3/cors_rule_collection.rb +0 -194
  439. data/lib/aws/s3/data_options.rb +0 -191
  440. data/lib/aws/s3/encryption_utils.rb +0 -146
  441. data/lib/aws/s3/errors.rb +0 -94
  442. data/lib/aws/s3/multipart_upload.rb +0 -351
  443. data/lib/aws/s3/multipart_upload_collection.rb +0 -76
  444. data/lib/aws/s3/object_collection.rb +0 -353
  445. data/lib/aws/s3/object_metadata.rb +0 -103
  446. data/lib/aws/s3/object_upload_collection.rb +0 -77
  447. data/lib/aws/s3/object_version.rb +0 -154
  448. data/lib/aws/s3/object_version_collection.rb +0 -89
  449. data/lib/aws/s3/paginated_collection.rb +0 -75
  450. data/lib/aws/s3/policy.rb +0 -74
  451. data/lib/aws/s3/prefix_and_delimiter_collection.rb +0 -47
  452. data/lib/aws/s3/prefixed_collection.rb +0 -85
  453. data/lib/aws/s3/presign_v4.rb +0 -127
  454. data/lib/aws/s3/presigned_post.rb +0 -554
  455. data/lib/aws/s3/request.rb +0 -62
  456. data/lib/aws/s3/s3_object.rb +0 -1781
  457. data/lib/aws/s3/tree.rb +0 -116
  458. data/lib/aws/s3/tree/branch_node.rb +0 -68
  459. data/lib/aws/s3/tree/child_collection.rb +0 -104
  460. data/lib/aws/s3/tree/leaf_node.rb +0 -94
  461. data/lib/aws/s3/tree/node.rb +0 -22
  462. data/lib/aws/s3/tree/parent.rb +0 -87
  463. data/lib/aws/s3/uploaded_part.rb +0 -82
  464. data/lib/aws/s3/uploaded_part_collection.rb +0 -84
  465. data/lib/aws/s3/website_configuration.rb +0 -102
  466. data/lib/aws/simple_db.rb +0 -218
  467. data/lib/aws/simple_db/attribute.rb +0 -156
  468. data/lib/aws/simple_db/attribute_collection.rb +0 -240
  469. data/lib/aws/simple_db/client.rb +0 -67
  470. data/lib/aws/simple_db/config.rb +0 -20
  471. data/lib/aws/simple_db/consistent_read_option.rb +0 -42
  472. data/lib/aws/simple_db/delete_attributes.rb +0 -62
  473. data/lib/aws/simple_db/domain.rb +0 -123
  474. data/lib/aws/simple_db/domain_collection.rb +0 -86
  475. data/lib/aws/simple_db/domain_metadata.rb +0 -110
  476. data/lib/aws/simple_db/errors.rb +0 -55
  477. data/lib/aws/simple_db/expect_condition_option.rb +0 -45
  478. data/lib/aws/simple_db/item.rb +0 -93
  479. data/lib/aws/simple_db/item_collection.rb +0 -654
  480. data/lib/aws/simple_db/item_data.rb +0 -73
  481. data/lib/aws/simple_db/put_attributes.rb +0 -60
  482. data/lib/aws/simple_email_service.rb +0 -430
  483. data/lib/aws/simple_email_service/client.rb +0 -37
  484. data/lib/aws/simple_email_service/config.rb +0 -18
  485. data/lib/aws/simple_email_service/email_address_collection.rb +0 -69
  486. data/lib/aws/simple_email_service/errors.rb +0 -22
  487. data/lib/aws/simple_email_service/identity.rb +0 -209
  488. data/lib/aws/simple_email_service/identity_collection.rb +0 -81
  489. data/lib/aws/simple_email_service/quotas.rb +0 -66
  490. data/lib/aws/simple_workflow.rb +0 -227
  491. data/lib/aws/simple_workflow/activity_task.rb +0 -178
  492. data/lib/aws/simple_workflow/activity_task_collection.rb +0 -123
  493. data/lib/aws/simple_workflow/activity_type.rb +0 -131
  494. data/lib/aws/simple_workflow/activity_type_collection.rb +0 -93
  495. data/lib/aws/simple_workflow/client.rb +0 -69
  496. data/lib/aws/simple_workflow/config.rb +0 -18
  497. data/lib/aws/simple_workflow/count.rb +0 -49
  498. data/lib/aws/simple_workflow/decision_task.rb +0 -603
  499. data/lib/aws/simple_workflow/decision_task_collection.rb +0 -225
  500. data/lib/aws/simple_workflow/domain.rb +0 -122
  501. data/lib/aws/simple_workflow/domain_collection.rb +0 -169
  502. data/lib/aws/simple_workflow/errors.rb +0 -20
  503. data/lib/aws/simple_workflow/history_event.rb +0 -276
  504. data/lib/aws/simple_workflow/history_event_collection.rb +0 -76
  505. data/lib/aws/simple_workflow/option_formatters.rb +0 -82
  506. data/lib/aws/simple_workflow/resource.rb +0 -94
  507. data/lib/aws/simple_workflow/type.rb +0 -89
  508. data/lib/aws/simple_workflow/type_collection.rb +0 -140
  509. data/lib/aws/simple_workflow/workflow_execution.rb +0 -384
  510. data/lib/aws/simple_workflow/workflow_execution_collection.rb +0 -617
  511. data/lib/aws/simple_workflow/workflow_type.rb +0 -179
  512. data/lib/aws/simple_workflow/workflow_type_collection.rb +0 -91
  513. data/lib/aws/sns.rb +0 -76
  514. data/lib/aws/sns/client.rb +0 -35
  515. data/lib/aws/sns/config.rb +0 -18
  516. data/lib/aws/sns/errors.rb +0 -22
  517. data/lib/aws/sns/has_delivery_policy.rb +0 -68
  518. data/lib/aws/sns/message.rb +0 -194
  519. data/lib/aws/sns/originators/from_auto_scaling.rb +0 -68
  520. data/lib/aws/sns/policy.rb +0 -47
  521. data/lib/aws/sns/subscription.rb +0 -165
  522. data/lib/aws/sns/subscription_collection.rb +0 -78
  523. data/lib/aws/sns/topic.rb +0 -403
  524. data/lib/aws/sns/topic_collection.rb +0 -62
  525. data/lib/aws/sns/topic_subscription_collection.rb +0 -54
  526. data/lib/aws/sqs.rb +0 -80
  527. data/lib/aws/sqs/client.rb +0 -53
  528. data/lib/aws/sqs/config.rb +0 -20
  529. data/lib/aws/sqs/errors.rb +0 -125
  530. data/lib/aws/sqs/policy.rb +0 -48
  531. data/lib/aws/sqs/queue.rb +0 -843
  532. data/lib/aws/sqs/queue_collection.rb +0 -182
  533. data/lib/aws/sqs/received_message.rb +0 -182
  534. data/lib/aws/sqs/received_sns_message.rb +0 -116
  535. data/lib/aws/storage_gateway.rb +0 -72
  536. data/lib/aws/storage_gateway/client.rb +0 -42
  537. data/lib/aws/storage_gateway/config.rb +0 -18
  538. data/lib/aws/storage_gateway/errors.rb +0 -22
  539. data/lib/aws/sts.rb +0 -164
  540. data/lib/aws/sts/client.rb +0 -46
  541. data/lib/aws/sts/config.rb +0 -18
  542. data/lib/aws/sts/errors.rb +0 -22
  543. data/lib/aws/sts/federated_session.rb +0 -56
  544. data/lib/aws/sts/policy.rb +0 -30
  545. data/lib/aws/sts/session.rb +0 -48
  546. data/lib/aws/support.rb +0 -29
  547. data/lib/aws/support/client.rb +0 -35
  548. data/lib/aws/support/config.rb +0 -18
  549. data/lib/aws/support/errors.rb +0 -20
  550. data/lib/aws/version.rb +0 -17
  551. data/rails/init.rb +0 -15
@@ -1,803 +0,0 @@
1
- # Copyright 2011-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License"). You
4
- # may not use this file except in compliance with the License. A copy of
5
- # the License is located at
6
- #
7
- # http://aws.amazon.com/apache2.0/
8
- #
9
- # or in the "license" file accompanying this file. This file is
10
- # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
11
- # ANY KIND, either express or implied. See the License for the specific
12
- # language governing permissions and limitations under the License.
13
-
14
- require 'base64'
15
-
16
- module AWS
17
- class EC2
18
-
19
- # Represents an EC2 instance.
20
- #
21
- # @attr [String] user_data Arbitrary metadata that is available
22
- # to the instance while it is running. This interface handles
23
- # the details of encoding the user data for transmission; you
24
- # should set the user data exactly as you want it to be made
25
- # available to the instance.
26
- #
27
- # The instance must be in a stopped state to change user data;
28
- # for example:
29
- #
30
- # i.user_data # => "HELLO"
31
- # i.status # => :running
32
- # i.user_data = "GOODBYE" # raises an exception
33
- # i.stop; sleep 1 until i.status == :stopped
34
- # i.user_data = "GOODBYE" # => "GOODBYE"
35
- #
36
- # @attr [String] instance_type The instance type,
37
- # e.g. "m1.small". The instance must be in a stopped state to
38
- # change the instance type.
39
- #
40
- # @attr [Boolean] ebs_optimized The instance must be in a stopped state to
41
- # change the ebs_optimized state.
42
- #
43
- # @attr [Boolean] api_termination_disabled True if the instance
44
- # cannot be terminated using the {#terminate} method. This
45
- # attribute can be changed at any time.
46
- #
47
- # @attr [String] instance_initiated_shutdown_behavior Valid
48
- # values are:
49
- #
50
- # * "stop"] When the instance shuts down, it will go into a
51
- # "stopped" state.
52
- # * "terminate"] When the instance shuts down, it will be
53
- # terminated.
54
- #
55
- # @attr [Boolean] source_dest_check
56
- #
57
- # @attr_reader [String] image_id Image ID of the AMI used to
58
- # launch the instance.
59
- #
60
- # @attr_reader [String] key_name The name of the key pair with
61
- # which this instance was associated at launch.
62
- #
63
- # @attr [String] kernel_id The ID of the kernel that the image
64
- # currently uses. The instance must be in a stopped state to
65
- # change this attribute.
66
- #
67
- # @attr [String] ramdisk_id The ID of the RAM disk that the
68
- # image currently uses. The instance must be in a stopped
69
- # state to change this attribute.
70
- #
71
- # @attr_reader [Symbol] root_device_type The root device type
72
- # used by the AMI. The AMI can use an Amazon EBS or instance
73
- # store root device. Valid values:
74
- #
75
- # * `:ebs`
76
- # * `:instance_store`
77
- #
78
- # @attr_reader [String] root_device_name The name of the root
79
- # device.
80
- #
81
- # @attr_reader [String] private_dns_name The DNS name of the
82
- # instance within the EC2 network.
83
- #
84
- # @attr_reader [String] dns_name The DNS name of the instance on
85
- # the internet.
86
- #
87
- # @attr_reader [Integer] ami_launch_index The AMI launch index,
88
- # which can be used to find this instance within the launch
89
- # group.
90
- #
91
- # @attr_reader [String] private_ip_address The private IP
92
- # address assigned to the instance.
93
- #
94
- # @attr_reader [String] ip_address The IP address of the
95
- # instance.
96
- #
97
- # @attr_reader [Symbol] status The instance status.
98
- # Valid values are:
99
- #
100
- # * `:pending`
101
- # * `:running`
102
- # * `:shutting_down`
103
- # * `:terminated`
104
- # * `:stopping`
105
- # * `:stopped`
106
- #
107
- # @attr_reader [Integer] status_code The numeric instance status code.
108
- #
109
- # @attr_reader [Symbol] architecture The architecture of the image.
110
- #
111
- # @attr_reader [Symbol] virtualization_type The instance's
112
- # virtualization type. Valid values:
113
- #
114
- # * `:paravirtual`
115
- # * `:hvm`
116
- #
117
- # @attr_reader [String] reservation_id The ID of the reservation
118
- # in which this instance was launched.
119
- #
120
- # @attr_reader [String] requester_id ID of the requester that
121
- # launched the instance on your behalf (e.g., AWS Management
122
- # Console, Auto Scaling).
123
- #
124
- # @attr_reader [String] owner_id ID of the AWS account that owns
125
- # the reservation in which the instance was launched.
126
- #
127
- # @attr_reader [Symbol] monitoring The status of CloudWatch
128
- # monitoring for the instance. Valid values:
129
- #
130
- # * `:enabled`
131
- # * `:disabled`
132
- # * `:pending`
133
- #
134
- # @attr_reader [String] state_transition_reason A string
135
- # describing the reason for the last state transition.
136
- #
137
- # @attr_reader [Time] launch_time The time at which the instance
138
- # was launched.
139
- #
140
- # @attr_reader [String] platform A string describing the
141
- # platform of the image (e.g. "windows").
142
- #
143
- # @attr_reader [Symbol] hypervisor The instance's hypervisor
144
- # type. Valid values:
145
- #
146
- # * `:ovm`
147
- # * `:xen`
148
- #
149
- # @attr_reader [String] client_token Idempotency token you
150
- # provided when you launched the instance.
151
- #
152
- # @attr_reader [String,nil] vpc_id Instances launched in a VPC have
153
- # a vpc_id. Normal EC2 instances return nil.
154
- #
155
- # @attr_reader [String,nil] subnet_id Instances launched in a VPC have
156
- # a subnet_id. Normal EC2 instances return nil.
157
- #
158
- # @attr_reader [String,nil] iam_instance_profile_id
159
- #
160
- # @attr_reader [String,nil] iam_instance_profile_arn
161
- #
162
- class Instance < Resource
163
-
164
- include TaggedItem
165
-
166
- # Creates an object that represents the instance with the
167
- # given ID. It's usually easier to get an instance of this
168
- # class by calling {InstanceCollection#[]} or
169
- # {InstanceCollection#each}.
170
- def initialize(instance_id, opts = {})
171
- super
172
- @id = instance_id
173
- end
174
-
175
- # @return [String] Returns the instance id.
176
- attr_reader :id
177
- alias_method :instance_id, :id
178
-
179
- # @api private
180
- def self.reservation_attributes
181
- @reservation_attributes ||= {}
182
- end
183
-
184
- # @api private
185
- def self.reservation_attribute name, options = {}, &block
186
- attr = attribute(name, options, &block)
187
- reservation_attributes[attr.name] = attr
188
- end
189
-
190
- # @api private
191
- def self.describe_call_attributes
192
- @describe_call_attributes ||= {}
193
- end
194
-
195
- # @api private
196
- def self.mutable_describe_attributes
197
- @mutable_describe_attributes ||= {}
198
- end
199
-
200
- # @api private
201
- def self.describe_call_attribute name, options = {}, &block
202
- attr = attribute(name, options, &block)
203
- describe_call_attributes[attr.name] = attr
204
- end
205
-
206
- # @api private
207
- def self.mutable_describe_call_attribute name, options = {}, &block
208
- attr = mutable_attribute(name, options, &block)
209
- describe_call_attributes[attr.name] = attr
210
- end
211
-
212
- # @api private
213
- def self.mutable_describe_attribute name, options = {}, &block
214
- attr = mutable_attribute(name, options, &block)
215
- mutable_describe_attributes[attr.name] = attr
216
- end
217
-
218
- reservation_attribute :reservation_id, :static => true
219
-
220
- reservation_attribute :owner_id, :static => true
221
-
222
- reservation_attribute :requester_id, :static => true
223
-
224
- describe_call_attribute :private_dns_name
225
-
226
- describe_call_attribute :dns_name
227
-
228
- alias_method :public_dns_name, :dns_name
229
-
230
- describe_call_attribute :product_codes, :static => true
231
-
232
- describe_call_attribute :ami_launch_index, :static => true
233
-
234
- describe_call_attribute :monitoring do
235
- translates_output {|v| v.state.to_sym }
236
- end
237
-
238
- describe_call_attribute :private_ip_address
239
-
240
- describe_call_attribute :ip_address
241
-
242
- alias_method :public_ip_address, :ip_address
243
-
244
- describe_call_attribute :architecture, :to_sym => true, :static => true
245
-
246
- describe_call_attribute :root_device_type, :to_sym => true, :static => true
247
-
248
- describe_call_attribute :root_device_name, :static => true
249
-
250
- describe_call_attribute :block_device_mapping
251
-
252
- protected :block_device_mapping
253
-
254
- describe_call_attribute :instance_lifecycle, :to_sym => true
255
-
256
- describe_call_attribute :virtualization_type, :to_sym => true, :static => true
257
-
258
- describe_call_attribute :hypervisor, :to_sym => true, :static => true
259
-
260
- describe_call_attribute :placement, :static => true
261
-
262
- describe_call_attribute :state_transition_reason, :from => :reason
263
-
264
- describe_call_attribute :launch_time, :static => true
265
-
266
- describe_call_attribute :platform, :static => true
267
-
268
- describe_call_attribute :client_token
269
-
270
- describe_call_attribute :image_id
271
-
272
- describe_call_attribute :key_name, :static => true
273
-
274
- describe_call_attribute :vpc_id, :static => true
275
-
276
- describe_call_attribute :subnet_id, :static => true
277
-
278
- describe_call_attribute :iam_instance_profile_id,
279
- :from => :iam_instance_profile,
280
- :static => true do
281
- translates_output{|profile| profile[:id] }
282
- end
283
-
284
- describe_call_attribute :iam_instance_profile_arn,
285
- :from => :iam_instance_profile,
286
- :static => true do
287
- translates_output{|profile| profile[:arn] }
288
- end
289
-
290
- attribute :status do
291
- translates_output{|state| state.name.tr("-","_").to_sym }
292
- end
293
-
294
- attribute :status, :from => [:instance_state, :name], :to_sym => true
295
-
296
- attribute :status_code, :from => [:instance_state, :code]
297
-
298
- mutable_describe_call_attribute :instance_type
299
-
300
- mutable_describe_call_attribute :ebs_optimized
301
-
302
- mutable_describe_call_attribute :kernel_id, :set_as => :kernel
303
-
304
- mutable_describe_call_attribute :ramdisk_id, :set_as => :ramdisk
305
-
306
- mutable_describe_attribute :source_dest_check do
307
- translates_output{|bool| bool == "true" }
308
- end
309
-
310
- alias_method :source_dest_check?, :source_dest_check
311
-
312
- mutable_describe_call_attribute :group_set
313
-
314
- describe_call_attribute :network_interface_set
315
-
316
- mutable_describe_attribute(:user_data) do
317
- translates_output {|v| Base64.decode64(v) if v }
318
- translates_input {|v| Base64.encode64(v).strip }
319
- end
320
-
321
- mutable_describe_attribute :api_termination_disabled?,
322
- :from => :disable_api_termination
323
-
324
- mutable_describe_attribute :instance_initiated_shutdown_behavior
325
-
326
- provider(:describe_instances) do |provider|
327
- provider.find {|resp| resp.reservation_index[id] }
328
- provider.provides *reservation_attributes.keys
329
- end
330
-
331
- provider(:describe_instances) do |provider|
332
- provider.find {|resp| resp.instance_index[id] }
333
- provider.provides *describe_call_attributes.keys
334
- provider.provides :status
335
- provider.provides :status_code
336
- end
337
-
338
- provider(:run_instances) do |provider|
339
- provider.find {|resp| resp.instances_set.find{|i| i.instance_id == id } }
340
- provider.provides *describe_call_attributes.keys
341
- provider.provides :status
342
- provider.provides :status_code
343
- end
344
-
345
- provider(:run_instances) do |provider|
346
- provider.find {|resp| resp if resp.instances_set.find{|i| i.instance_id == id } }
347
- provider.provides *reservation_attributes.keys
348
- end
349
-
350
- # These are the few attributes that are only returned by
351
- # :desribe_instance_attribute and are *NOT* returned by
352
- # :describe_instances. To make matters worse, only one of
353
- # them is returned per :describe_instance_attribute call.
354
- mutable_describe_attributes.values.each do |attr|
355
-
356
- attr_opt_name = Core::Inflection.class_name(attr.from.to_s)
357
- attr_opt_name = attr_opt_name[0,1].downcase + attr_opt_name[1..-1]
358
-
359
- provider(:describe_instance_attribute) do |provider|
360
- provider.find do |resp|
361
- if
362
- resp.request_options[:instance_id] == id and
363
- resp.request_options[:attribute] == attr_opt_name
364
- then
365
- return resp
366
- end
367
- end
368
- provider.provides(attr.name, :value_wrapped => true)
369
- end
370
-
371
- end
372
-
373
- provider(:terminate_instances, :start_instances, :stop_instances) do |provider|
374
- provider.find do |resp|
375
- resp.instances_set.find {|i| i.instance_id == id }
376
- end
377
- provider.provides :status, :from => [:current_state, :name]
378
- provider.provides :status_code, :from => [:current_state, :code]
379
- end
380
-
381
- provider(:monitor_instances, :unmonitor_instances) do |provider|
382
- provider.find do |resp|
383
- resp.instances_set.find {|i| i.instance_id == id }
384
- end
385
- provider.provides :monitoring
386
- end
387
-
388
- # @return [Boolean] Returns true if this is an EC2 VPC instance.
389
- def vpc?
390
- !!vpc_id
391
- end
392
-
393
- # @return [VPC,nil] Returns the VPC this instance was launched in.
394
- # If this instance was not launched inside a VPC, nil is returned.
395
- def vpc
396
- if vpc_id
397
- VPC.new(vpc_id, :config => config)
398
- end
399
- end
400
-
401
- # @return [Subnet,nil] Returns the VPC subnet this instance was
402
- # launched in. Returns nil if this was not launched in a VPC.
403
- def subnet
404
- if subnet_id
405
- Subnet.new(subnet_id, :vpc_id => vpc_id, :config => config)
406
- end
407
- end
408
-
409
- # @return [Array<NetworkInterface>] Returns a list of elastic network
410
- # interfaces attached to this instance (VPC only). Non-vpc
411
- # instance may not have attached network interfaces.
412
- def network_interfaces
413
- network_interface_set.collect do |ni|
414
- NetworkInterface.new_from(:describe_network_interfaces, ni,
415
- ni.network_interface_id, :config => config)
416
- end
417
- end
418
-
419
- # Attaches a network interface to this instance (VPC only).
420
- #
421
- # @param [NetworkInterface,String] network_interface A network interface
422
- # (or network interface id string) to attach to this vpc instance.
423
- #
424
- # @param [Hash] options
425
- #
426
- # @option (see NetworkInterface#attach)
427
- #
428
- # @return [nil]
429
- #
430
- def attach_network_interface network_interface, options = {}
431
- if network_interface.is_a?(NetworkInterface)
432
- network_interface.attach(self, options)
433
- else
434
- i = NetworkInterface.new(network_interface, :config => config)
435
- i.attach(self, options)
436
- end
437
- nil
438
- end
439
-
440
- # @return [Array<SecurityGroup>] Returns a list of security
441
- # groups the instance belongs to.
442
- def security_groups
443
- (group_set || []).collect do |g|
444
- SecurityGroup.new(g.group_id, :name => g.group_name, :config => config)
445
- end
446
- end
447
- alias_method :groups, :security_groups
448
-
449
- # @return [Hash<String,Attachment>] Returns a hash of attachments.
450
- # The keys are device name strings (e.g. '/dev/sda') and the values
451
- # are {Attachment} objects.
452
- # @note This method will not return data for ephemeral volumes.
453
- # @see {#block_devices}
454
- def attachments
455
- (block_device_mapping || []).inject({}) do |m, mapping|
456
- if mapping[:ebs]
457
- device = mapping[:device_name]
458
- volume = Volume.new(mapping[:ebs][:volume_id], :config => config)
459
- attachment = Attachment.new(volume, self, device, :config => config)
460
- m[device] = attachment
461
- end
462
- m
463
- end
464
- end
465
- alias_method :block_device_mappings, :attachments
466
-
467
- # Returns a list of block device mappings.
468
- #
469
- # instance.block_devices
470
- # #=>
471
- # [
472
- # {
473
- # :device_name => "/dev/sda2",
474
- # :ebs => {
475
- # :volume_id => "vol-123",
476
- # :status => "attaching",
477
- # :attach_time => time,
478
- # :delete_on_termination => true
479
- # }
480
- # }, {
481
- # :device_name => "/dev/sdb",
482
- # :virtual_name => "ephemeral0",
483
- # }
484
- # ]
485
- #
486
- # @return [Array<Hash>] Returns a list of block device mappings. This
487
- # list may contain ephemeral volumes.
488
- def block_devices
489
- block_device_mapping.to_a
490
- end
491
-
492
- # Enables monitoring for this instance.
493
- # @return [nil]
494
- def enable_monitoring
495
- client.monitor_instances(:instance_ids => [id])
496
- nil
497
- end
498
-
499
- # Disables monitoring for this instance.
500
- # @return [nil]
501
- def disable_monitoring
502
- client.unmonitor_instances(:instance_ids => [id])
503
- nil
504
- end
505
-
506
- # Enables or disables monitoring for this instance.
507
- # @param [Boolean] state A true or false value. Enables monintoring
508
- # for a true value, disables it for a false value.
509
- def monitoring_enabled= state
510
- state ? enable_monitoring : disable_monitoring
511
- end
512
-
513
- # @return [Booelan] Returns `true` if CloudWatch monitoring is
514
- # enabled for this instance.
515
- def monitoring_enabled?
516
- monitoring == :enabled
517
- end
518
-
519
- # @return [Boolean] true if the instance is a Spot instance.
520
- def spot_instance?
521
- instance_lifecycle == :spot
522
- end
523
-
524
- # @return [String] The availability zone where the instance is
525
- # running.
526
- def availability_zone
527
- if p = placement
528
- p.availability_zone
529
- end
530
- end
531
-
532
- # @return [Boolean] Returns true if the instance has dedicated tenancy.
533
- # This will be false for all non-VPC instances. Dedicated Tenancy
534
- # comes at extra cost.
535
- def dedicated_tenancy?
536
- if p = placement
537
- p.tenancy == 'dedicated'
538
- else
539
- false
540
- end
541
- end
542
-
543
- # @return [Image] The AMI used to launch the instance.
544
- def image
545
- Image.new(image_id, :config => config)
546
- end
547
-
548
- # @return [KeyPair] The key pair with which this instance was
549
- # associated at launch.
550
- def key_pair
551
- KeyPair.new(key_name, :config => config) if key_name
552
- end
553
-
554
- # Creates an AMI from this instance.
555
- #
556
- # @param [String] name A name for the new image you're
557
- # creating. Constraints: 3-128 alphanumeric characters,
558
- # parenthesis (()), commas (,), slashes (/), dashes (-), or
559
- # underscores(_)
560
- #
561
- # @param [Hash] options Additional options for creating the image.
562
- #
563
- # @option options [String] :description A description of the new image.
564
- #
565
- # @option options [Boolean] :no_reboot By default this
566
- # option is set to `false`, which means Amazon EC2
567
- # attempts to cleanly shut down the instance before image
568
- # creation and reboots the instance afterwards. When the
569
- # option is set to `true`, Amazon EC2 does not shut down
570
- # the instance before creating the image. When this option
571
- # is used, file system integrity on the created image cannot
572
- # be guaranteed.
573
- #
574
- # @return [Image] The newly created image.
575
- def create_image name, options = {}
576
- images = ImageCollection.new(:config => config)
577
- images.create(options.merge(:instance_id => id, :name => name))
578
- end
579
-
580
- # Retrieves the console output for the instance, returning +nil+ if it
581
- # is not available yet.
582
- # @return [String] the console output
583
- # @return [nil] if no output is available
584
- def console_output
585
- output = client.get_console_output(:instance_id => self.id)[:output]
586
- Base64.decode64(output) if output
587
- end
588
-
589
- # Associates the elastic IP address with this instance.
590
- #
591
- # @overload associate_elastic_ip(elastic_ip)
592
- # @param [ElasticIp,String] elastic_ip An Elastic ip address
593
- # (VPC or non-VPC) or a public ip address string (non-VPC only).
594
- #
595
- # @overload associate_elastic_ip(allocation_id)
596
- # @param [String] allocation_id The allocation id of a
597
- # VPC elastic ip address.
598
- #
599
- # @return [nil]
600
- #
601
- def associate_elastic_ip elastic_ip
602
-
603
- client_opts = {}
604
- client_opts[:instance_id] = self.id
605
-
606
- if vpc?
607
- client_opts[:allocation_id] = elastic_ip.is_a?(ElasticIp) ?
608
- elastic_ip.allocation_id :
609
- elastic_ip.to_s
610
- else
611
- client_opts[:public_ip] = elastic_ip.to_s
612
- end
613
-
614
- client.associate_address(client_opts)
615
- nil
616
-
617
- end
618
-
619
- alias_method :ip_address=, :associate_elastic_ip
620
-
621
- # Disassociates an attached elastic IP address from this instance.
622
- # Raises an exception if there is no elastic IP address associated
623
- # with this instance.
624
- def disassociate_elastic_ip
625
- if ip = self.elastic_ip
626
- ip.disassociate
627
- else
628
- raise "instance #{id} does not have an associated elastic ip"
629
- end
630
- end
631
-
632
- # @return [ElasticIp,nil] Returns an elastic IP address if one
633
- # is associated with this instance, nil otherwise.
634
- def elastic_ip
635
- ips = ElasticIpCollection.new(:config => config)
636
- ips.filter('instance-id', id).first
637
- end
638
-
639
- # @return [Boolean] Returns true if an elastic IP address is
640
- # associated with this instance, false otherwise.
641
- def has_elastic_ip?
642
- !elastic_ip.nil?
643
- end
644
-
645
- # @return [Boolean] Returns true if the instance exists according to
646
- # EC2.
647
- def exists?
648
- client.describe_instances(:filters => [
649
- { :name => "instance-id", :values => [id] }
650
- ]).instance_index.key?(id)
651
- end
652
-
653
- # Resets the kernel to its default value.
654
- def reset_kernel_id
655
- client.reset_instance_attribute(
656
- :instance_id => id, :attribute => "kernel").return
657
- end
658
-
659
- # Resets the RAM disk to its default value.
660
- def reset_ramdisk_id
661
- client.reset_instance_attribute(
662
- :instance_id => id, :attribute => "ramdisk").return
663
- end
664
-
665
- # Terminates the instance.
666
- # @return [nil]
667
- def terminate
668
- instance_action :terminate
669
- end
670
- alias_method :delete, :terminate
671
-
672
- # Reboots the instance.
673
- # @return [nil]
674
- def reboot
675
- instance_action :reboot
676
- end
677
-
678
- # Starts the instance, assuming it is in a stopped state.
679
- # @see stop
680
- # @return [nil]
681
- def start
682
- instance_action :start
683
- end
684
-
685
- # Stops the instance, eventually putting it into a stopped state.
686
- # @return [nil]
687
- def stop
688
- instance_action :stop
689
- end
690
-
691
- # This produces an image of an EC2 instance for use in another
692
- # virtualization environment and then writes the image to a
693
- # S3 bucket.
694
- #
695
- # ## Granting EC2 write access to your bucket
696
- #
697
- # Before you can export an image to an S3 bucket, you must modify
698
- # the bucket ACL. You only need to do this once per bucket.
699
- #
700
- # s3.buckets['bucket-name'].acl.change do |acl|
701
- # acl.grant(:read_acp).to(:amazon_customer_email => 'vm-import-export@amazon.com')
702
- # acl.grant(:write).to(:amazon_customer_email => 'vm-import-export@amazon.com')
703
- # end
704
- #
705
- # ## Performing the export
706
- #
707
- # Simply call #export_to_s3 on your instance. Only instances
708
- # derived from your own ImportInstance tasks may be exported.
709
- #
710
- # task = ec2.instances['i-12345678'].export_to_s3('bucket-name')
711
- #
712
- # ## Downloading the results
713
- #
714
- # Given a completed export task you can download the final image:
715
- #
716
- # File.open('image.ova', 'wb') {|f| f.write(task.s3_object.read) }
717
- #
718
- # @param [S3::Bucket,String] bucket The destination bucket. May
719
- # be the name of the bucket (string) or a {S3::Bucket} object. The
720
- # bucket must exist and grant write permissiosn to the AWS account
721
- # 'vm-import-export@amazon.com.'.
722
- #
723
- # @param [Hash] options
724
- #
725
- # @option options [String] :target_environment ('vmware') The target
726
- # virtualization environment. Valid values include: 'vmware', 'citrix'
727
- # and 'microsoft'.
728
- #
729
- # @option options [String] :disk_image_format The format for the exported
730
- # image. Defaults to 'vmdk' if `:target_environemnt` is 'vmware',
731
- # otherwise, 'vhd'.
732
- #
733
- # @option options [String] :container_format The container format used to
734
- # combine disk images with metadata (such as OVF). If absent, only
735
- # the disk image will be exported. Defaults to 'ova' if
736
- # `:target_environment` is 'vmware', otherwise ommited.
737
- #
738
- # @option options [String] :description Description of the conversion
739
- # task or the resource being exported.
740
- #
741
- # @option options [String] :prefix (nil) The image is written to a
742
- # single object in the bucket at the key:
743
- #
744
- # "#{prefix}#{export_task_id}.#{disk_image_format}"
745
- #
746
- # @return [ExportTask]
747
- #
748
- def export_to_s3 bucket, options = {}
749
-
750
- bucket_name = bucket.is_a?(S3::Bucket) ? bucket.name : bucket.to_s
751
-
752
- opts = {}
753
- opts[:instance_id] = instance_id
754
- opts[:description] = options[:description] if options[:description]
755
- opts[:target_environment] = options[:target_environment] || 'vmware'
756
- opts[:export_to_s3] = {}
757
- opts[:export_to_s3][:s3_bucket] = bucket_name
758
- [:disk_image_format, :container_format, :s3_prefix].each do |opt|
759
- opts[:export_to_s3][opt] = options[opt] if options.key?(opt)
760
- end
761
-
762
- resp = client.create_instance_export_task(opts)
763
-
764
- ExportTask.new_from(
765
- :create_instance_export_task,
766
- resp[:export_task],
767
- resp[:export_task][:export_task_id],
768
- :config => config)
769
-
770
- end
771
-
772
- protected
773
-
774
- def find_in_response resp
775
- resp.instance_index[id]
776
- end
777
-
778
- def instance_action name
779
- client.send("#{name}_instances", :instance_ids => [id])
780
- nil
781
- end
782
-
783
- def get_resource attribute
784
- if self.class.mutable_describe_attributes.include?(attribute.name)
785
- describe_attribute_call(attribute)
786
- else
787
- describe_call
788
- end
789
- end
790
-
791
- def attributes_from_response_object(obj)
792
- if atts = super(obj)
793
- if obj[:instance_state]
794
- atts[:status] = obj[:instance_state].name.tr("-","_").to_sym
795
- end
796
- atts
797
- end
798
- end
799
-
800
- end
801
-
802
- end
803
- end