aws-sdk-core 2.0.0.rc1

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 (417) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +7 -0
  3. data/.simplecov +6 -0
  4. data/.travis.yml +12 -0
  5. data/.yardopts +11 -0
  6. data/Gemfile +26 -0
  7. data/LICENSE.txt +12 -0
  8. data/README.md +169 -0
  9. data/Rakefile +15 -0
  10. data/apis/AutoScaling-2011-01-01.json +1852 -0
  11. data/apis/CloudFormation-2010-05-15.json +981 -0
  12. data/apis/CloudFront-2012-05-05.json +3861 -0
  13. data/apis/CloudFront-2013-05-12.json +4593 -0
  14. data/apis/CloudFront-2013-08-26.json +4849 -0
  15. data/apis/CloudSearch-2011-02-01.json +2080 -0
  16. data/apis/CloudWatch-2010-08-01.json +1206 -0
  17. data/apis/DataPipeline-2012-10-29.json +901 -0
  18. data/apis/DirectConnect-2012-10-25.json +825 -0
  19. data/apis/DynamoDB-2011-12-05.json +2857 -0
  20. data/apis/DynamoDB-2012-08-10.json +3127 -0
  21. data/apis/EC2-2013-06-15.json +13600 -0
  22. data/apis/EC2-2013-10-01.json +14574 -0
  23. data/apis/EMR-2009-03-31.json +957 -0
  24. data/apis/ElastiCache-2012-11-15.json +2921 -0
  25. data/apis/ElastiCache-2013-06-15.json +3586 -0
  26. data/apis/ElasticBeanstalk-2010-12-01.json +2225 -0
  27. data/apis/ElasticLoadBalancing-2012-06-01.json +1215 -0
  28. data/apis/ElasticTranscoder-2012-09-25.json +3692 -0
  29. data/apis/Glacier-2012-06-01.json +1058 -0
  30. data/apis/IAM-2010-05-08.json +2863 -0
  31. data/apis/ImportExport-2010-06-01.json +328 -0
  32. data/apis/OpsWorks-2013-02-18.json +3546 -0
  33. data/apis/RDS-2013-01-10.json +6772 -0
  34. data/apis/RDS-2013-02-12.json +7151 -0
  35. data/apis/RDS-2013-05-15.json +7809 -0
  36. data/apis/Redshift-2012-12-01.json +4180 -0
  37. data/apis/Route53-2012-12-12.json +1018 -0
  38. data/apis/S3-2006-03-01.json +3787 -0
  39. data/apis/SDB-2009-04-15.json +539 -0
  40. data/apis/SES-2010-12-01.json +678 -0
  41. data/apis/SNS-2010-03-31.json +870 -0
  42. data/apis/SQS-2012-11-05.json +798 -0
  43. data/apis/STS-2011-06-15.json +352 -0
  44. data/apis/SWF-2012-01-25.json +5451 -0
  45. data/apis/StorageGateway-2012-06-30.json +1696 -0
  46. data/apis/Support-2013-04-15.json +794 -0
  47. data/apis/configuration/endpoints.json +1337 -0
  48. data/apis/source/autoscaling-2011-01-01.json +3215 -0
  49. data/apis/source/autoscaling-2011-01-01.paginators.json +52 -0
  50. data/apis/source/cloudformation-2010-05-15.json +1260 -0
  51. data/apis/source/cloudformation-2010-05-15.paginators.json +24 -0
  52. data/apis/source/cloudfront-2012-05-05.json +6588 -0
  53. data/apis/source/cloudfront-2012-05-05.paginators.json +28 -0
  54. data/apis/source/cloudfront-2013-05-12.json +7614 -0
  55. data/apis/source/cloudfront-2013-05-12.paginators.json +28 -0
  56. data/apis/source/cloudfront-2013-08-26.json +8016 -0
  57. data/apis/source/cloudfront-2013-08-26.paginators.json +28 -0
  58. data/apis/source/cloudsearch-2011-02-01.json +3585 -0
  59. data/apis/source/cloudsearch-2011-02-01.paginators.json +13 -0
  60. data/apis/source/datapipeline-2012-10-29.json +2144 -0
  61. data/apis/source/datapipeline-2012-10-29.paginators.json +25 -0
  62. data/apis/source/directconnect-2012-10-25.json +1271 -0
  63. data/apis/source/directconnect-2012-10-25.paginators.json +16 -0
  64. data/apis/source/dynamodb-2011-12-05.json +4380 -0
  65. data/apis/source/dynamodb-2011-12-05.paginators.json +24 -0
  66. data/apis/source/dynamodb-2012-08-10.json +4839 -0
  67. data/apis/source/dynamodb-2012-08-10.paginators.json +24 -0
  68. data/apis/source/ec2-2013-02-01.json +18820 -0
  69. data/apis/source/ec2-2013-02-01.paginators.json +115 -0
  70. data/apis/source/ec2-2013-06-15.json +18820 -0
  71. data/apis/source/ec2-2013-06-15.paginators.json +115 -0
  72. data/apis/source/ec2-2013-10-01.json +19885 -0
  73. data/apis/source/ec2-2013-10-01.paginators.json +115 -0
  74. data/apis/source/elasticache-2012-11-15.json +4403 -0
  75. data/apis/source/elasticache-2012-11-15.paginators.json +64 -0
  76. data/apis/source/elasticache-2013-06-15.json +5421 -0
  77. data/apis/source/elasticache-2013-06-15.paginators.json +64 -0
  78. data/apis/source/elasticbeanstalk-2010-12-01.json +3151 -0
  79. data/apis/source/elasticbeanstalk-2010-12-01.paginators.json +25 -0
  80. data/apis/source/elasticloadbalancing-2012-06-01.json +2041 -0
  81. data/apis/source/elasticloadbalancing-2012-06-01.paginators.json +18 -0
  82. data/apis/source/elasticmapreduce-2009-03-31.json +1478 -0
  83. data/apis/source/elasticmapreduce-2009-03-31.paginators.json +7 -0
  84. data/apis/source/elastictranscoder-2012-09-25.json +6148 -0
  85. data/apis/source/elastictranscoder-2012-09-25.paginators.json +20 -0
  86. data/apis/source/email-2010-12-01.json +892 -0
  87. data/apis/source/email-2010-12-01.paginators.json +13 -0
  88. data/apis/source/glacier-2012-06-01.json +3147 -0
  89. data/apis/source/glacier-2012-06-01.paginators.json +28 -0
  90. data/apis/source/iam-2010-05-08.json +5857 -0
  91. data/apis/source/iam-2010-05-08.paginators.json +116 -0
  92. data/apis/source/importexport-2010-06-01.json +876 -0
  93. data/apis/source/importexport-2010-06-01.paginators.json +10 -0
  94. data/apis/source/monitoring-2010-08-01.json +1910 -0
  95. data/apis/source/monitoring-2010-08-01.paginators.json +24 -0
  96. data/apis/source/opsworks-2013-02-18.json +5848 -0
  97. data/apis/source/opsworks-2013-02-18.paginators.json +46 -0
  98. data/apis/source/rds-2013-01-10.json +9283 -0
  99. data/apis/source/rds-2013-01-10.paginators.json +105 -0
  100. data/apis/source/rds-2013-02-12.json +9777 -0
  101. data/apis/source/rds-2013-02-12.paginators.json +105 -0
  102. data/apis/source/rds-2013-05-15.json +10618 -0
  103. data/apis/source/rds-2013-05-15.paginators.json +105 -0
  104. data/apis/source/redshift-2012-12-01.json +5742 -0
  105. data/apis/source/redshift-2012-12-01.paginators.json +74 -0
  106. data/apis/source/route53-2012-12-12.json +2067 -0
  107. data/apis/source/route53-2012-12-12.paginators.json +33 -0
  108. data/apis/source/s3-2006-03-01.json +4261 -0
  109. data/apis/source/s3-2006-03-01.paginators.json +46 -0
  110. data/apis/source/sdb-2009-04-15.json +1145 -0
  111. data/apis/source/sdb-2009-04-15.paginators.json +15 -0
  112. data/apis/source/sns-2010-03-31.json +2234 -0
  113. data/apis/source/sns-2010-03-31.paginators.json +19 -0
  114. data/apis/source/sqs-2012-11-05.json +1162 -0
  115. data/apis/source/sqs-2012-11-05.paginators.json +7 -0
  116. data/apis/source/storagegateway-2012-06-30.json +9487 -0
  117. data/apis/source/storagegateway-2012-06-30.paginators.json +28 -0
  118. data/apis/source/sts-2011-06-15.json +627 -0
  119. data/apis/source/support-2013-04-15.json +1261 -0
  120. data/apis/source/support-2013-04-15.paginators.json +31 -0
  121. data/apis/source/swf-2012-01-25.json +8744 -0
  122. data/apis/source/swf-2012-01-25.paginators.json +46 -0
  123. data/aws-sdk-core.gemspec +21 -0
  124. data/bin/aws.rb +156 -0
  125. data/doc-src/images/lastnode.png +0 -0
  126. data/doc-src/images/node.png +0 -0
  127. data/doc-src/images/vline.png +0 -0
  128. data/doc-src/plugins/apis.rb +205 -0
  129. data/doc-src/templates/default/fulldoc/html/css/common.css +90 -0
  130. data/doc-src/templates/default/fulldoc/html/js/tabs.js +21 -0
  131. data/doc-src/templates/default/fulldoc/html/setup.rb +61 -0
  132. data/doc-src/templates/default/layout/html/footer.erb +29 -0
  133. data/doc-src/templates/default/layout/html/setup.rb +3 -0
  134. data/features/autoscaling/client.feature +22 -0
  135. data/features/autoscaling/setup.rb +6 -0
  136. data/features/cloudformation/client.feature +18 -0
  137. data/features/cloudformation/setup.rb +6 -0
  138. data/features/cloudfront/client.feature +21 -0
  139. data/features/cloudfront/setup.rb +6 -0
  140. data/features/cloudsearch/client.feature +18 -0
  141. data/features/cloudsearch/setup.rb +6 -0
  142. data/features/cloudwatch/client.feature +21 -0
  143. data/features/cloudwatch/setup.rb +6 -0
  144. data/features/common/step_definitions.rb +65 -0
  145. data/features/datapipeline/client.feature +18 -0
  146. data/features/datapipeline/setup.rb +6 -0
  147. data/features/directconnect/client.feature +18 -0
  148. data/features/directconnect/setup.rb +6 -0
  149. data/features/dynamodb/client.feature +21 -0
  150. data/features/dynamodb/setup.rb +8 -0
  151. data/features/dynamodb/simplified.feature +32 -0
  152. data/features/dynamodb/step_definitions.rb +3 -0
  153. data/features/ec2/client.feature +21 -0
  154. data/features/ec2/setup.rb +6 -0
  155. data/features/ec2/step_definitions.rb +19 -0
  156. data/features/elasticache/client.feature +18 -0
  157. data/features/elasticache/setup.rb +6 -0
  158. data/features/elasticbeanstalk/client.feature +18 -0
  159. data/features/elasticbeanstalk/setup.rb +6 -0
  160. data/features/elasticloadbalancing/client.feature +18 -0
  161. data/features/elasticloadbalancing/setup.rb +6 -0
  162. data/features/elastictranscoder/client.feature +18 -0
  163. data/features/elastictranscoder/setup.rb +6 -0
  164. data/features/emr/client.feature +18 -0
  165. data/features/emr/setup.rb +6 -0
  166. data/features/env.rb +23 -0
  167. data/features/glacier/client.feature +28 -0
  168. data/features/glacier/setup.rb +16 -0
  169. data/features/glacier/step_definitions.rb +25 -0
  170. data/features/iam/client.feature +18 -0
  171. data/features/iam/setup.rb +6 -0
  172. data/features/importexport/client.feature +18 -0
  173. data/features/importexport/setup.rb +6 -0
  174. data/features/opsworks/client.feature +18 -0
  175. data/features/opsworks/setup.rb +6 -0
  176. data/features/rds/client.feature +18 -0
  177. data/features/rds/setup.rb +6 -0
  178. data/features/redshift/client.feature +18 -0
  179. data/features/redshift/setup.rb +6 -0
  180. data/features/route53/client.feature +18 -0
  181. data/features/route53/setup.rb +6 -0
  182. data/features/s3/buckets.feature +22 -0
  183. data/features/s3/objects.feature +18 -0
  184. data/features/s3/setup.rb +17 -0
  185. data/features/s3/step_definitions.rb +66 -0
  186. data/features/s3/test.png +0 -0
  187. data/features/sdb/client.feature +18 -0
  188. data/features/sdb/setup.rb +6 -0
  189. data/features/ses/client.feature +18 -0
  190. data/features/ses/setup.rb +6 -0
  191. data/features/sns/client.feature +18 -0
  192. data/features/sns/setup.rb +6 -0
  193. data/features/sqs/client.feature +23 -0
  194. data/features/sqs/setup.rb +10 -0
  195. data/features/sqs/step_definitions.rb +18 -0
  196. data/features/storagegateway/client.feature +18 -0
  197. data/features/storagegateway/setup.rb +6 -0
  198. data/features/sts/client.feature +18 -0
  199. data/features/sts/setup.rb +6 -0
  200. data/features/swf/client.feature +21 -0
  201. data/features/swf/setup.rb +6 -0
  202. data/integration-test-config.json.sample +3 -0
  203. data/lib/aws-sdk-core.rb +11 -0
  204. data/lib/aws.rb +175 -0
  205. data/lib/aws/api/base_translator.rb +72 -0
  206. data/lib/aws/api/doc_example.rb +116 -0
  207. data/lib/aws/api/documentor.rb +140 -0
  208. data/lib/aws/api/operation_translator.rb +77 -0
  209. data/lib/aws/api/service_namer.rb +40 -0
  210. data/lib/aws/api/service_translators/cloud_front.rb +19 -0
  211. data/lib/aws/api/service_translators/dynamo_db.rb +7 -0
  212. data/lib/aws/api/service_translators/glacier.rb +37 -0
  213. data/lib/aws/api/service_translators/import_export.rb +15 -0
  214. data/lib/aws/api/service_translators/route53.rb +23 -0
  215. data/lib/aws/api/service_translators/s3.rb +11 -0
  216. data/lib/aws/api/service_translators/sqs.rb +10 -0
  217. data/lib/aws/api/service_translators/swf.rb +7 -0
  218. data/lib/aws/api/shape_translator.rb +96 -0
  219. data/lib/aws/api/translator.rb +150 -0
  220. data/lib/aws/api/visitor.rb +32 -0
  221. data/lib/aws/credentials.rb +35 -0
  222. data/lib/aws/error_handler.rb +48 -0
  223. data/lib/aws/errors.rb +83 -0
  224. data/lib/aws/json/builder.rb +77 -0
  225. data/lib/aws/json/error_parser.rb +20 -0
  226. data/lib/aws/json/parser.rb +67 -0
  227. data/lib/aws/json/serializer.rb +15 -0
  228. data/lib/aws/plugins/credentials.rb +48 -0
  229. data/lib/aws/plugins/dynamodb_extended_retries.rb +22 -0
  230. data/lib/aws/plugins/glacier_api_version.rb +19 -0
  231. data/lib/aws/plugins/glacier_checksums.rb +100 -0
  232. data/lib/aws/plugins/global_configuration.rb +79 -0
  233. data/lib/aws/plugins/json_protocol.rb +30 -0
  234. data/lib/aws/plugins/json_rpc_headers.rb +34 -0
  235. data/lib/aws/plugins/query_protocol.rb +11 -0
  236. data/lib/aws/plugins/regional_endpoint.rb +37 -0
  237. data/lib/aws/plugins/retry_errors.rb +149 -0
  238. data/lib/aws/plugins/s3_bucket_dns.rb +78 -0
  239. data/lib/aws/plugins/s3_complete_multipart_upload_fix.rb +38 -0
  240. data/lib/aws/plugins/s3_get_bucket_location_fix.rb +21 -0
  241. data/lib/aws/plugins/s3_md5s.rb +61 -0
  242. data/lib/aws/plugins/s3_redirects.rb +38 -0
  243. data/lib/aws/plugins/s3_regional_endpoint.rb +19 -0
  244. data/lib/aws/plugins/s3_signer.rb +9 -0
  245. data/lib/aws/plugins/signature_v2.rb +9 -0
  246. data/lib/aws/plugins/signature_v3.rb +9 -0
  247. data/lib/aws/plugins/signature_v4.rb +29 -0
  248. data/lib/aws/plugins/sqs_queue_urls.rb +33 -0
  249. data/lib/aws/plugins/swf_read_timeouts.rb +23 -0
  250. data/lib/aws/plugins/user_agent.rb +32 -0
  251. data/lib/aws/plugins/xml_protocol.rb +11 -0
  252. data/lib/aws/query/builder.rb +102 -0
  253. data/lib/aws/query/param.rb +43 -0
  254. data/lib/aws/query/param_list.rb +91 -0
  255. data/lib/aws/query/serializer.rb +24 -0
  256. data/lib/aws/request_handler.rb +39 -0
  257. data/lib/aws/response_handler.rb +38 -0
  258. data/lib/aws/service.rb +237 -0
  259. data/lib/aws/signers/base.rb +29 -0
  260. data/lib/aws/signers/handler.rb +18 -0
  261. data/lib/aws/signers/s3.rb +162 -0
  262. data/lib/aws/signers/v2.rb +48 -0
  263. data/lib/aws/signers/v3.rb +34 -0
  264. data/lib/aws/signers/v4.rb +142 -0
  265. data/lib/aws/structure.rb +38 -0
  266. data/lib/aws/timestamp_formatter.rb +16 -0
  267. data/lib/aws/util.rb +38 -0
  268. data/lib/aws/version.rb +3 -0
  269. data/lib/aws/xml/builder.rb +134 -0
  270. data/lib/aws/xml/error_parser.rb +24 -0
  271. data/lib/aws/xml/parser.rb +147 -0
  272. data/lib/aws/xml/serializer.rb +16 -0
  273. data/spec/aws/credentials_spec.rb +39 -0
  274. data/spec/aws/iam_spec.rb +17 -0
  275. data/spec/aws/json/builder_spec.rb +183 -0
  276. data/spec/aws/json/parser_spec.rb +238 -0
  277. data/spec/aws/operations_spec.rb +145 -0
  278. data/spec/aws/plugins/credentials_spec.rb +76 -0
  279. data/spec/aws/plugins/global_configuration_spec.rb +56 -0
  280. data/spec/aws/plugins/region_endpoint_spec.rb +77 -0
  281. data/spec/aws/plugins/retry_errors_spec.rb +253 -0
  282. data/spec/aws/query/builder_spec.rb +361 -0
  283. data/spec/aws/query/param_list_spec.rb +80 -0
  284. data/spec/aws/query/param_spec.rb +59 -0
  285. data/spec/aws/service_spec.rb +247 -0
  286. data/spec/aws/signers/v4_spec.rb +141 -0
  287. data/spec/aws/structure_spec.rb +103 -0
  288. data/spec/aws/xml/builder_spec.rb +404 -0
  289. data/spec/aws/xml/parser_spec.rb +716 -0
  290. data/spec/aws_spec.rb +89 -0
  291. data/spec/fixtures/api/swf.json +100 -0
  292. data/spec/fixtures/operations/cloudfront/list_distributions.yml +195 -0
  293. data/spec/fixtures/operations/cloudfront/max_items.yml +12 -0
  294. data/spec/fixtures/operations/dynamodb/error_parsing.yml +13 -0
  295. data/spec/fixtures/operations/glacier/error_parsing.yml +10 -0
  296. data/spec/fixtures/operations/glacier/list_vaults.yml +24 -0
  297. data/spec/fixtures/operations/iam/result_wrapped_elements.yml +31 -0
  298. data/spec/fixtures/operations/s3/304_response.yml +12 -0
  299. data/spec/fixtures/operations/s3/400_response.yml +12 -0
  300. data/spec/fixtures/operations/s3/403_response.yml +12 -0
  301. data/spec/fixtures/operations/s3/404_response.yml +12 -0
  302. data/spec/fixtures/operations/s3/comlete_multipart_upload_error.yml +18 -0
  303. data/spec/fixtures/operations/s3/create_bucket_with_location_constraint.yml +25 -0
  304. data/spec/fixtures/operations/s3/create_bucket_without_location_constraint.yml +9 -0
  305. data/spec/fixtures/operations/s3/delete_objects.yml +54 -0
  306. data/spec/fixtures/operations/s3/error_parsing.yml +17 -0
  307. data/spec/fixtures/operations/s3/get_bucket_location.yml +17 -0
  308. data/spec/fixtures/operations/s3/get_bucket_location_classic.yml +17 -0
  309. data/spec/fixtures/operations/s3/head_bucket_with_dns_incompatible_name.yml +12 -0
  310. data/spec/fixtures/operations/s3/head_object.yml +50 -0
  311. data/spec/fixtures/operations/s3/list_buckets.yml +41 -0
  312. data/spec/fixtures/operations/s3/md5_checksum_disabled.yml +10 -0
  313. data/spec/fixtures/operations/s3/md5_checksum_enabled.yml +8 -0
  314. data/spec/fixtures/operations/swf/list_domains.yml +20 -0
  315. data/spec/spec_helper.rb +55 -0
  316. data/tasks/apis.rake +51 -0
  317. data/tasks/docs.rake +59 -0
  318. data/tasks/test.rake +39 -0
  319. data/vendor/seahorse/.gitignore +5 -0
  320. data/vendor/seahorse/.simplecov +4 -0
  321. data/vendor/seahorse/.yardopts +10 -0
  322. data/vendor/seahorse/Gemfile +20 -0
  323. data/vendor/seahorse/LICENSE.txt +12 -0
  324. data/vendor/seahorse/README.md +129 -0
  325. data/vendor/seahorse/Rakefile +7 -0
  326. data/vendor/seahorse/ca-bundle.crt +3554 -0
  327. data/vendor/seahorse/lib/seahorse.rb +6 -0
  328. data/vendor/seahorse/lib/seahorse/client.rb +61 -0
  329. data/vendor/seahorse/lib/seahorse/client/base.rb +239 -0
  330. data/vendor/seahorse/lib/seahorse/client/block_io.rb +39 -0
  331. data/vendor/seahorse/lib/seahorse/client/configuration.rb +197 -0
  332. data/vendor/seahorse/lib/seahorse/client/handler.rb +26 -0
  333. data/vendor/seahorse/lib/seahorse/client/handler_builder.rb +49 -0
  334. data/vendor/seahorse/lib/seahorse/client/handler_list.rb +250 -0
  335. data/vendor/seahorse/lib/seahorse/client/http/endpoint.rb +95 -0
  336. data/vendor/seahorse/lib/seahorse/client/http/headers.rb +94 -0
  337. data/vendor/seahorse/lib/seahorse/client/http/plain_string_io.rb +11 -0
  338. data/vendor/seahorse/lib/seahorse/client/http/request.rb +78 -0
  339. data/vendor/seahorse/lib/seahorse/client/http/response.rb +45 -0
  340. data/vendor/seahorse/lib/seahorse/client/logging/formatter.rb +319 -0
  341. data/vendor/seahorse/lib/seahorse/client/logging/handler.rb +35 -0
  342. data/vendor/seahorse/lib/seahorse/client/net_http/connection_pool.rb +339 -0
  343. data/vendor/seahorse/lib/seahorse/client/net_http/handler.rb +109 -0
  344. data/vendor/seahorse/lib/seahorse/client/param_converter.rb +202 -0
  345. data/vendor/seahorse/lib/seahorse/client/param_validator.rb +139 -0
  346. data/vendor/seahorse/lib/seahorse/client/plugin.rb +80 -0
  347. data/vendor/seahorse/lib/seahorse/client/plugin_list.rb +142 -0
  348. data/vendor/seahorse/lib/seahorse/client/plugins/api.rb +11 -0
  349. data/vendor/seahorse/lib/seahorse/client/plugins/content_length.rb +22 -0
  350. data/vendor/seahorse/lib/seahorse/client/plugins/endpoint.rb +36 -0
  351. data/vendor/seahorse/lib/seahorse/client/plugins/json_simple.rb +34 -0
  352. data/vendor/seahorse/lib/seahorse/client/plugins/logging.rb +37 -0
  353. data/vendor/seahorse/lib/seahorse/client/plugins/net_http.rb +26 -0
  354. data/vendor/seahorse/lib/seahorse/client/plugins/operation_methods.rb +48 -0
  355. data/vendor/seahorse/lib/seahorse/client/plugins/param_conversion.rb +29 -0
  356. data/vendor/seahorse/lib/seahorse/client/plugins/param_validation.rb +30 -0
  357. data/vendor/seahorse/lib/seahorse/client/plugins/raise_response_errors.rb +29 -0
  358. data/vendor/seahorse/lib/seahorse/client/plugins/restful_bindings.rb +205 -0
  359. data/vendor/seahorse/lib/seahorse/client/request.rb +62 -0
  360. data/vendor/seahorse/lib/seahorse/client/request_context.rb +68 -0
  361. data/vendor/seahorse/lib/seahorse/client/response.rb +106 -0
  362. data/vendor/seahorse/lib/seahorse/client/xml/builder.rb +92 -0
  363. data/vendor/seahorse/lib/seahorse/model.rb +38 -0
  364. data/vendor/seahorse/lib/seahorse/model/api.rb +39 -0
  365. data/vendor/seahorse/lib/seahorse/model/node.rb +102 -0
  366. data/vendor/seahorse/lib/seahorse/model/operation.rb +32 -0
  367. data/vendor/seahorse/lib/seahorse/model/operation_input.rb +30 -0
  368. data/vendor/seahorse/lib/seahorse/model/operations.rb +59 -0
  369. data/vendor/seahorse/lib/seahorse/model/property.rb +141 -0
  370. data/vendor/seahorse/lib/seahorse/model/shapes/shape.rb +229 -0
  371. data/vendor/seahorse/lib/seahorse/model/types.rb +8 -0
  372. data/vendor/seahorse/lib/seahorse/version.rb +3 -0
  373. data/vendor/seahorse/seahorse.gemspec +20 -0
  374. data/vendor/seahorse/spec/fixtures/plugin.rb +4 -0
  375. data/vendor/seahorse/spec/seahorse/client/base_spec.rb +308 -0
  376. data/vendor/seahorse/spec/seahorse/client/configuration_spec.rb +118 -0
  377. data/vendor/seahorse/spec/seahorse/client/handler_builder_spec.rb +159 -0
  378. data/vendor/seahorse/spec/seahorse/client/handler_list_spec.rb +243 -0
  379. data/vendor/seahorse/spec/seahorse/client/handler_spec.rb +40 -0
  380. data/vendor/seahorse/spec/seahorse/client/http/endpoint_spec.rb +168 -0
  381. data/vendor/seahorse/spec/seahorse/client/http/headers_spec.rb +213 -0
  382. data/vendor/seahorse/spec/seahorse/client/http/plain_string_io_spec.rb +23 -0
  383. data/vendor/seahorse/spec/seahorse/client/http/request_spec.rb +142 -0
  384. data/vendor/seahorse/spec/seahorse/client/http/response_spec.rb +77 -0
  385. data/vendor/seahorse/spec/seahorse/client/logging/formatter_spec.rb +197 -0
  386. data/vendor/seahorse/spec/seahorse/client/logging/handler_spec.rb +63 -0
  387. data/vendor/seahorse/spec/seahorse/client/net_http/connection_pool_spec.rb +10 -0
  388. data/vendor/seahorse/spec/seahorse/client/net_http/handler_spec.rb +232 -0
  389. data/vendor/seahorse/spec/seahorse/client/param_converter_spec.rb +318 -0
  390. data/vendor/seahorse/spec/seahorse/client/param_validator_spec.rb +271 -0
  391. data/vendor/seahorse/spec/seahorse/client/plugin_list_spec.rb +166 -0
  392. data/vendor/seahorse/spec/seahorse/client/plugin_spec.rb +118 -0
  393. data/vendor/seahorse/spec/seahorse/client/plugins/content_length_spec.rb +19 -0
  394. data/vendor/seahorse/spec/seahorse/client/plugins/endpoint_spec.rb +43 -0
  395. data/vendor/seahorse/spec/seahorse/client/plugins/logging_spec.rb +46 -0
  396. data/vendor/seahorse/spec/seahorse/client/plugins/net_http_spec.rb +71 -0
  397. data/vendor/seahorse/spec/seahorse/client/plugins/operation_methods_spec.rb +74 -0
  398. data/vendor/seahorse/spec/seahorse/client/plugins/restful_bindings/uri_path_builder_spec.rb +91 -0
  399. data/vendor/seahorse/spec/seahorse/client/request_context_spec.rb +105 -0
  400. data/vendor/seahorse/spec/seahorse/client/request_spec.rb +102 -0
  401. data/vendor/seahorse/spec/seahorse/client/response_spec.rb +171 -0
  402. data/vendor/seahorse/spec/seahorse/client/xml/builder/xml_doc_spec.rb +142 -0
  403. data/vendor/seahorse/spec/seahorse/client/xml/builder_spec.rb +10 -0
  404. data/vendor/seahorse/spec/seahorse/client_spec.rb +13 -0
  405. data/vendor/seahorse/spec/seahorse/model/api_spec.rb +72 -0
  406. data/vendor/seahorse/spec/seahorse/model/node_spec.rb +114 -0
  407. data/vendor/seahorse/spec/seahorse/model/operation_input_spec.rb +53 -0
  408. data/vendor/seahorse/spec/seahorse/model/operation_spec.rb +48 -0
  409. data/vendor/seahorse/spec/seahorse/model/operations_spec.rb +64 -0
  410. data/vendor/seahorse/spec/seahorse/model/property_spec.rb +136 -0
  411. data/vendor/seahorse/spec/seahorse/model/shapes/shape_spec.rb +105 -0
  412. data/vendor/seahorse/spec/seahorse/version_spec.rb +11 -0
  413. data/vendor/seahorse/spec/spec_helper.rb +34 -0
  414. data/vendor/seahorse/tasks/ca_bundle.rake +23 -0
  415. data/vendor/seahorse/tasks/docs.rake +11 -0
  416. data/vendor/seahorse/tasks/test.rake +26 -0
  417. metadata +614 -0
