aws-sdk 1.8.5 → 1.9.0

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 (386) hide show
  1. checksums.yaml +7 -0
  2. data/.yardopts +1 -0
  3. data/README.rdoc +8 -0
  4. data/lib/aws-sdk.rb +39 -35
  5. data/lib/aws/api_config/CloudFront-2012-07-01.yml +2398 -0
  6. data/lib/aws/api_config/DirectConnect-2012-10-25.yml +475 -0
  7. data/lib/aws/api_config/DynamoDB-2011-12-05.yml +8 -0
  8. data/lib/aws/api_config/DynamoDB-2012-08-10.yml +1516 -0
  9. data/lib/aws/api_config/OpsWorks-2013-02-18.yml +2 -2
  10. data/lib/aws/auto_scaling.rb +44 -44
  11. data/lib/aws/auto_scaling/activity.rb +1 -1
  12. data/lib/aws/auto_scaling/activity_collection.rb +14 -15
  13. data/lib/aws/auto_scaling/client.rb +277 -277
  14. data/lib/aws/auto_scaling/config.rb +1 -1
  15. data/lib/aws/auto_scaling/group.rb +35 -36
  16. data/lib/aws/auto_scaling/group_collection.rb +10 -10
  17. data/lib/aws/auto_scaling/group_options.rb +19 -19
  18. data/lib/aws/auto_scaling/instance.rb +27 -27
  19. data/lib/aws/auto_scaling/instance_collection.rb +10 -10
  20. data/lib/aws/auto_scaling/launch_configuration.rb +3 -3
  21. data/lib/aws/auto_scaling/launch_configuration_collection.rb +1 -1
  22. data/lib/aws/auto_scaling/notification_configuration.rb +2 -2
  23. data/lib/aws/auto_scaling/notification_configuration_collection.rb +37 -38
  24. data/lib/aws/auto_scaling/scaling_policy.rb +3 -3
  25. data/lib/aws/auto_scaling/scaling_policy_collection.rb +6 -6
  26. data/lib/aws/auto_scaling/scaling_policy_options.rb +8 -7
  27. data/lib/aws/auto_scaling/scheduled_action.rb +3 -3
  28. data/lib/aws/auto_scaling/scheduled_action_collection.rb +28 -28
  29. data/lib/aws/auto_scaling/tag_collection.rb +30 -28
  30. data/lib/aws/cloud_formation.rb +95 -94
  31. data/lib/aws/cloud_formation/client.rb +136 -133
  32. data/lib/aws/cloud_formation/config.rb +1 -1
  33. data/lib/aws/cloud_formation/stack.rb +37 -37
  34. data/lib/aws/cloud_formation/stack_collection.rb +28 -27
  35. data/lib/aws/cloud_formation/stack_event.rb +9 -11
  36. data/lib/aws/cloud_formation/stack_output.rb +1 -1
  37. data/lib/aws/cloud_formation/stack_resource.rb +6 -6
  38. data/lib/aws/cloud_formation/stack_resource_collection.rb +11 -12
  39. data/lib/aws/cloud_formation/stack_resource_summary_collection.rb +11 -11
  40. data/lib/aws/cloud_formation/stack_summary_collection.rb +39 -39
  41. data/lib/aws/cloud_front.rb +21 -21
  42. data/lib/aws/cloud_front/client.rb +853 -652
  43. data/lib/aws/cloud_front/request.rb +3 -0
  44. data/lib/aws/cloud_search.rb +22 -22
  45. data/lib/aws/cloud_search/client.rb +322 -315
  46. data/lib/aws/cloud_search/config.rb +1 -1
  47. data/lib/aws/cloud_watch.rb +39 -39
  48. data/lib/aws/cloud_watch/alarm.rb +55 -37
  49. data/lib/aws/cloud_watch/alarm_collection.rb +18 -18
  50. data/lib/aws/cloud_watch/alarm_history_item_collection.rb +2 -2
  51. data/lib/aws/cloud_watch/client.rb +360 -146
  52. data/lib/aws/cloud_watch/config.rb +1 -1
  53. data/lib/aws/cloud_watch/metric.rb +15 -15
  54. data/lib/aws/cloud_watch/metric_alarm_collection.rb +17 -17
  55. data/lib/aws/cloud_watch/metric_collection.rb +16 -16
  56. data/lib/aws/cloud_watch/metric_statistics.rb +11 -11
  57. data/lib/aws/core.rb +243 -225
  58. data/lib/aws/core/async_handle.rb +13 -13
  59. data/lib/aws/core/cacheable.rb +14 -15
  60. data/lib/aws/core/client.rb +40 -15
  61. data/lib/aws/core/collection.rb +42 -46
  62. data/lib/aws/core/collection/with_limit_and_next_token.rb +1 -1
  63. data/lib/aws/core/collection/with_next_token.rb +1 -1
  64. data/lib/aws/core/configuration.rb +97 -133
  65. data/lib/aws/core/credential_providers.rb +16 -16
  66. data/lib/aws/core/data.rb +23 -23
  67. data/lib/aws/core/http/connection_pool.rb +348 -0
  68. data/lib/aws/core/http/net_http_handler.rb +17 -26
  69. data/lib/aws/core/http/patch.rb +102 -0
  70. data/lib/aws/core/http/request.rb +13 -19
  71. data/lib/aws/core/http/response.rb +2 -2
  72. data/lib/aws/core/lazy_error_classes.rb +17 -17
  73. data/lib/aws/core/log_formatter.rb +70 -104
  74. data/lib/aws/core/options/json_serializer.rb +1 -1
  75. data/lib/aws/core/options/validator.rb +4 -4
  76. data/lib/aws/core/page_result.rb +8 -8
  77. data/lib/aws/core/policy.rb +49 -49
  78. data/lib/aws/core/region.rb +72 -0
  79. data/lib/aws/core/region_collection.rb +106 -0
  80. data/lib/aws/core/resource.rb +5 -5
  81. data/lib/aws/core/response.rb +20 -17
  82. data/lib/aws/core/rest_request_builder.rb +4 -4
  83. data/lib/aws/core/service_interface.rb +24 -2
  84. data/lib/aws/core/signature/version_3.rb +2 -2
  85. data/lib/aws/core/uri_escape.rb +1 -1
  86. data/lib/aws/core/xml/frame_stack.rb +1 -1
  87. data/lib/aws/core/xml/grammar.rb +3 -4
  88. data/lib/aws/core/xml/sax_handlers/libxml.rb +2 -2
  89. data/lib/aws/core/xml/sax_handlers/nokogiri.rb +3 -3
  90. data/lib/aws/core/xml/sax_handlers/rexml.rb +5 -5
  91. data/lib/aws/core/xml/stub.rb +9 -9
  92. data/lib/aws/data_pipeline.rb +21 -21
  93. data/lib/aws/data_pipeline/client.rb +189 -133
  94. data/lib/aws/data_pipeline/config.rb +1 -1
  95. data/lib/aws/direct_connect.rb +74 -0
  96. data/lib/aws/direct_connect/client.rb +253 -0
  97. data/lib/aws/direct_connect/config.rb +18 -0
  98. data/lib/aws/direct_connect/errors.rb +22 -0
  99. data/lib/aws/direct_connect/request.rb +27 -0
  100. data/lib/aws/dynamo_db.rb +71 -69
  101. data/lib/aws/dynamo_db/attribute_collection.rb +53 -58
  102. data/lib/aws/dynamo_db/batch_get.rb +23 -23
  103. data/lib/aws/dynamo_db/batch_write.rb +43 -43
  104. data/lib/aws/dynamo_db/binary.rb +9 -9
  105. data/lib/aws/dynamo_db/client.rb +494 -509
  106. data/lib/aws/dynamo_db/client_base.rb +91 -0
  107. data/lib/aws/dynamo_db/client_v2.rb +825 -0
  108. data/lib/aws/dynamo_db/config.rb +1 -1
  109. data/lib/aws/dynamo_db/item.rb +10 -10
  110. data/lib/aws/dynamo_db/item_collection.rb +75 -75
  111. data/lib/aws/dynamo_db/table.rb +85 -85
  112. data/lib/aws/dynamo_db/table_collection.rb +13 -13
  113. data/lib/aws/ec2.rb +132 -142
  114. data/lib/aws/ec2/attachment.rb +31 -36
  115. data/lib/aws/ec2/attachment_collection.rb +1 -1
  116. data/lib/aws/ec2/availability_zone.rb +4 -4
  117. data/lib/aws/ec2/client.rb +2272 -2125
  118. data/lib/aws/ec2/config.rb +1 -1
  119. data/lib/aws/ec2/customer_gateway.rb +6 -6
  120. data/lib/aws/ec2/customer_gateway_collection.rb +6 -6
  121. data/lib/aws/ec2/dhcp_options.rb +3 -3
  122. data/lib/aws/ec2/dhcp_options_collection.rb +10 -10
  123. data/lib/aws/ec2/elastic_ip.rb +15 -15
  124. data/lib/aws/ec2/elastic_ip_collection.rb +11 -15
  125. data/lib/aws/ec2/export_task.rb +4 -4
  126. data/lib/aws/ec2/export_task_collection.rb +11 -11
  127. data/lib/aws/ec2/filtered_collection.rb +6 -8
  128. data/lib/aws/ec2/image.rb +46 -40
  129. data/lib/aws/ec2/image_collection.rb +44 -52
  130. data/lib/aws/ec2/instance.rb +64 -62
  131. data/lib/aws/ec2/instance_collection.rb +47 -50
  132. data/lib/aws/ec2/internet_gateway.rb +6 -6
  133. data/lib/aws/ec2/internet_gateway/attachment.rb +13 -13
  134. data/lib/aws/ec2/internet_gateway_collection.rb +3 -3
  135. data/lib/aws/ec2/key_pair.rb +3 -3
  136. data/lib/aws/ec2/key_pair_collection.rb +12 -12
  137. data/lib/aws/ec2/network_acl.rb +39 -39
  138. data/lib/aws/ec2/network_acl/association.rb +2 -2
  139. data/lib/aws/ec2/network_acl/entry.rb +22 -22
  140. data/lib/aws/ec2/network_acl_collection.rb +2 -2
  141. data/lib/aws/ec2/network_interface.rb +13 -4
  142. data/lib/aws/ec2/network_interface/attachment.rb +3 -3
  143. data/lib/aws/ec2/network_interface_collection.rb +5 -5
  144. data/lib/aws/ec2/permission_collection.rb +1 -1
  145. data/lib/aws/ec2/region.rb +6 -6
  146. data/lib/aws/ec2/region_collection.rb +1 -1
  147. data/lib/aws/ec2/reserved_instances_collection.rb +2 -2
  148. data/lib/aws/ec2/reserved_instances_offering_collection.rb +2 -2
  149. data/lib/aws/ec2/resource_tag_collection.rb +5 -5
  150. data/lib/aws/ec2/route_table.rb +14 -14
  151. data/lib/aws/ec2/route_table/association.rb +22 -22
  152. data/lib/aws/ec2/route_table/route.rb +8 -8
  153. data/lib/aws/ec2/route_table_collection.rb +3 -3
  154. data/lib/aws/ec2/security_group.rb +39 -41
  155. data/lib/aws/ec2/security_group_collection.rb +19 -21
  156. data/lib/aws/ec2/snapshot.rb +3 -3
  157. data/lib/aws/ec2/snapshot_collection.rb +11 -12
  158. data/lib/aws/ec2/subnet.rb +2 -2
  159. data/lib/aws/ec2/subnet_collection.rb +17 -17
  160. data/lib/aws/ec2/tag_collection.rb +1 -1
  161. data/lib/aws/ec2/tagged_collection.rb +7 -7
  162. data/lib/aws/ec2/tagged_item.rb +10 -10
  163. data/lib/aws/ec2/volume.rb +16 -16
  164. data/lib/aws/ec2/volume_collection.rb +9 -12
  165. data/lib/aws/ec2/vpc.rb +6 -6
  166. data/lib/aws/ec2/vpc_collection.rb +10 -10
  167. data/lib/aws/ec2/vpn_connection.rb +4 -4
  168. data/lib/aws/ec2/vpn_connection/telemetry.rb +1 -1
  169. data/lib/aws/ec2/vpn_connection_collection.rb +6 -6
  170. data/lib/aws/ec2/vpn_gateway.rb +2 -2
  171. data/lib/aws/ec2/vpn_gateway_collection.rb +5 -5
  172. data/lib/aws/elastic_beanstalk.rb +12 -12
  173. data/lib/aws/elastic_beanstalk/client.rb +376 -368
  174. data/lib/aws/elastic_beanstalk/config.rb +1 -1
  175. data/lib/aws/elastic_transcoder.rb +5 -5
  176. data/lib/aws/elastic_transcoder/client.rb +283 -283
  177. data/lib/aws/elastic_transcoder/config.rb +1 -1
  178. data/lib/aws/elasticache.rb +12 -12
  179. data/lib/aws/elasticache/client.rb +484 -479
  180. data/lib/aws/elasticache/config.rb +1 -1
  181. data/lib/aws/elb.rb +23 -23
  182. data/lib/aws/elb/availability_zone_collection.rb +34 -34
  183. data/lib/aws/elb/backend_server_policy_collection.rb +24 -24
  184. data/lib/aws/elb/client.rb +153 -153
  185. data/lib/aws/elb/config.rb +1 -1
  186. data/lib/aws/elb/errors.rb +1 -1
  187. data/lib/aws/elb/instance_collection.rb +20 -25
  188. data/lib/aws/elb/listener.rb +3 -3
  189. data/lib/aws/elb/listener_collection.rb +8 -8
  190. data/lib/aws/elb/load_balancer.rb +15 -16
  191. data/lib/aws/elb/load_balancer_collection.rb +36 -24
  192. data/lib/aws/elb/load_balancer_policy.rb +1 -1
  193. data/lib/aws/elb/load_balancer_policy_collection.rb +5 -5
  194. data/lib/aws/emr.rb +28 -26
  195. data/lib/aws/emr/client.rb +165 -149
  196. data/lib/aws/emr/config.rb +1 -1
  197. data/lib/aws/emr/instance_group.rb +1 -1
  198. data/lib/aws/emr/instance_group_collection.rb +1 -1
  199. data/lib/aws/emr/job_flow.rb +27 -26
  200. data/lib/aws/emr/job_flow_collection.rb +34 -34
  201. data/lib/aws/errors.rb +7 -7
  202. data/lib/aws/glacier.rb +21 -21
  203. data/lib/aws/glacier/archive_collection.rb +2 -2
  204. data/lib/aws/glacier/client.rb +139 -140
  205. data/lib/aws/glacier/config.rb +1 -1
  206. data/lib/aws/glacier/vault.rb +2 -2
  207. data/lib/aws/glacier/vault_collection.rb +1 -1
  208. data/lib/aws/iam.rb +133 -144
  209. data/lib/aws/iam/access_key.rb +17 -17
  210. data/lib/aws/iam/access_key_collection.rb +22 -22
  211. data/lib/aws/iam/account_alias_collection.rb +2 -2
  212. data/lib/aws/iam/client.rb +429 -420
  213. data/lib/aws/iam/collection.rb +1 -1
  214. data/lib/aws/iam/config.rb +2 -2
  215. data/lib/aws/iam/group.rb +8 -8
  216. data/lib/aws/iam/group_collection.rb +16 -16
  217. data/lib/aws/iam/group_policy_collection.rb +6 -6
  218. data/lib/aws/iam/group_user_collection.rb +3 -3
  219. data/lib/aws/iam/mfa_device.rb +1 -1
  220. data/lib/aws/iam/mfa_device_collection.rb +9 -9
  221. data/lib/aws/iam/policy_collection.rb +4 -4
  222. data/lib/aws/iam/resource.rb +2 -2
  223. data/lib/aws/iam/server_certificate.rb +1 -1
  224. data/lib/aws/iam/server_certificate_collection.rb +15 -15
  225. data/lib/aws/iam/signing_certificate.rb +29 -29
  226. data/lib/aws/iam/signing_certificate_collection.rb +23 -23
  227. data/lib/aws/iam/user.rb +33 -38
  228. data/lib/aws/iam/user_collection.rb +27 -27
  229. data/lib/aws/iam/user_group_collection.rb +3 -3
  230. data/lib/aws/iam/user_policy_collection.rb +6 -6
  231. data/lib/aws/iam/virtual_mfa_device.rb +12 -12
  232. data/lib/aws/iam/virtual_mfa_device_collection.rb +4 -4
  233. data/lib/aws/import_export.rb +22 -21
  234. data/lib/aws/import_export/client.rb +47 -43
  235. data/lib/aws/ops_works.rb +5 -5
  236. data/lib/aws/ops_works/client.rb +484 -438
  237. data/lib/aws/ops_works/config.rb +1 -1
  238. data/lib/aws/rails.rb +34 -34
  239. data/lib/aws/rds.rb +18 -18
  240. data/lib/aws/rds/client.rb +1286 -1277
  241. data/lib/aws/rds/config.rb +1 -1
  242. data/lib/aws/rds/db_instance.rb +15 -4
  243. data/lib/aws/rds/db_snapshot.rb +1 -1
  244. data/lib/aws/record.rb +50 -24
  245. data/lib/aws/record/abstract_base.rb +52 -60
  246. data/lib/aws/record/attributes.rb +79 -79
  247. data/lib/aws/record/conversion.rb +1 -1
  248. data/lib/aws/record/dirty_tracking.rb +69 -67
  249. data/lib/aws/record/errors.rb +21 -21
  250. data/lib/aws/record/exceptions.rb +2 -2
  251. data/lib/aws/record/hash_model.rb +20 -21
  252. data/lib/aws/record/hash_model/attributes.rb +13 -15
  253. data/lib/aws/record/hash_model/finder_methods.rb +46 -46
  254. data/lib/aws/record/hash_model/scope.rb +31 -31
  255. data/lib/aws/record/model.rb +136 -136
  256. data/lib/aws/record/model/attributes.rb +57 -59
  257. data/lib/aws/record/model/finder_methods.rb +67 -67
  258. data/lib/aws/record/model/scope.rb +48 -49
  259. data/lib/aws/record/naming.rb +1 -1
  260. data/lib/aws/record/scope.rb +23 -19
  261. data/lib/aws/record/validations.rb +253 -271
  262. data/lib/aws/record/validator.rb +3 -3
  263. data/lib/aws/record/validators/acceptance.rb +1 -3
  264. data/lib/aws/record/validators/block.rb +1 -3
  265. data/lib/aws/record/validators/confirmation.rb +1 -3
  266. data/lib/aws/record/validators/count.rb +2 -4
  267. data/lib/aws/record/validators/exclusion.rb +2 -4
  268. data/lib/aws/record/validators/format.rb +2 -4
  269. data/lib/aws/record/validators/inclusion.rb +1 -3
  270. data/lib/aws/record/validators/length.rb +5 -7
  271. data/lib/aws/record/validators/method.rb +1 -3
  272. data/lib/aws/record/validators/numericality.rb +6 -8
  273. data/lib/aws/record/validators/presence.rb +1 -3
  274. data/lib/aws/redshift.rb +14 -14
  275. data/lib/aws/redshift/client.rb +596 -592
  276. data/lib/aws/redshift/config.rb +1 -1
  277. data/lib/aws/route_53.rb +30 -30
  278. data/lib/aws/route_53/change_batch.rb +7 -7
  279. data/lib/aws/route_53/client.rb +188 -152
  280. data/lib/aws/route_53/hosted_zone.rb +4 -4
  281. data/lib/aws/route_53/hosted_zone_collection.rb +7 -7
  282. data/lib/aws/route_53/resource_record_set.rb +10 -10
  283. data/lib/aws/route_53/resource_record_set_collection.rb +6 -6
  284. data/lib/aws/s3.rb +79 -79
  285. data/lib/aws/s3/access_control_list.rb +44 -36
  286. data/lib/aws/s3/acl_options.rb +51 -51
  287. data/lib/aws/s3/bucket.rb +146 -146
  288. data/lib/aws/s3/bucket_collection.rb +21 -21
  289. data/lib/aws/s3/bucket_lifecycle_configuration.rb +81 -82
  290. data/lib/aws/s3/bucket_tag_collection.rb +4 -2
  291. data/lib/aws/s3/cipher_io.rb +5 -4
  292. data/lib/aws/s3/client.rb +89 -84
  293. data/lib/aws/s3/client/xml.rb +1 -1
  294. data/lib/aws/s3/config.rb +7 -1
  295. data/lib/aws/s3/cors_rule.rb +2 -0
  296. data/lib/aws/s3/cors_rule_collection.rb +42 -40
  297. data/lib/aws/s3/data_options.rb +16 -11
  298. data/lib/aws/s3/encryption_utils.rb +2 -2
  299. data/lib/aws/s3/errors.rb +7 -7
  300. data/lib/aws/s3/multipart_upload.rb +30 -33
  301. data/lib/aws/s3/multipart_upload_collection.rb +8 -6
  302. data/lib/aws/s3/object_collection.rb +35 -35
  303. data/lib/aws/s3/object_metadata.rb +6 -6
  304. data/lib/aws/s3/object_version.rb +4 -4
  305. data/lib/aws/s3/object_version_collection.rb +15 -15
  306. data/lib/aws/s3/policy.rb +2 -2
  307. data/lib/aws/s3/prefixed_collection.rb +9 -5
  308. data/lib/aws/s3/presigned_post.rb +39 -37
  309. data/lib/aws/s3/request.rb +11 -11
  310. data/lib/aws/s3/s3_object.rb +210 -200
  311. data/lib/aws/s3/tree.rb +25 -27
  312. data/lib/aws/s3/tree/child_collection.rb +3 -3
  313. data/lib/aws/s3/tree/leaf_node.rb +2 -2
  314. data/lib/aws/s3/tree/parent.rb +1 -1
  315. data/lib/aws/s3/website_configuration.rb +13 -13
  316. data/lib/aws/simple_db.rb +83 -83
  317. data/lib/aws/simple_db/attribute.rb +9 -7
  318. data/lib/aws/simple_db/attribute_collection.rb +22 -13
  319. data/lib/aws/simple_db/client.rb +107 -107
  320. data/lib/aws/simple_db/config.rb +7 -1
  321. data/lib/aws/simple_db/consistent_read_option.rb +5 -5
  322. data/lib/aws/simple_db/domain.rb +4 -2
  323. data/lib/aws/simple_db/domain_collection.rb +4 -4
  324. data/lib/aws/simple_db/domain_metadata.rb +5 -5
  325. data/lib/aws/simple_db/errors.rb +9 -9
  326. data/lib/aws/simple_db/item.rb +5 -5
  327. data/lib/aws/simple_db/item_collection.rb +83 -81
  328. data/lib/aws/simple_db/item_data.rb +4 -4
  329. data/lib/aws/simple_db/put_attributes.rb +3 -3
  330. data/lib/aws/simple_email_service.rb +140 -140
  331. data/lib/aws/simple_email_service/client.rb +82 -76
  332. data/lib/aws/simple_email_service/config.rb +1 -2
  333. data/lib/aws/simple_email_service/email_address_collection.rb +3 -3
  334. data/lib/aws/simple_email_service/identity.rb +8 -8
  335. data/lib/aws/simple_email_service/quotas.rb +8 -6
  336. data/lib/aws/simple_workflow.rb +106 -106
  337. data/lib/aws/simple_workflow/activity_task.rb +15 -22
  338. data/lib/aws/simple_workflow/activity_task_collection.rb +15 -15
  339. data/lib/aws/simple_workflow/activity_type.rb +23 -23
  340. data/lib/aws/simple_workflow/activity_type_collection.rb +23 -23
  341. data/lib/aws/simple_workflow/client.rb +1004 -956
  342. data/lib/aws/simple_workflow/config.rb +1 -1
  343. data/lib/aws/simple_workflow/count.rb +5 -5
  344. data/lib/aws/simple_workflow/decision_task.rb +129 -129
  345. data/lib/aws/simple_workflow/decision_task_collection.rb +59 -59
  346. data/lib/aws/simple_workflow/domain.rb +11 -11
  347. data/lib/aws/simple_workflow/domain_collection.rb +26 -26
  348. data/lib/aws/simple_workflow/history_event.rb +32 -32
  349. data/lib/aws/simple_workflow/history_event_collection.rb +3 -3
  350. data/lib/aws/simple_workflow/option_formatters.rb +5 -5
  351. data/lib/aws/simple_workflow/request.rb +1 -1
  352. data/lib/aws/simple_workflow/resource.rb +1 -1
  353. data/lib/aws/simple_workflow/type.rb +8 -8
  354. data/lib/aws/simple_workflow/type_collection.rb +15 -15
  355. data/lib/aws/simple_workflow/workflow_execution.rb +70 -72
  356. data/lib/aws/simple_workflow/workflow_execution_collection.rb +130 -130
  357. data/lib/aws/simple_workflow/workflow_type.rb +27 -25
  358. data/lib/aws/simple_workflow/workflow_type_collection.rb +20 -20
  359. data/lib/aws/sns.rb +25 -25
  360. data/lib/aws/sns/client.rb +55 -55
  361. data/lib/aws/sns/config.rb +1 -1
  362. data/lib/aws/sns/policy.rb +1 -1
  363. data/lib/aws/sns/subscription.rb +7 -7
  364. data/lib/aws/sns/subscription_collection.rb +5 -5
  365. data/lib/aws/sns/topic.rb +49 -49
  366. data/lib/aws/sns/topic_collection.rb +2 -2
  367. data/lib/aws/sns/topic_subscription_collection.rb +5 -5
  368. data/lib/aws/sqs.rb +20 -20
  369. data/lib/aws/sqs/client.rb +78 -78
  370. data/lib/aws/sqs/config.rb +1 -1
  371. data/lib/aws/sqs/errors.rb +12 -12
  372. data/lib/aws/sqs/queue.rb +66 -67
  373. data/lib/aws/sqs/queue_collection.rb +16 -8
  374. data/lib/aws/sqs/received_message.rb +7 -6
  375. data/lib/aws/storage_gateway.rb +21 -21
  376. data/lib/aws/storage_gateway/client.rb +269 -202
  377. data/lib/aws/storage_gateway/config.rb +1 -1
  378. data/lib/aws/sts.rb +10 -8
  379. data/lib/aws/sts/client.rb +35 -35
  380. data/lib/aws/sts/session.rb +3 -3
  381. data/lib/aws/version.rb +1 -2
  382. metadata +23 -21
  383. data/lib/aws/core/autoloader.rb +0 -64
  384. data/lib/net/http/connection_pool.rb +0 -226
  385. data/lib/net/http/connection_pool/connection.rb +0 -189
  386. data/lib/net/http/connection_pool/session.rb +0 -126
