aws_sdk 3.1.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 (390) hide show
  1. data/lib/aws-sdk.rb +14 -0
  2. data/lib/aws.rb +49 -0
  3. data/lib/aws/api_config/AutoScaling-2011-01-01.yml +791 -0
  4. data/lib/aws/api_config/CloudFormation-2010-05-15.yml +303 -0
  5. data/lib/aws/api_config/DynamoDB-2011-12-05.yml +540 -0
  6. data/lib/aws/api_config/EC2-2011-12-15.yml +3638 -0
  7. data/lib/aws/api_config/EC2-2012-04-01.yml +3739 -0
  8. data/lib/aws/api_config/ELB-2011-08-15.yml +512 -0
  9. data/lib/aws/api_config/IAM-2010-05-08.yml +1221 -0
  10. data/lib/aws/api_config/SNS-2010-03-31.yml +248 -0
  11. data/lib/aws/api_config/SQS-2011-10-01.yml +314 -0
  12. data/lib/aws/api_config/STS-2011-06-15.yml +54 -0
  13. data/lib/aws/api_config/SimpleDB-2009-04-15.yml +305 -0
  14. data/lib/aws/api_config/SimpleEmailService-2010-12-01.yml +231 -0
  15. data/lib/aws/api_config/SimpleWorkflow-2012-01-25.yml +721 -0
  16. data/lib/aws/auto_scaling.rb +162 -0
  17. data/lib/aws/auto_scaling/activity.rb +102 -0
  18. data/lib/aws/auto_scaling/activity_collection.rb +82 -0
  19. data/lib/aws/auto_scaling/client.rb +765 -0
  20. data/lib/aws/auto_scaling/config.rb +18 -0
  21. data/lib/aws/auto_scaling/errors.rb +22 -0
  22. data/lib/aws/auto_scaling/group.rb +420 -0
  23. data/lib/aws/auto_scaling/group_collection.rb +96 -0
  24. data/lib/aws/auto_scaling/group_options.rb +146 -0
  25. data/lib/aws/auto_scaling/instance.rb +192 -0
  26. data/lib/aws/auto_scaling/instance_collection.rb +63 -0
  27. data/lib/aws/auto_scaling/launch_configuration.rb +150 -0
  28. data/lib/aws/auto_scaling/launch_configuration_collection.rb +144 -0
  29. data/lib/aws/auto_scaling/notification_configuration.rb +89 -0
  30. data/lib/aws/auto_scaling/notification_configuration_collection.rb +184 -0
  31. data/lib/aws/auto_scaling/request.rb +23 -0
  32. data/lib/aws/auto_scaling/scaling_policy.rb +125 -0
  33. data/lib/aws/auto_scaling/scaling_policy_collection.rb +72 -0
  34. data/lib/aws/auto_scaling/scaling_policy_options.rb +61 -0
  35. data/lib/aws/auto_scaling/scheduled_action.rb +145 -0
  36. data/lib/aws/auto_scaling/scheduled_action_collection.rb +195 -0
  37. data/lib/aws/auto_scaling/tag.rb +59 -0
  38. data/lib/aws/auto_scaling/tag_collection.rb +112 -0
  39. data/lib/aws/cloud_formation.rb +270 -0
  40. data/lib/aws/cloud_formation/client.rb +339 -0
  41. data/lib/aws/cloud_formation/config.rb +18 -0
  42. data/lib/aws/cloud_formation/errors.rb +22 -0
  43. data/lib/aws/cloud_formation/request.rb +29 -0
  44. data/lib/aws/cloud_formation/stack.rb +256 -0
  45. data/lib/aws/cloud_formation/stack_collection.rb +206 -0
  46. data/lib/aws/cloud_formation/stack_event.rb +75 -0
  47. data/lib/aws/cloud_formation/stack_event_collection.rb +47 -0
  48. data/lib/aws/cloud_formation/stack_options.rb +72 -0
  49. data/lib/aws/cloud_formation/stack_output.rb +53 -0
  50. data/lib/aws/cloud_formation/stack_resource.rb +117 -0
  51. data/lib/aws/cloud_formation/stack_resource_collection.rb +84 -0
  52. data/lib/aws/cloud_formation/stack_resource_summary_collection.rb +72 -0
  53. data/lib/aws/cloud_formation/stack_summary.rb +71 -0
  54. data/lib/aws/cloud_formation/stack_summary_collection.rb +127 -0
  55. data/lib/aws/core.rb +474 -0
  56. data/lib/aws/core/async_handle.rb +90 -0
  57. data/lib/aws/core/autoloader.rb +64 -0
  58. data/lib/aws/core/cacheable.rb +78 -0
  59. data/lib/aws/core/client.rb +541 -0
  60. data/lib/aws/core/client/query_json.rb +110 -0
  61. data/lib/aws/core/client/query_xml.rb +122 -0
  62. data/lib/aws/core/collection.rb +234 -0
  63. data/lib/aws/core/collection/limitable.rb +99 -0
  64. data/lib/aws/core/collection/simple.rb +90 -0
  65. data/lib/aws/core/configuration.rb +445 -0
  66. data/lib/aws/core/data.rb +242 -0
  67. data/lib/aws/core/default_signer.rb +67 -0
  68. data/lib/aws/core/http/curb_handler.rb +136 -0
  69. data/lib/aws/core/http/handler.rb +77 -0
  70. data/lib/aws/core/http/httparty_handler.rb +114 -0
  71. data/lib/aws/core/http/net_http_handler.rb +85 -0
  72. data/lib/aws/core/http/request.rb +250 -0
  73. data/lib/aws/core/http/response.rb +74 -0
  74. data/lib/aws/core/indifferent_hash.rb +88 -0
  75. data/lib/aws/core/inflection.rb +47 -0
  76. data/lib/aws/core/lazy_error_classes.rb +90 -0
  77. data/lib/aws/core/log_formatter.rb +454 -0
  78. data/lib/aws/core/meta_utils.rb +45 -0
  79. data/lib/aws/core/model.rb +57 -0
  80. data/lib/aws/core/naming.rb +30 -0
  81. data/lib/aws/core/option_grammar.rb +700 -0
  82. data/lib/aws/core/page_result.rb +73 -0
  83. data/lib/aws/core/policy.rb +916 -0
  84. data/lib/aws/core/resource.rb +408 -0
  85. data/lib/aws/core/resource_cache.rb +40 -0
  86. data/lib/aws/core/response.rb +202 -0
  87. data/lib/aws/core/response_cache.rb +50 -0
  88. data/lib/aws/core/service_interface.rb +61 -0
  89. data/lib/aws/core/session_signer.rb +90 -0
  90. data/lib/aws/core/signature/version_2.rb +42 -0
  91. data/lib/aws/core/signature/version_3.rb +73 -0
  92. data/lib/aws/core/signature/version_3_http.rb +72 -0
  93. data/lib/aws/core/signature/version_4.rb +138 -0
  94. data/lib/aws/core/uri_escape.rb +42 -0
  95. data/lib/aws/core/xml/frame.rb +242 -0
  96. data/lib/aws/core/xml/frame_stack.rb +85 -0
  97. data/lib/aws/core/xml/grammar.rb +299 -0
  98. data/lib/aws/core/xml/parser.rb +70 -0
  99. data/lib/aws/core/xml/root_frame.rb +65 -0
  100. data/lib/aws/core/xml/sax_handlers/libxml.rb +47 -0
  101. data/lib/aws/core/xml/sax_handlers/nokogiri.rb +55 -0
  102. data/lib/aws/core/xml/sax_handlers/ox.rb +41 -0
  103. data/lib/aws/core/xml/sax_handlers/rexml.rb +43 -0
  104. data/lib/aws/core/xml/stub.rb +123 -0
  105. data/lib/aws/dynamo_db.rb +213 -0
  106. data/lib/aws/dynamo_db/attribute_collection.rb +460 -0
  107. data/lib/aws/dynamo_db/batch_get.rb +206 -0
  108. data/lib/aws/dynamo_db/batch_write.rb +251 -0
  109. data/lib/aws/dynamo_db/client.rb +888 -0
  110. data/lib/aws/dynamo_db/config.rb +20 -0
  111. data/lib/aws/dynamo_db/errors.rb +20 -0
  112. data/lib/aws/dynamo_db/expectations.rb +40 -0
  113. data/lib/aws/dynamo_db/item.rb +130 -0
  114. data/lib/aws/dynamo_db/item_collection.rb +852 -0
  115. data/lib/aws/dynamo_db/item_data.rb +31 -0
  116. data/lib/aws/dynamo_db/keys.rb +41 -0
  117. data/lib/aws/dynamo_db/primary_key_element.rb +47 -0
  118. data/lib/aws/dynamo_db/request.rb +28 -0
  119. data/lib/aws/dynamo_db/resource.rb +33 -0
  120. data/lib/aws/dynamo_db/table.rb +489 -0
  121. data/lib/aws/dynamo_db/table_collection.rb +165 -0
  122. data/lib/aws/dynamo_db/types.rb +86 -0
  123. data/lib/aws/ec2.rb +431 -0
  124. data/lib/aws/ec2/attachment.rb +140 -0
  125. data/lib/aws/ec2/attachment_collection.rb +54 -0
  126. data/lib/aws/ec2/availability_zone.rb +87 -0
  127. data/lib/aws/ec2/availability_zone_collection.rb +43 -0
  128. data/lib/aws/ec2/block_device_mappings.rb +53 -0
  129. data/lib/aws/ec2/client.rb +4121 -0
  130. data/lib/aws/ec2/collection.rb +36 -0
  131. data/lib/aws/ec2/config.rb +18 -0
  132. data/lib/aws/ec2/config_transform.rb +63 -0
  133. data/lib/aws/ec2/customer_gateway.rb +90 -0
  134. data/lib/aws/ec2/customer_gateway_collection.rb +73 -0
  135. data/lib/aws/ec2/dhcp_options.rb +106 -0
  136. data/lib/aws/ec2/dhcp_options_collection.rb +87 -0
  137. data/lib/aws/ec2/elastic_ip.rb +157 -0
  138. data/lib/aws/ec2/elastic_ip_collection.rb +97 -0
  139. data/lib/aws/ec2/errors.rb +32 -0
  140. data/lib/aws/ec2/filtered_collection.rb +90 -0
  141. data/lib/aws/ec2/has_permissions.rb +44 -0
  142. data/lib/aws/ec2/image.rb +254 -0
  143. data/lib/aws/ec2/image_collection.rb +228 -0
  144. data/lib/aws/ec2/instance.rb +669 -0
  145. data/lib/aws/ec2/instance_collection.rb +346 -0
  146. data/lib/aws/ec2/internet_gateway.rb +122 -0
  147. data/lib/aws/ec2/internet_gateway/attachment.rb +78 -0
  148. data/lib/aws/ec2/internet_gateway_collection.rb +54 -0
  149. data/lib/aws/ec2/key_pair.rb +82 -0
  150. data/lib/aws/ec2/key_pair_collection.rb +99 -0
  151. data/lib/aws/ec2/network_acl.rb +256 -0
  152. data/lib/aws/ec2/network_acl/association.rb +56 -0
  153. data/lib/aws/ec2/network_acl/entry.rb +147 -0
  154. data/lib/aws/ec2/network_acl_collection.rb +64 -0
  155. data/lib/aws/ec2/network_interface.rb +228 -0
  156. data/lib/aws/ec2/network_interface/attachment.rb +100 -0
  157. data/lib/aws/ec2/network_interface_collection.rb +103 -0
  158. data/lib/aws/ec2/permission_collection.rb +174 -0
  159. data/lib/aws/ec2/region.rb +97 -0
  160. data/lib/aws/ec2/region_collection.rb +51 -0
  161. data/lib/aws/ec2/request.rb +22 -0
  162. data/lib/aws/ec2/reserved_instances.rb +53 -0
  163. data/lib/aws/ec2/reserved_instances_collection.rb +40 -0
  164. data/lib/aws/ec2/reserved_instances_offering.rb +58 -0
  165. data/lib/aws/ec2/reserved_instances_offering_collection.rb +39 -0
  166. data/lib/aws/ec2/resource.rb +161 -0
  167. data/lib/aws/ec2/resource_tag_collection.rb +211 -0
  168. data/lib/aws/ec2/route_table.rb +205 -0
  169. data/lib/aws/ec2/route_table/association.rb +119 -0
  170. data/lib/aws/ec2/route_table/route.rb +113 -0
  171. data/lib/aws/ec2/route_table_collection.rb +72 -0
  172. data/lib/aws/ec2/security_group.rb +458 -0
  173. data/lib/aws/ec2/security_group/egress_ip_permission_collection.rb +63 -0
  174. data/lib/aws/ec2/security_group/ingress_ip_permission_collection.rb +61 -0
  175. data/lib/aws/ec2/security_group/ip_permission.rb +128 -0
  176. data/lib/aws/ec2/security_group_collection.rb +135 -0
  177. data/lib/aws/ec2/snapshot.rb +143 -0
  178. data/lib/aws/ec2/snapshot_collection.rb +131 -0
  179. data/lib/aws/ec2/subnet.rb +161 -0
  180. data/lib/aws/ec2/subnet_collection.rb +115 -0
  181. data/lib/aws/ec2/tag.rb +81 -0
  182. data/lib/aws/ec2/tag_collection.rb +107 -0
  183. data/lib/aws/ec2/tagged_collection.rb +53 -0
  184. data/lib/aws/ec2/tagged_item.rb +85 -0
  185. data/lib/aws/ec2/volume.rb +170 -0
  186. data/lib/aws/ec2/volume_collection.rb +97 -0
  187. data/lib/aws/ec2/vpc.rb +166 -0
  188. data/lib/aws/ec2/vpc_collection.rb +70 -0
  189. data/lib/aws/ec2/vpn_connection.rb +99 -0
  190. data/lib/aws/ec2/vpn_connection/telemetry.rb +49 -0
  191. data/lib/aws/ec2/vpn_connection_collection.rb +96 -0
  192. data/lib/aws/ec2/vpn_gateway.rb +123 -0
  193. data/lib/aws/ec2/vpn_gateway/attachment.rb +45 -0
  194. data/lib/aws/ec2/vpn_gateway_collection.rb +77 -0
  195. data/lib/aws/elb.rb +65 -0
  196. data/lib/aws/elb/availability_zone_collection.rb +138 -0
  197. data/lib/aws/elb/backend_server_policy_collection.rb +140 -0
  198. data/lib/aws/elb/client.rb +539 -0
  199. data/lib/aws/elb/config.rb +18 -0
  200. data/lib/aws/elb/errors.rb +26 -0
  201. data/lib/aws/elb/instance_collection.rb +174 -0
  202. data/lib/aws/elb/listener.rb +189 -0
  203. data/lib/aws/elb/listener_collection.rb +119 -0
  204. data/lib/aws/elb/listener_opts.rb +45 -0
  205. data/lib/aws/elb/load_balancer.rb +253 -0
  206. data/lib/aws/elb/load_balancer_collection.rb +113 -0
  207. data/lib/aws/elb/load_balancer_policy.rb +93 -0
  208. data/lib/aws/elb/load_balancer_policy_collection.rb +208 -0
  209. data/lib/aws/elb/request.rb +23 -0
  210. data/lib/aws/errors.rb +122 -0
  211. data/lib/aws/iam.rb +418 -0
  212. data/lib/aws/iam/access_key.rb +180 -0
  213. data/lib/aws/iam/access_key_collection.rb +128 -0
  214. data/lib/aws/iam/account_alias_collection.rb +79 -0
  215. data/lib/aws/iam/client.rb +1609 -0
  216. data/lib/aws/iam/collection.rb +83 -0
  217. data/lib/aws/iam/config.rb +18 -0
  218. data/lib/aws/iam/errors.rb +22 -0
  219. data/lib/aws/iam/group.rb +111 -0
  220. data/lib/aws/iam/group_collection.rb +132 -0
  221. data/lib/aws/iam/group_policy_collection.rb +47 -0
  222. data/lib/aws/iam/group_user_collection.rb +84 -0
  223. data/lib/aws/iam/login_profile.rb +99 -0
  224. data/lib/aws/iam/mfa_device.rb +52 -0
  225. data/lib/aws/iam/mfa_device_collection.rb +127 -0
  226. data/lib/aws/iam/policy.rb +46 -0
  227. data/lib/aws/iam/policy_collection.rb +188 -0
  228. data/lib/aws/iam/request.rb +29 -0
  229. data/lib/aws/iam/resource.rb +71 -0
  230. data/lib/aws/iam/server_certificate.rb +141 -0
  231. data/lib/aws/iam/server_certificate_collection.rb +138 -0
  232. data/lib/aws/iam/signing_certificate.rb +169 -0
  233. data/lib/aws/iam/signing_certificate_collection.rb +131 -0
  234. data/lib/aws/iam/user.rb +205 -0
  235. data/lib/aws/iam/user_collection.rb +133 -0
  236. data/lib/aws/iam/user_group_collection.rb +98 -0
  237. data/lib/aws/iam/user_policy.rb +90 -0
  238. data/lib/aws/iam/user_policy_collection.rb +45 -0
  239. data/lib/aws/iam/virtual_mfa_device.rb +139 -0
  240. data/lib/aws/iam/virtual_mfa_device_collection.rb +73 -0
  241. data/lib/aws/rails.rb +195 -0
  242. data/lib/aws/record.rb +116 -0
  243. data/lib/aws/record/abstract_base.rb +645 -0
  244. data/lib/aws/record/attributes.rb +384 -0
  245. data/lib/aws/record/conversion.rb +38 -0
  246. data/lib/aws/record/dirty_tracking.rb +285 -0
  247. data/lib/aws/record/errors.rb +143 -0
  248. data/lib/aws/record/exceptions.rb +48 -0
  249. data/lib/aws/record/hash_model.rb +161 -0
  250. data/lib/aws/record/hash_model/attributes.rb +182 -0
  251. data/lib/aws/record/hash_model/finder_methods.rb +172 -0
  252. data/lib/aws/record/hash_model/scope.rb +108 -0
  253. data/lib/aws/record/model.rb +427 -0
  254. data/lib/aws/record/model/attributes.rb +379 -0
  255. data/lib/aws/record/model/finder_methods.rb +232 -0
  256. data/lib/aws/record/model/scope.rb +213 -0
  257. data/lib/aws/record/naming.rb +31 -0
  258. data/lib/aws/record/scope.rb +199 -0
  259. data/lib/aws/record/validations.rb +694 -0
  260. data/lib/aws/record/validator.rb +237 -0
  261. data/lib/aws/record/validators/acceptance.rb +51 -0
  262. data/lib/aws/record/validators/block.rb +38 -0
  263. data/lib/aws/record/validators/confirmation.rb +43 -0
  264. data/lib/aws/record/validators/count.rb +108 -0
  265. data/lib/aws/record/validators/exclusion.rb +43 -0
  266. data/lib/aws/record/validators/format.rb +57 -0
  267. data/lib/aws/record/validators/inclusion.rb +56 -0
  268. data/lib/aws/record/validators/length.rb +107 -0
  269. data/lib/aws/record/validators/method.rb +33 -0
  270. data/lib/aws/record/validators/numericality.rb +138 -0
  271. data/lib/aws/record/validators/presence.rb +45 -0
  272. data/lib/aws/s3.rb +135 -0
  273. data/lib/aws/s3/access_control_list.rb +250 -0
  274. data/lib/aws/s3/acl_object.rb +264 -0
  275. data/lib/aws/s3/bucket.rb +393 -0
  276. data/lib/aws/s3/bucket_collection.rb +143 -0
  277. data/lib/aws/s3/bucket_lifecycle_configuration.rb +360 -0
  278. data/lib/aws/s3/bucket_version_collection.rb +77 -0
  279. data/lib/aws/s3/client.rb +1184 -0
  280. data/lib/aws/s3/client/xml.rb +177 -0
  281. data/lib/aws/s3/config.rb +26 -0
  282. data/lib/aws/s3/data_options.rb +100 -0
  283. data/lib/aws/s3/errors.rb +81 -0
  284. data/lib/aws/s3/multipart_upload.rb +317 -0
  285. data/lib/aws/s3/multipart_upload_collection.rb +68 -0
  286. data/lib/aws/s3/object_collection.rb +337 -0
  287. data/lib/aws/s3/object_metadata.rb +96 -0
  288. data/lib/aws/s3/object_upload_collection.rb +77 -0
  289. data/lib/aws/s3/object_version.rb +143 -0
  290. data/lib/aws/s3/object_version_collection.rb +89 -0
  291. data/lib/aws/s3/paginated_collection.rb +75 -0
  292. data/lib/aws/s3/policy.rb +74 -0
  293. data/lib/aws/s3/prefix_and_delimiter_collection.rb +47 -0
  294. data/lib/aws/s3/prefixed_collection.rb +81 -0
  295. data/lib/aws/s3/presigned_post.rb +553 -0
  296. data/lib/aws/s3/request.rb +201 -0
  297. data/lib/aws/s3/s3_object.rb +1037 -0
  298. data/lib/aws/s3/tree.rb +118 -0
  299. data/lib/aws/s3/tree/branch_node.rb +68 -0
  300. data/lib/aws/s3/tree/child_collection.rb +104 -0
  301. data/lib/aws/s3/tree/leaf_node.rb +94 -0
  302. data/lib/aws/s3/tree/node.rb +22 -0
  303. data/lib/aws/s3/tree/parent.rb +87 -0
  304. data/lib/aws/s3/uploaded_part.rb +80 -0
  305. data/lib/aws/s3/uploaded_part_collection.rb +84 -0
  306. data/lib/aws/simple_db.rb +217 -0
  307. data/lib/aws/simple_db/attribute.rb +154 -0
  308. data/lib/aws/simple_db/attribute_collection.rb +231 -0
  309. data/lib/aws/simple_db/client.rb +349 -0
  310. data/lib/aws/simple_db/config.rb +20 -0
  311. data/lib/aws/simple_db/consistent_read_option.rb +42 -0
  312. data/lib/aws/simple_db/delete_attributes.rb +62 -0
  313. data/lib/aws/simple_db/domain.rb +121 -0
  314. data/lib/aws/simple_db/domain_collection.rb +113 -0
  315. data/lib/aws/simple_db/domain_metadata.rb +110 -0
  316. data/lib/aws/simple_db/errors.rb +55 -0
  317. data/lib/aws/simple_db/expect_condition_option.rb +45 -0
  318. data/lib/aws/simple_db/item.rb +93 -0
  319. data/lib/aws/simple_db/item_collection.rb +649 -0
  320. data/lib/aws/simple_db/item_data.rb +73 -0
  321. data/lib/aws/simple_db/put_attributes.rb +60 -0
  322. data/lib/aws/simple_db/request.rb +23 -0
  323. data/lib/aws/simple_email_service.rb +426 -0
  324. data/lib/aws/simple_email_service/client.rb +286 -0
  325. data/lib/aws/simple_email_service/config.rb +19 -0
  326. data/lib/aws/simple_email_service/email_address_collection.rb +69 -0
  327. data/lib/aws/simple_email_service/errors.rb +22 -0
  328. data/lib/aws/simple_email_service/identity.rb +91 -0
  329. data/lib/aws/simple_email_service/identity_collection.rb +81 -0
  330. data/lib/aws/simple_email_service/quotas.rb +64 -0
  331. data/lib/aws/simple_email_service/request.rb +29 -0
  332. data/lib/aws/simple_workflow.rb +226 -0
  333. data/lib/aws/simple_workflow/activity_task.rb +173 -0
  334. data/lib/aws/simple_workflow/activity_task_collection.rb +123 -0
  335. data/lib/aws/simple_workflow/activity_type.rb +131 -0
  336. data/lib/aws/simple_workflow/activity_type_collection.rb +93 -0
  337. data/lib/aws/simple_workflow/client.rb +1434 -0
  338. data/lib/aws/simple_workflow/config.rb +18 -0
  339. data/lib/aws/simple_workflow/count.rb +49 -0
  340. data/lib/aws/simple_workflow/decision_task.rb +601 -0
  341. data/lib/aws/simple_workflow/decision_task_collection.rb +225 -0
  342. data/lib/aws/simple_workflow/domain.rb +122 -0
  343. data/lib/aws/simple_workflow/domain_collection.rb +169 -0
  344. data/lib/aws/simple_workflow/errors.rb +20 -0
  345. data/lib/aws/simple_workflow/history_event.rb +276 -0
  346. data/lib/aws/simple_workflow/history_event_collection.rb +76 -0
  347. data/lib/aws/simple_workflow/option_formatters.rb +82 -0
  348. data/lib/aws/simple_workflow/request.rb +36 -0
  349. data/lib/aws/simple_workflow/resource.rb +94 -0
  350. data/lib/aws/simple_workflow/type.rb +89 -0
  351. data/lib/aws/simple_workflow/type_collection.rb +140 -0
  352. data/lib/aws/simple_workflow/workflow_execution.rb +386 -0
  353. data/lib/aws/simple_workflow/workflow_execution_collection.rb +617 -0
  354. data/lib/aws/simple_workflow/workflow_type.rb +177 -0
  355. data/lib/aws/simple_workflow/workflow_type_collection.rb +91 -0
  356. data/lib/aws/sns.rb +74 -0
  357. data/lib/aws/sns/client.rb +371 -0
  358. data/lib/aws/sns/config.rb +18 -0
  359. data/lib/aws/sns/errors.rb +22 -0
  360. data/lib/aws/sns/has_delivery_policy.rb +68 -0
  361. data/lib/aws/sns/policy.rb +47 -0
  362. data/lib/aws/sns/request.rb +23 -0
  363. data/lib/aws/sns/subscription.rb +144 -0
  364. data/lib/aws/sns/subscription_collection.rb +80 -0
  365. data/lib/aws/sns/topic.rb +403 -0
  366. data/lib/aws/sns/topic_collection.rb +67 -0
  367. data/lib/aws/sns/topic_subscription_collection.rb +55 -0
  368. data/lib/aws/sqs.rb +79 -0
  369. data/lib/aws/sqs/client.rb +360 -0
  370. data/lib/aws/sqs/config.rb +18 -0
  371. data/lib/aws/sqs/errors.rb +101 -0
  372. data/lib/aws/sqs/policy.rb +48 -0
  373. data/lib/aws/sqs/queue.rb +725 -0
  374. data/lib/aws/sqs/queue_collection.rb +170 -0
  375. data/lib/aws/sqs/received_message.rb +181 -0
  376. data/lib/aws/sqs/received_sns_message.rb +112 -0
  377. data/lib/aws/sqs/request.rb +43 -0
  378. data/lib/aws/sts.rb +152 -0
  379. data/lib/aws/sts/client.rb +105 -0
  380. data/lib/aws/sts/config.rb +18 -0
  381. data/lib/aws/sts/errors.rb +22 -0
  382. data/lib/aws/sts/federated_session.rb +56 -0
  383. data/lib/aws/sts/policy.rb +30 -0
  384. data/lib/aws/sts/request.rb +29 -0
  385. data/lib/aws/sts/session.rb +48 -0
  386. data/lib/net/http/connection_pool.rb +210 -0
  387. data/lib/net/http/connection_pool/connection.rb +132 -0
  388. data/lib/net/http/connection_pool/session.rb +93 -0
  389. data/lib/user.rb +49 -0
  390. metadata +433 -0