@@ -0,0 +1,11 @@
1
+ require 'stringio'
2
+
3
+ module Seahorse
4
+ module Client
5
+ module Http
6
+ class PlainStringIO < StringIO
7
+ def inspect; string.inspect end
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,78 @@
1
+ require 'stringio'
2
+
3
+ module Seahorse
4
+ module Client
5
+ module Http
6
+ class Request
7
+
8
+ # @option options [Endpoint] :endpoint (nil)
9
+ # @option options [String] :http_method ('GET')
10
+ # @option options [String] :path ('/')
11
+ # @option options [Headers] :headers (Headers.new)
12
+ # @option options [Body] :body (StringIO.new)
13
+ def initialize(options = {})
14
+ self.endpoint = options[:endpoint] if options[:endpoint]
15
+ self.http_method = options[:http_method] || 'GET'
16
+ self.path = options[:path] || '/'
17
+ self.headers = Headers.new(options[:headers] || {})
18
+ self.headers['User-Agent'] ||= ua
19
+ self.body = options[:body]
20
+ end
21
+
22
+ # @return [Endpoint, nil]
23
+ attr_accessor :endpoint
24
+
25
+ # @return [String] The HTTP request method, e.g. `GET`, `PUT`, etc.
26
+ attr_accessor :http_method
27
+
28
+ # @return [Headers] The hash of request headers.
29
+ attr_accessor :headers
30
+
31
+ # @return [String] The path name and querystring, e.g. `/abc?mno=xyz`.
32
+ attr_accessor :path
33
+
34
+ # @return [IO]
35
+ attr_reader :body
36
+
37
+ def endpoint=(endpoint)
38
+ @endpoint = Endpoint.new(endpoint)
39
+ end
40
+
41
+ # @return [String]
42
+ def body_contents
43
+ body.rewind
44
+ contents = body.read
45
+ body.rewind
46
+ contents
47
+ end
48
+
49
+ # @return [String]
50
+ def pathname
51
+ path.split('?', 2)[0]
52
+ end
53
+
54
+ # @return [String]
55
+ def querystring
56
+ path.split('?', 2)[1] || ''
57
+ end
58
+
59
+ # @param [#read, #size, #rewind] io
60
+ def body=(io)
61
+ @body = case io
62
+ when nil then PlainStringIO.new('')
63
+ when String then PlainStringIO.new(io)
64
+ else io
65
+ end
66
+ end
67
+
68
+ private
69
+
70
+ # @return [String]
71
+ def ua
72
+ "Seahorse/#{Seahorse::VERSION}"
73
+ end
74
+
75
+ end
76
+ end
77
+ end
78
+ end
@@ -0,0 +1,45 @@
1
+ module Seahorse
2
+ module Client
3
+ module Http
4
+ class Response
5
+
6
+ # @option options [Integer] :status_code (0)
7
+ # @option options [Headers] :headers (Headers.new)
8
+ # @option options [IO] :body (StringIO.new)
9
+ def initialize(options = {})
10
+ @status_code = options[:status_code] || 0
11
+ @headers = options[:headers] || Headers.new
12
+ @body = options[:body] || PlainStringIO.new
13
+ end
14
+
15
+ # @return [Integer] Returns `0` if the request failed to generate
16
+ # any response.
17
+ attr_accessor :status_code
18
+
19
+ # @return [Headers]
20
+ attr_accessor :headers
21
+
22
+ # @return [IO]
23
+ attr_accessor :body
24
+
25
+ # @param [#read, #size, #rewind] io
26
+ def body=(io)
27
+ @body = case io
28
+ when nil then PlainStringIO.new('')
29
+ when String then PlainStringIO.new(io)
30
+ else io
31
+ end
32
+ end
33
+
34
+ # @return [String]
35
+ def body_contents
36
+ body.rewind
37
+ contents = body.read
38
+ body.rewind
39
+ contents
40
+ end
41
+
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,319 @@
1
+ require 'pathname'
2
+
3
+ module Seahorse
4
+ module Client
5
+ module Logging
6
+
7
+ # A log formatter receives a {Response} object and return
8
+ # a log message as a string.. When you construct a {Formatter}, you provide
9
+ # a pattern string with substitutions.
10
+ #
11
+ # pattern = ':operation :http_response_status_code :time'
12
+ # formatter = Seahorse::Logging::Formatter.new(pattern)
13
+ # formatter.format(response)
14
+ # #=> 'get_bucket 200 0.0352'
15
+ #
16
+ # # Canned Formatters
17
+ #
18
+ # Instead of providing your own pattern, you can choose a canned log
19
+ # formatter.
20
+ #
21
+ # * {Formatter.default}
22
+ # * {Formatter.colored}
23
+ # * {Formatter.short}
24
+ #
25
+ # # Pattern Substitutions
26
+ #
27
+ # You can put any of these placeholders into you pattern.
28
+ #
29
+ # * `:client_class` - The name of the client class.
30
+ #
31
+ # * `:operation` - The name of the client request method.
32
+ #
33
+ # * `:request_params` - The user provided request parameters. Long
34
+ # strings are truncated/summarized if they exceed the
35
+ # {#max_string_size}. Other objects are inspected.
36
+ #
37
+ # * `:time` - The total time in seconds spent on the
38
+ # request. This includes client side time spent building
39
+ # the request and parsing the response.
40
+ #
41
+ # * `:retries` - The number of times a client request was retried.
42
+ #
43
+ # * `:http_request_method` - The http request verb, e.g., `POST`,
44
+ # `PUT`, `GET`, etc.
45
+ #
46
+ # * `:http_request_endpoint` - The request endpoint. This includes
47
+ # the scheme, host and port, but not the path.
48
+ #
49
+ # * `:http_request_scheme` - This is replaced by `http` or `https`.
50
+ #
51
+ # * `:http_request_host` - The host name of the http request
52
+ # endpoint (e.g. 's3.amazon.com').
53
+ #
54
+ # * `:http_request_port` - The port number (e.g. '443' or '80').
55
+ #
56
+ # * `:http_request_path` - The full path (pathname plus querystring)
57
+ # for the request, e.g., `/bucket_name/objects/key?versions`.
58
+ #
59
+ # * `:http_request_headers` - The http request headers, inspected.
60
+ #
61
+ # * `:http_request_body` - The http request payload.
62
+ #
63
+ # * `:http_response_status_code` - The http response status
64
+ # code, e.g., `200`, `404`, `500`, etc.
65
+ #
66
+ # * `:http_response_headers` - The http response headers, inspected.
67
+ #
68
+ # * `:http_response_body` - The http response body contents.
69
+ #
70
+ # * `:error_class`
71
+ #
72
+ # * `:error_message`
73
+ #
74
+ class Formatter
75
+
76
+ # @param [String] pattern The log format pattern should be a string
77
+ # and may contain substitutions.
78
+ #
79
+ # @option options [Integer] :max_string_size (1000) When summarizing
80
+ # request parameters, strings longer than this value will be
81
+ # truncated.
82
+ #
83
+ def initialize(pattern, options = {})
84
+ @pattern = pattern
85
+ @max_string_size = options[:max_string_size] || 1000
86
+ end
87
+
88
+ # @return [String]
89
+ attr_reader :pattern
90
+
91
+ # @return [Integer]
92
+ attr_reader :max_string_size
93
+
94
+ # Given a {Response}, this will format a log message and return it
95
+ # as a string.
96
+ # @param [Response] response
97
+ # @return [String]
98
+ def format(response)
99
+ pattern.gsub(/:(\w+)/) {|sym| send("_#{sym[1..-1]}", response) }
100
+ end
101
+
102
+ # @api private
103
+ def eql?(other)
104
+ other.is_a?(self.class) and other.pattern == self.pattern
105
+ end
106
+ alias :== :eql?
107
+
108
+ private
109
+
110
+ def method_missing(method_name, *args)
111
+ if method_name.to_s.chars.first == '_'
112
+ ":#{method_name.to_s[1..-1]}"
113
+ else
114
+ super
115
+ end
116
+ end
117
+
118
+ def _client_class(response)
119
+ response.context.client.class.name
120
+ end
121
+
122
+ def _operation(response)
123
+ response.context.operation_name
124
+ end
125
+
126
+ def _request_params(response)
127
+ summarize_hash(response.context.params)
128
+ end
129
+
130
+ def _time(response)
131
+ duration = response.context[:logging_completed_at] -
132
+ response.context[:logging_started_at]
133
+ ("%.06f" % duration).sub(/0+$/, '')
134
+ end
135
+
136
+ def _retries(response)
137
+ response.context.retries
138
+ end
139
+
140
+ def _http_request_endpoint(response)
141
+ response.context.http_request.endpoint.to_s
142
+ end
143
+
144
+ def _http_request_scheme(response)
145
+ response.context.http_request.endpoint.scheme
146
+ end
147
+
148
+ def _http_request_host(response)
149
+ response.context.http_request.endpoint.host
150
+ end
151
+
152
+ def _http_request_port(response)
153
+ response.context.http_request.endpoint.port.to_s
154
+ end
155
+
156
+ def _http_request_method(response)
157
+ response.context.http_request.http_method
158
+ end
159
+
160
+ def _http_request_path(response)
161
+ response.context.http_request.path
162
+ end
163
+
164
+ def _http_request_headers(response)
165
+ response.http_request.headers.inspect
166
+ end
167
+
168
+ def _http_request_body(response)
169
+ summarize_value(response.http_request.body_contents)
170
+ end
171
+
172
+ def _http_response_status_code(response)
173
+ response.context.http_response.status_code.to_s
174
+ end
175
+
176
+ def _http_response_headers(response)
177
+ response.context.http_response.headers.inspect
178
+ end
179
+
180
+ def _http_response_body(response)
181
+ summarize_value(response.context.http_response.body_contents)
182
+ end
183
+
184
+ def _error_class(response)
185
+ response.error ? response.error.class.name : ''
186
+ end
187
+
188
+ def _error_message(response)
189
+ response.error ? response.error.message : ''
190
+ end
191
+
192
+ # @param [Hash] hash
193
+ # @return [String]
194
+ def summarize_hash(hash)
195
+ hash.keys.first.is_a?(String) ?
196
+ summarize_string_hash(hash) :
197
+ summarize_symbol_hash(hash)
198
+ end
199
+
200
+ def summarize_symbol_hash(hash)
201
+ hash.map do |key,v|
202
+ "#{key}:#{summarize_value(v)}"
203
+ end.join(",")
204
+ end
205
+
206
+ def summarize_string_hash(hash)
207
+ hash.map do |key,v|
208
+ "#{key.inspect}=>#{summarize_value(v)}"
209
+ end.join(",")
210
+ end
211
+
212
+ # @param [Object] value
213
+ # @return [String]
214
+ def summarize_value value
215
+ case value
216
+ when String then summarize_string(value)
217
+ when Hash then '{' + summarize_hash(value) + '}'
218
+ when Array then summarize_array(value)
219
+ when File then summarize_file(value.path)
220
+ when Pathname then summarize_file(value)
221
+ else value.inspect
222
+ end
223
+ end
224
+
225
+ # @param [String] str
226
+ # @return [String]
227
+ def summarize_string str
228
+ max = max_string_size
229
+ if str.size > max
230
+ "#<String #{str[0...max].inspect} ... (#{str.size} bytes)>"
231
+ else
232
+ str.inspect
233
+ end
234
+ end
235
+
236
+ # Given the path to a file on disk, this method returns a summarized
237
+ # inspecton string that includes the file size.
238
+ # @param [String] path
239
+ # @return [String]
240
+ def summarize_file path
241
+ "#<File:#{path} (#{File.size(path)} bytes)>"
242
+ end
243
+
244
+ # @param [Array] array
245
+ # @return [String]
246
+ def summarize_array array
247
+ "[" + array.map{|v| summarize_value(v) }.join(",") + "]"
248
+ end
249
+
250
+ class << self
251
+
252
+ # The default log format.
253
+ #
254
+ # @example A sample of the default format.
255
+ #
256
+ # [ClientClass 200 0.580066 0 retries] list_objects(:bucket_name => 'bucket')
257
+ #
258
+ # @return [Formatter]
259
+ #
260
+ def default
261
+ pattern = []
262
+ pattern << "[:client_class"
263
+ pattern << ":http_response_status_code"
264
+ pattern << ":time"
265
+ pattern << ":retries retries]"
266
+ pattern << ":operation(:request_params)"
267
+ pattern << ":error_class"
268
+ pattern << ":error_message"
269
+ Formatter.new(pattern.join(' ') + "\n")
270
+ end
271
+
272
+ # The short log format. Similar to default, but it does not
273
+ # inspect the request params or report on retries.
274
+ #
275
+ # @example A sample of the short format
276
+ #
277
+ # [ClientClass 200 0.494532] list_buckets
278
+ #
279
+ # @return [Formatter]
280
+ #
281
+ def short
282
+ pattern = []
283
+ pattern << "[:client_class"
284
+ pattern << ":http_response_status_code"
285
+ pattern << ":time]"
286
+ pattern << ":operation"
287
+ pattern << ":error_class"
288
+ Formatter.new(pattern.join(' ') + "\n")
289
+ end
290
+
291
+ # The default log format with ANSI colors.
292
+ #
293
+ # @example A sample of the colored format (sans the ansi colors).
294
+ #
295
+ # [ClientClass 200 0.580066 0 retries] list_objects(:bucket_name => 'bucket')
296
+ #
297
+ # @return [Formatter]
298
+ #
299
+ def colored
300
+ bold = "\x1b[1m"
301
+ color = "\x1b[34m"
302
+ reset = "\x1b[0m"
303
+ pattern = []
304
+ pattern << "#{bold}#{color}[:client_class"
305
+ pattern << ":http_response_status_code"
306
+ pattern << ":time"
307
+ pattern << ":retries retries]#{reset}#{bold}"
308
+ pattern << ":operation(:request_params)"
309
+ pattern << ":error_class"
310
+ pattern << ":error_message#{reset}"
311
+ Formatter.new(pattern.join(' ') + "\n")
312
+ end
313
+
314
+ end
315
+
316
+ end
317
+ end
318
+ end
319
+ end