@@ -19,7 +19,7 @@ module AWS
19
19
  module Options
20
20
 
21
21
  # Given a hash of serialization rules, a JSONSerializer can convert
22
- # a hash of request options into a JSON document. The request options
22
+ # a hash of request options into a JSON document. The request options
23
23
  # are validated before returning JSON.
24
24
  class JSONSerializer
25
25
 
@@ -18,10 +18,10 @@ module AWS
18
18
  # Given a hash of validation rules, a validator validate request
19
19
  # options. Validations support:
20
20
  #
21
- # * rejecting unknown options
22
- # * ensuring presence of required options
23
- # * validating expected option types (e.g. hash, array, string,
24
- # integer, etc).
21
+ # * rejecting unknown options
22
+ # * ensuring presence of required options
23
+ # * validating expected option types (e.g. hash, array, string,
24
+ # integer, etc).
25
25
  #
26
26
  # After validating, a hash of request options is returned with
27
27
  # with normalized values (with converted types).
@@ -20,16 +20,16 @@ module AWS
20
20
  attr_reader :collection
21
21
 
22
22
  # @return [Integer] Returns the maximum number of results per page.
23
- # The final page in a collection may return fewer than +:per_page+
24
- # items (e.g. +:per_page+ is 10 and there are only 7 items).
23
+ # The final page in a collection may return fewer than `:per_page`
24
+ # items (e.g. `:per_page` is 10 and there are only 7 items).
25
25
  attr_reader :per_page