@@ -0,0 +1,45 @@
1
+ # Copyright 2011-2012 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 ELB
16
+
17
+ # @private
18
+ module ListenerOpts
19
+
20
+ # convert protocols from symbols to strings (e.g. :http to 'HTTP')
21
+ protected
22
+ def format_listener_opts options
23
+
24
+ # accept the :load_balancer_port option by :port
25
+ options[:load_balancer_port] = options.delete(:port) if
26
+ options[:port]
27
+
28
+ # convert symbolized protocol names into upper-cased strings
29
+ [:protocol, :instance_protocol].each do |opt|
30
+ options[opt] = options[opt].to_s.upcase if options[opt]
31
+ end
32
+
33
+ # convert iam server certificates into the ssl certificate id
34
+ if cert = options.delete(:server_certificate)
35
+ options[:ssl_certificate_id] = cert.is_a?(IAM::ServerCertificate) ?
36
+ cert.arn : cert
37
+ end
38
+
39
+ options
40
+
41
+ end
42
+
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,253 @@
1
+ # Copyright 2011-2012 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 ELB
16
+
17
+ # @attr_reader [String] name The name of the load balancer.
18
+ #
19
+ # @attr_reader [Array<String>] availability_zone_names Return the names of
20
+ # the availability zones this load balancer routes traffic to.
21
+ #
22
+ # @attr_reader [String] canonical_hosted_zone_name Provides the name of
23
+ # the Amazon Route 53 hosted zone that is associated with the load
24
+ # balancer. For more information: {http://docs.amazonwebservices.com/ElasticLoadBalancing/latest/DeveloperGuide/index.html?using-domain-names-with-elb.html}.
25
+ #
26
+ # @attr_reader [String] canonical_hosted_zone_name_id Provides the ID of
27
+ # the Amazon Route 53 hosted zone name that is associated with the
28
+ # load balancer. For more information: {http://docs.amazonwebservices.com/ElasticLoadBalancing/latest/DeveloperGuide/index.html?using-domain-names-with-elb.html}.
29
+ #
30
+ # @attr_reader [String] dns_name Specifies the external DNS name
31
+ # associated with this load balancer.
32
+ #
33
+ class LoadBalancer < Core::Resource
34
+
35
+ def initialize name, options = {}
36
+ super(options.merge(:name => name.to_s))
37
+ end
38
+
39
+ attribute :name, :as => :load_balancer_name, :static => true
40
+
41
+ #availability_zones
42
+ attribute :availability_zone_names, :as => :availability_zones
43
+
44
+ #backend_server_policies
45
+ attribute :backend_server_descriptions
46
+
47
+ attribute :canonical_hosted_zone_name, :static => true
48
+
49
+ attribute :canonical_hosted_zone_name_id, :static => true
50
+
51
+ attribute :created_time, :static => true
52
+
53
+ attribute :dns_name, :static => true
54
+
55
+ #health_check_configuration
56
+ attribute :health_check_description, :as => :health_check
57
+
58
+ #instances
59
+ attribute :instance_descriptions, :as => :instances
60
+
61
+ #listeners
62
+ attribute :listener_descriptions
63
+
64
+ #source_security_group
65
+ attribute :security_group_description,
66
+ :as => :source_security_group,
67
+ :static => true
68
+
69
+ populates_from(:describe_load_balancers) do |resp|
70
+ resp.load_balancer_descriptions.find do |lb|
71
+ lb.load_balancer_name == name
72
+ end
73
+ end
74
+
75
+ # A collection that help maanage the availability zones for
76
+ # this load balancer.
77
+ #
78
+ # @example enable an availability zone
79
+ #
80
+ # load_balancer.availability_zones.enable('us-east-1b')
81
+ #
82
+ # @example disable an availability zone
83
+ #
84
+ # load_balancer.availability_zones.disable('us-east-1b')
85
+ #
86
+ # @example list enabled availability zoens
87
+ #
88
+ # load_balancer.availability_zones.each do |zone|
89
+ # puts zone.name
90
+ # end
91
+ #
92
+ # @return [AvailabilityZoneCollection] Returns a collection that
93
+ # represents this load balancer's availability zones. You can
94
+ # use this collection to enable and disable availability zones.
95
+ def availability_zones
96
+ AvailabilityZoneCollection.new(self)
97
+ end
98
+
99
+ # @return [ListenerCollection]
100
+ def listeners
101
+ ListenerCollection.new(self)
102
+ end
103
+
104
+ # @return [PolicyCollection]
105
+ def policies
106
+ LoadBalancerPolicyCollection.new(self)
107
+ end
108
+
109
+ # @return [InstanceCollection]
110
+ def instances
111
+ InstanceCollection.new(self)
112
+ end
113
+
114
+ # @return [BackendServerPolicyCollection]
115
+ def backend_server_policies
116
+ BackendServerPolicyCollection.new(self)
117
+ end
118
+
119
+ # Updates the configuration that drives the instance health checks.
120
+ #
121
+ # You only need to pass the options you want to change. You can
122
+ # call {#health_check_configuration} if you want to see what the
123
+ # current configuration values are.
124
+ #
125
+ # @param [Hash] options
126
+ #
127
+ # @option options [Integer] :healthy_threshold Specifies the number of
128
+ # consecutive health probe successes required before moving the
129
+ # instance to the Healthy state.
130
+ #
131
+ # @option options [Integer] :unhealthy_threshold Specifies the number
132
+ # of consecutive health probe failures required before moving the
133
+ # instance to the Unhealthy state.
134
+ #
135
+ # @option options [Integer] :interval Specifies the approximate
136
+ # interval, in seconds, between health checks of an individual
137
+ # instance.
138
+ #
139
+ # @option options [Integer] :timeout Specifies the amount of time, in
140
+ # seconds, during which no response means a failed health probe.
141
+ # This value must be less than the +:interval+ value.
142
+ #
143
+ # @option options [String] :target Specifies the instance being checked.
144
+ #
145
+ # This option should be formatted like: "TCP:80"
146
+ #
147
+ # * The protocol is either TCP, HTTP, HTTPS, or SSL.
148
+ # * The range of valid ports is one (1) through 65535.
149
+ #
150
+ # TCP is the default, specified as a TCP: port pair, for example
151
+ # "TCP:5000". In this case a healthcheck simply attempts to open a
152
+ # TCP connection to the instance on the specified port. Failure to
153
+ # connect within the configured timeout is considered unhealthy.
154
+ #
155
+ # SSL is also specified as SSL: port pair, for example, SSL:5000.
156
+ # For HTTP or HTTPS protocol, the situation is different. You have
157
+ # to include a ping path in the string. HTTP is specified as a
158
+ # HTTP:port;/;PathToPing; grouping, for example
159
+ # "HTTP:80/weather/us/wa/seattle". In this case, a HTTP GET request
160
+ # is issued to the instance on the given port and path. Any answer
161
+ # other than "200 OK" within the timeout period is considered
162
+ # unhealthy.
163
+ #
164
+ # The total length of the HTTP ping target needs to be 1024 16-bit
165
+ # Unicode characters or less.
166
+ #
167
+ def configure_health_check options = {}
168
+
169
+ new_config = health_check_configuration.merge(options)
170
+
171
+ response = client.configure_health_check(
172
+ :load_balancer_name => name,
173
+ :health_check => new_config)
174
+
175
+ new_config
176
+
177
+ end
178
+
179
+ # Returns a hash of the various health probes conducted on the
180
+ # load balancer instances. The following entries are returned:
181
+ #
182
+ # * +:healthy_threshold+
183
+ # * +:unhealthy_threshold+
184
+ # * +:interval+
185
+ # * +:target+
186
+ # * +:timeout+
187
+ #
188
+ # See {#configure_health_check} for more details on what each of the
189
+ # configuration values mean.
190
+ #
191
+ # @return [Hash]
192
+ #
193
+ def health_check_configuration
194
+ cfg = health_check_description
195
+ {
196
+ :healthy_threshold => cfg.healthy_threshold,
197
+ :unhealthy_threshold => cfg.unhealthy_threshold,
198
+ :interval => cfg.interval,
199
+ :target => cfg.target,
200
+ :timeout => cfg.timeout,
201
+ }
202
+ end
203
+
204
+ # Generally you don't need to call this method, rather you can
205
+ # just pass the load balancer as a source to the various
206
+ # authorize and revoke methods of {EC2::SecurityGroup}:
207
+ #
208
+ # security_group.authorize_ingress(load_balancer)
209
+ #
210
+ # security_group.revoke_ingress(load_balancer)
211
+ #
212
+ # @return [Hash] Returns a hash that can be passed to the following
213
+ # {EC2::SecurityGroup} methods as a source:
214
+ #
215
+ # * {EC2::SecurityGroup#authorize_ingress}
216
+ # * {EC2::SecurityGroup#authorize_egress}
217
+ #
218
+ def source_security_group
219
+ {
220
+ :group_name => security_group_description.group_name,
221
+ :user_id => security_group_description.owner_alias,
222
+ }
223
+ end
224
+
225
+ # @return [Boolean] Returns true if the load balancer exists.
226
+ def exists?
227
+ client.describe_load_balancers(:load_balancer_names => [name])
228
+ true
229
+ rescue Errors::LoadBalancerNotFound
230
+ false
231
+ end
232
+
233
+ # Deletes the load balancer.
234
+ # @return [nil]
235
+ def delete
236
+ client.delete_load_balancer(:load_balancer_name => name)
237
+ nil
238
+ end
239
+
240
+ protected
241
+ def resource_identifiers
242
+ [[:load_balancer_name,name]]
243
+ end
244
+
245
+ protected
246
+ def get_resource attr_name
247
+ # describing all, makes memoization more efficient
248
+ client.describe_load_balancers
249
+ end
250
+
251
+ end
252
+ end
253
+ end
@@ -0,0 +1,113 @@
1
+ # Copyright 2011-2012 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 ELB
16
+
17
+ class LoadBalancerCollection
18
+
19
+ include ListenerOpts
20
+ include Core::Collection::Simple
21
+
22
+ # Creates and returns a load balancer. A load balancer requires:
23
+ #
24
+ # * a unique name
25
+ # * at least one availability zone
26
+ # * at least one listener
27
+ #
28
+ # An example that creates a load balancer in two availability zones
29
+ # with a single listener:
30
+ #
31
+ # load_balancer = elb.load_balancers.create('my-load-balancer',
32
+ # :availability_zones => %w(us-east-1a us-east-1b),
33
+ # :listeners => [{
34
+ # :port => 80,
35
+ # :protocol => :http,
36
+ # :instance_port => 80,
37
+ # :instance_protocol => :http,
38
+ # }])
39
+ #
40
+ # @param [String] name The name of your load balancer. The name must
41
+ # be unique within your set of load balancers.
42
+ #
43
+ # @param [Hash] options
44
+ #
45
+ # @option options [required,Array] :availability_zones An array of
46
+ # one or more availability zones. Values may be availability zone
47
+ # name strings, or {AWS::EC2::AvailabilityZone} objects.
48
+ #
49
+ # @option options [required,Array] :listeners An array of load balancer
50
+ # listener options. Each value must be an array with the following
51
+ # keys:
52
+ #
53
+ # +:port+
54
+ # +:protocol+
55
+ # +:instance_port+
56
+ # +:instance_protocol+
57
+ #
58
+ # Port values should be integers, and protocols should be symbols or
59
+ # strings (e.g. :http, or 'HTTP'). See {ListenerCollection#create}
60
+ # for more detailed description of each option.
61
+ #
62
+ # @option options [String,IAM::ServerCertificate] :server_certificate (nil)
63
+ # The ARN string of an IAM::ServerCertifcate or an
64
+ # IAM::ServerCertificate object. Reqruied for HTTPs listeners.
65
+ #
66
+ def create name, options = {}
67
+
68
+ zones = [options[:availability_zones]].flatten.collect do |zone|
69
+ zone.is_a?(EC2::AvailabilityZone) ? zone.name : zone
70
+ end
71
+
72
+ listeners = [options[:listeners]].flatten.collect do |listener_opts|
73
+ format_listener_opts(listener_opts)
74
+ end
75
+
76
+ response = client.create_load_balancer(
77
+ :load_balancer_name => name.to_s,
78
+ :availability_zones => zones,
79
+ :listeners => listeners)
80
+
81
+ opts = {}
82
+ opts[:config] = config
83
+ opts[:dns_name] = response.dns_name
84
+
85
+ LoadBalancer.new(name, opts)
86
+
87
+ end
88
+
89
+ # @return [LoadBalancer] Returns the load balancer with the given
90
+ # name. This does not make a request, just returns a reference.
91
+ def [] name
92
+ LoadBalancer.new(name, :config => config)
93
+ end
94
+
95
+ protected
96
+ def _each_item options = {}, &block
97
+ response = client.describe_load_balancers
98
+ response.load_balancer_descriptions.each do |description|
99
+
100
+ load_balancer = LoadBalancer.new_from(
101
+ :describe_load_balancers,
102
+ description,
103
+ description.load_balancer_name,
104
+ :config => config)
105
+
106
+ yield(load_balancer)
107
+
108
+ end
109
+ end
110
+
111
+ end
112
+ end
113
+ end
@@ -0,0 +1,93 @@
1
+ # Copyright 2011-2012 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 ELB
16
+ class LoadBalancerPolicy < Core::Resource
17
+
18
+ # @private
19
+ def initialize load_balancer, name, options = {}
20
+ @load_balancer = load_balancer
21
+ super(load_balancer, options.merge(:name => name.to_s))
22
+ end
23
+
24
+ # @return [LoadBalancer] Returns the load balancer this policy belongs to.
25
+ attr_reader :load_balancer
26
+
27
+ attribute :name, :static => true, :as => :policy_name
28
+
29
+ attribute :type, :static => true, :as => :policy_type_name
30
+
31
+ attribute :policy_attribute_descriptions, :static => true
32
+
33
+ protected :policy_attribute_descriptions
34
+
35
+ populates_from(:describe_load_balancer_policies) do |resp|
36
+ if resp.request_options[:load_balancer_name] == load_balancer.name
37
+ resp.policy_descriptions.find do |desc|
38
+ desc.policy_name == name
39
+ end
40
+ end
41
+ end
42
+
43
+ # @return [Hash] Returns a hash of policy attributes. Keys are
44
+ # policy attribute names, and values are arrays one or more policy
45
+ # attribute values.
46
+ def attributes
47
+ attributes = {}
48
+ policy_attribute_descriptions.each do |desc|
49
+ attributes[desc.attribute_name] ||= []
50
+ attributes[desc.attribute_name] << desc.attribute_value
51
+ end
52
+ attributes
53
+ end
54
+
55
+ # Deletes this load balancer policy.
56
+ # @return [nil]
57
+ def delete
58
+
59
+ client.delete_load_balancer_policy(
60
+ :load_balancer_name => load_balancer.name,
61
+ :policy_name => name)
62
+
63
+ nil
64
+
65
+ end
66
+
67
+ # Useful for determining if a policy with the given name exists:
68
+ #
69
+ # load_balancer.policies['my-policy-name'].exists? # => true/false
70
+ #
71
+ # @return [Boolean] Returns true this policy's load balancer has a
72
+ # policy with this name.
73
+ def exists?
74
+ r = get_resource
75
+ r.policy_descriptions.find{|d| d.policy_name == name } ? true : false
76
+ rescue AWS::ELB::Errors::LoadBalancerNotFound
77
+ false
78
+ end
79
+
80
+ protected
81
+ def resource_identifiers
82
+ [[:load_balancer_name, load_balancer.name],[:policy_name, name]]
83
+ end
84
+
85
+ protected
86
+ def get_resource attr_name = nil
87
+ client.describe_load_balancer_policies(
88
+ :load_balancer_name => load_balancer.name)
89
+ end
90
+
91
+ end
92
+ end
93
+ end