26
26
 
27
27
  # @return [String] An opaque token that can be passed the #page method
28
28
  # of the collection that returned this page of results. This next
29
- # token behaves as a pseudo offset. If +next_token+ is +nil+ then
29
+ # token behaves as a pseudo offset. If `next_token` is `nil` then
30
30
  # there are no more results for the collection.
31
31
  attr_reader :next_token
32
-
32
+
33
33
  # @param [Collection] collection The collection that was used to
34
34
  # request this page of results. The collection should respond to
35
35
  # #page and accept a :next_token option.
@@ -38,11 +38,11 @@ module AWS
38
38
  # page of results.
39
39
  #
40
40
  # @param [Integer] per_page The number of requested items for this
41
- # page of results. If the count of items is smaller than +per_page+
41
+ # page of results. If the count of items is smaller than `per_page`
42
42
  # then this is the last page of results.
43
43
  #
44
44
  # @param [String] next_token (nil) A token that can be passed to the
45
- #
45
+ #
46
46
  def initialize collection, items, per_page, next_token
47
47
  @collection = collection
48
48
  @per_page = per_page
@@ -60,12 +60,12 @@ module AWS
60
60
  collection.page(:per_page => per_page, :next_token => next_token)
61
61
  end
62
62
 
63
- # @return [Boolean] Returns +true+ if this is the last page of results.
63
+ # @return [Boolean] Returns `true` if this is the last page of results.
64
64
  def last_page?
65
65
  next_token.nil?
66
66
  end
67
67
 
68
- # @return [Boolean] Returns +true+ if there are more pages of results.
68
+ # @return [Boolean] Returns `true` if there are more pages of results.
69
69
  def more?
70
70
  !!next_token
71
71
  end
@@ -20,14 +20,14 @@ module AWS
20
20
 
21
21
  # Represents an access policy for AWS operations and resources. For example:
22
22
  #
23
- # policy = Policy.new do |policy|
24
- # policy.allow(:actions => ['s3:PutObject'],
25
- # :resources => "arn:aws:s3:::mybucket/mykey/*",
26
- # :principals => :any
23
+ # policy = Policy.new
24
+ # policy.allow(
25
+ # :actions => ['s3:PutObject'],
26
+ # :resources => "arn:aws:s3:::mybucket/mykey/*",
27
+ # :principals => :any
27
28
  # ).where(:acl).is("public-read")
28
- # end
29
29
  #
30
- # policy.to_json # => '{ "Version":"2008-10-17", ...'
30
+ # policy.to_json # => '{ "Version":"2008-10-17", ...'
31
31
  #
32
32
  # @see #initialize More ways to construct a policy.
33
33
  # @see http://docs.amazonwebservices.com/AmazonS3/latest/dev/AccessPolicyLanguage_UseCases_s3_a.html Example policies (in JSON).
@@ -52,7 +52,8 @@ module AWS
52
52
  # * With hash arguments:
53
53
  #
54
54
  # Policy.new(:statements => [
55
- # { :effect => :allow,
55
+ # {
56
+ # :effect => :allow,
56
57
  # :actions => :all,
57
58
  # :principals => ["abc123"],
58
59
  # :resources => "mybucket/mykey"
@@ -66,13 +67,11 @@ module AWS
66
67
  # * With a block:
67
68
  #
68
69
  # Policy.new do |policy|
69
- #
70
70
  # policy.allow(
71
71
  # :actions => ['s3:PutObject'],
72
72
  # :resources => "arn:aws:s3:::mybucket/mykey/*",
73
73
  # :principals => :any
74
74
  # ).where(:acl).is("public-read")
75
- #
76
75
  # end
77
76
  #
78
77
  def initialize(opts = {})
@@ -123,8 +122,8 @@ module AWS
123
122
  # Returns a hash representation of the policy. The following
124
123
  # statements are equivalent:
125
124
  #
126
- # policy.to_h.to_json
127
- # policy.to_json
125
+ # policy.to_h.to_json
126
+ # policy.to_json
128
127
  #
129
128
  # @return [Hash]
130
129
  def to_h
@@ -151,15 +150,15 @@ module AWS
151
150
  # Convenient syntax for expressing operators in statement
152
151
  # condition blocks. For example, the following:
153
152
  #
154
- # policy.allow.where(:s3_prefix).not("forbidden").
155
- # where(:current_time).lte(Date.today+1)
153
+ # policy.allow.where(:s3_prefix).not("forbidden").
154
+ # where(:current_time).lte(Date.today+1)
156
155
  #
157
156
  # is equivalent to:
158
157
  #
159
- # conditions = Policy::ConditionBlock.new
160
- # conditions.add(:not, :s3_prefix, "forbidden")
161
- # conditions.add(:lte, :current_time, Date.today+1)
162
- # policy.allow(:conditions => conditions)
158
+ # conditions = Policy::ConditionBlock.new
159
+ # conditions.add(:not, :s3_prefix, "forbidden")
160
+ # conditions.add(:lte, :current_time, Date.today+1)
161
+ # policy.allow(:conditions => conditions)
163
162
  #
164
163
  # @see ConditionBlock#add
165
164
  class OperatorBuilder
@@ -192,7 +191,7 @@ module AWS
192
191
 
193
192
  # Adds a condition for the given key. For example:
194
193
  #
195
- # policy.allow(...).where(:current_time).lte(Date.today + 1)
194
+ # policy.allow(...).where(:current_time).lte(Date.today + 1)
196
195
  #
197
196
  # @return [OperatorBuilder]
198
197
  def where(key, operator = nil, *values)
@@ -209,10 +208,11 @@ module AWS
209
208
  # Convenience method for constructing a new statement with the
210
209
  # "Allow" effect and adding it to the policy. For example:
211
210
  #
212
- # policy.allow(:actions => [:put_object],
213
- # :principals => :any,
214
- # :resources => "mybucket/mykey/*").
215
- # where(:acl).is("public-read")
211
+ # policy.allow(
212
+ # :actions => [:put_object],
213
+ # :principals => :any,
214
+ # :resources => "mybucket/mykey/*").
215
+ # where(:acl).is("public-read")
216
216
  #
217
217
  # @option (see Statement#initialize)
218
218
  # @see Statement#initialize
@@ -226,11 +226,11 @@ module AWS
226
226
  # Convenience method for constructing a new statement with the
227
227
  # "Deny" effect and adding it to the policy. For example:
228
228
  #
229
- # policy.deny(
230
- # :actions => [:put_object],
231
- # :principals => :any,
232
- # :resources => "mybucket/mykey/*"
233
- # ).where(:acl).is("public-read")
229
+ # policy.deny(
230
+ # :actions => [:put_object],
231
+ # :principals => :any,
232
+ # :resources => "mybucket/mykey/*"
233
+ # ).where(:acl).is("public-read")
234
234
  #
235
235
  # @param (see Statement#initialize)
236
236
  # @see Statement#initialize
@@ -244,12 +244,12 @@ module AWS
244
244
  # Represents the condition block of a policy. In JSON,
245
245
  # condition blocks look like this:
246
246
  #
247
- # { "StringLike": { "s3:prefix": ["photos/*", "photos.html"] } }
247
+ # { "StringLike": { "s3:prefix": ["photos/*", "photos.html"] } }
248
248
  #
249
249
  # ConditionBlock lets you specify conditions like the above
250
250
  # example using the add method, for example:
251
251
  #
252
- # conditions.add(:like, :s3_prefix, "photos/*", "photos.html")
252
+ # conditions.add(:like, :s3_prefix, "photos/*", "photos.html")
253
253
  #
254
254
  # See the add method documentation for more details about how
255
255
  # to specify keys and operators.
@@ -322,22 +322,22 @@ module AWS
322
322
  # The following list shows which operators are accepted as
323
323
  # symbols and how they are represented in the JSON policy:
324
324
  #
325
- # * +:is+ (StringEquals, NumericEquals, DateEquals, or Bool)
326
- # * +:like+ (StringLike)
327
- # * +:not_like+ (StringNotLike)
328
- # * +:not+ (StringNotEquals, NumericNotEquals, or DateNotEquals)
329
- # * +:greater_than+, +:gt+ (NumericGreaterThan or DateGreaterThan)
330
- # * +:greater_than_equals+, +:gte+
325
+ # * `:is` (StringEquals, NumericEquals, DateEquals, or Bool)
326
+ # * `:like` (StringLike)
327
+ # * `:not_like` (StringNotLike)
328
+ # * `:not` (StringNotEquals, NumericNotEquals, or DateNotEquals)
329
+ # * `:greater_than`, `:gt` (NumericGreaterThan or DateGreaterThan)
330
+ # * `:greater_than_equals`, `:gte`
331
331
  # (NumericGreaterThanEquals or DateGreaterThanEquals)
332
- # * +:less_than+, +:lt+ (NumericLessThan or DateLessThan)
333
- # * +:less_than_equals+, +:lte+
332
+ # * `:less_than`, `:lt` (NumericLessThan or DateLessThan)
333
+ # * `:less_than_equals`, `:lte`
334
334
  # (NumericLessThanEquals or DateLessThanEquals)
335
- # * +:is_ip_address+ (IpAddress)
336
- # * +:not_ip_address+ (NotIpAddress)
337
- # * +:is_arn+ (ArnEquals)
338
- # * +:not_arn+ (ArnNotEquals)
339
- # * +:is_arn_like+ (ArnLike)
340
- # * +:not_arn_like+ (ArnNotLike)
335
+ # * `:is_ip_address` (IpAddress)
336
+ # * `:not_ip_address` (NotIpAddress)
337
+ # * `:is_arn` (ArnEquals)
338
+ # * `:not_arn` (ArnNotEquals)
339
+ # * `:is_arn_like` (ArnLike)
340
+ # * `:not_arn_like` (ArnNotLike)
341
341
  #
342
342
  # @param [Symbol or String] operator The operator used to
343
343
  # compare the key with the value. See above for valid
@@ -348,8 +348,8 @@ module AWS
348
348
  # default, the key is assumed to be in the "aws"
349
349
  # namespace, but if you prefix the symbol name with "s3_"
350
350
  # it will be sent in the "s3" namespace. For example,
351
- # +:s3_prefix+ is sent as "s3:prefix" while
352
- # +:secure_transport+ is sent as "aws:SecureTransport".
351
+ # `:s3_prefix` is sent as "s3:prefix" while
352
+ # `:secure_transport` is sent as "aws:SecureTransport".
353
353
  # See
354
354
  # http://docs.amazonwebservices.com/AmazonS3/latest/dev/UsingResOpsConditions.html
355
355
  # for a list of the available keys for each action in S3.
@@ -731,12 +731,12 @@ module AWS
731
731
  # Symbols are expected to match methods of S3::Client.
732
732
  # @option opts :excluded_actions Action or actions which are
733
733
  # explicitly not affected by this statement. As with
734
- # +:actions+, these may be symbols or strings.
734
+ # `:actions`, these may be symbols or strings.
735
735
  # @option opts [String or array of strings] :resources The
736
736
  # resource(s) affected by the statement. These can be
737
- # expressed as ARNs (e.g. +arn:aws:s3:::mybucket/mykey+)
738
- # or you may omit the +arn:aws:s3:::+ prefix and just give
739
- # the path as +bucket_name/key+. You may use the wildcard
737
+ # expressed as ARNs (e.g. `arn:aws:s3:::mybucket/mykey`)
738
+ # or you may omit the `arn:aws:s3:::` prefix and just give
739
+ # the path as `bucket_name/key`. You may use the wildcard
740
740
  # character "*" to match zero or more characters in the
741
741
  # resource name.
742
742
  # @option opts [ConditionBlock or Hash] :conditions
@@ -0,0 +1,72 @@
1
+ # Copyright 2011-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License"). You
4
+ # may not use this file except in compliance with the License. A copy of
5
+ # the License is located at
6
+ #
7
+ # http://aws.amazon.com/apache2.0/
8
+ #
9
+ # or in the "license" file accompanying this file. This file is
10
+ # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
11
+ # ANY KIND, either express or implied. See the License for the specific
12
+ # language governing permissions and limitations under the License.
13
+
14
+ module AWS
15
+ module Core
16
+
17
+ # Represents an AWS region. A region has a name and provides access
18
+ # to service interface objects.
19
+ #
20
+ # aws = AWS.regions['us-west-1']
21
+ #
22
+ # aws.dynamo_db.tables.map(&:name)
23
+ # aws.ec2.instances.map(&:id)
24
+ #
25
+ # @attr_reader [AutoScaling] auto_scaling
26
+ # @attr_reader [CloudFormation] cloud_formation
27
+ # @attr_reader [CloudFront] cloud_front
28
+ # @attr_reader [CloudSearch] cloud_search
29
+ # @attr_reader [CloudWatch] cloud_watch
30
+ # @attr_reader [DynamoDB] dynamo_db
31
+ # @attr_reader [DataPipeline] data_pipeline
32
+ # @attr_reader [EC2] ec2
33
+ # @attr_reader [ElastiCache] elasticache
34
+ # @attr_reader [ElasticBeanstalk] elastic_beanstalk
35
+ # @attr_reader [ElasticTranscoder] elastic_transcoder
36
+ # @attr_reader [ELB] elb
37
+ # @attr_reader [EMR] emr
38
+ # @attr_reader [Glacier] glacier
39
+ # @attr_reader [IAM] iam
40
+ # @attr_reader [ImportExport] import_export
41
+ # @attr_reader [OpsWorks] ops_works
42
+ # @attr_reader [RDS] rds
43
+ # @attr_reader [Redshift] redshift
44
+ # @attr_reader [Route53] route_53
45
+ # @attr_reader [S3] s3
46
+ # @attr_reader [SimpleDB] simple_db
47
+ # @attr_reader [SimpleEmailService] simple_email_service
48
+ # @attr_reader [SimpleWorkflow] simple_workflow
49
+ # @attr_reader [SNS] sns
50
+ # @attr_reader [SQS] sqs
51
+ # @attr_reader [StorageGateway] storage_gateway
52
+ # @attr_reader [STS] sts
53
+ #
54
+ class Region
55
+
56
+ # @param [String] name
57
+ # @option options [Configuration] :config (AWS.config)
58
+ def initialize name, options = {}
59
+ @name = name
60
+ @config = options[:config] || AWS.config
61
+ @config = @config.with(:region => name)
62
+ end
63
+
64
+ # @return [String] The name of this region (e.g. 'us-west-1').
65
+ attr_reader :name
66
+
67
+ # @return [Configuration]
68
+ attr_reader :config
69
+
70
+ end
71
+ end
72
+ end
@@ -0,0 +1,106 @@
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 'uri'
15
+ require 'net/http'
16
+ require 'json'
17
+
18
+ module AWS
19
+ module Core
20
+
21
+ # Provides a mechnasim to discover available regions. This can useful if
22
+ # you want to perform an operation for a service in every region.
23
+ #
24
+ # # call the EC2 DescribeInstances operation in each region
25
+ # AWS.regions.each do |region|
26
+ # resp = region.ec2.client.describe_instances
27
+ # end
28
+ #
29
+ # You can also use this collection as a shortcut for creating
30
+ # a service interface with a given region.
31
+ #
32
+ # s3 = AWS.regions['us-west-1'].s3
33
+ #
34
+ # This collection enumerates and returns {Region} objects.
35
+ #
36
+ # @see Region
37
+ class RegionCollection
38
+
39
+ include Enumerable
40
+
41
+ # @option options [Configuration] :config (AWS.config)
42
+ # @option options [ServiceInterface] :service (nil)
43
+ # @private
44
+ def initialize options = {}
45
+ @config = options[:config] || AWS.config
46
+ @service = options[:service]
47
+ end
48
+
49
+ # @return [Configuration]
50
+ attr_reader :config
51
+
52
+ # @param [String] name
53
+ # @return [Region] Returns a {Region} with the given name.
54
+ def [] name
55
+ Region.new(name, :config => config)
56
+ end
57
+
58
+ # Enumerates public regions (non US Gov regions).
59
+ # @yieldparam [region] Region
60
+ def each &block
61
+ public_regions.each do |region_name|
62
+ yield(self[region_name])
63
+ end
64
+ end
65
+
66
+ private
67
+
68
+ # @return [Array<String>] Returns an array of non-gov-cloud region names.
69
+ def public_regions
70
+ return ['us-east-1'] if @service and @service.global_endpoint?
71
+ data = self.class.data
72
+ regions = @service ?
73
+ data['services'][@service.endpoint_prefix] :
74
+ data['regions'].keys
75
+ regions.reject{|r| r =~ /us-gov/ }
76
+ end
77
+
78
+ class << self
79
+
80
+ # @return [nil]
81
+ # @private
82
+ def clear!
83
+ @data = nil
84
+ end
85
+
86
+ # @return [Hash] Returns a hash of region metadata.
87
+ # @private
88
+ def data
89
+ @data ||= load_data
90
+ end
91
+
92
+ private
93
+
94
+ # @return [Hash]
95
+ def load_data
96
+ #return JSON.parse(File.read(File.join(AWS::ROOT, 'endpoints.json')))
97
+ host = 'aws-sdk-configurations.amazonwebservices.com'
98
+ path = '/endpoints.json'
99
+ JSON.parse(Net::HTTP.get(host, path))
100
+ end
101
+
102
+ end
103
+
104
+ end
105
+ end
106
+ end