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,32 @@
1
+
2
+ module Seahorse
3
+ module Model
4
+ class Operation < Node
5
+
6
+ def initialize(*)
7
+ super
8
+ self.metadata = {}
9
+ self.input = InputShape.new
10
+ self.output = OutputShape.new
11
+ end
12
+
13
+ property :name, String
14
+ property :http_method, String
15
+ property :http_path, String
16
+ property :metadata, Hash
17
+ property :documentation, String
18
+ property :input, InputShape
19
+ property :output, OutputShape
20
+ property :errors, [Shape]
21
+
22
+ def to_hash
23
+ hash = super
24
+ hash.delete('metadata') if hash['metadata'].empty?
25
+ hash.delete('input') if hash['input']['members'].empty?
26
+ hash.delete('output') if hash['output']['members'].empty?
27
+ hash
28
+ end
29
+
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,30 @@
1
+
2
+ module Seahorse
3
+ module Model
4
+ class OperationInput < Node
5
+ property :params, Symbol => Shape, always_serialize: true
6
+ property :raw_payload, Boolean
7
+
8
+ def initialize(*)
9
+ super
10
+ @param_map = nil
11
+ end
12
+
13
+ def header_params; params_for('header') end
14
+ def body_params; params_for('body') end
15
+ def uri_params; params_for('uri') end
16
+
17
+ def params_for(location)
18
+ build_params[location]
19
+ end
20
+
21
+ private
22
+
23
+ def build_params
24
+ @param_map ||= params.inject({}) do |hsh, (member_name, shape)|
25
+ (hsh[shape.location] ||= {})[member_name] = shape; hsh
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,59 @@
1
+ require 'thread'
2
+
3
+ module Seahorse
4
+ module Model
5
+ class Operations
6
+ def initialize(raw_data = {})
7
+ @raw = raw_data.dup
8
+ @loaded = {}
9
+ @mutex = Mutex.new
10
+ end
11
+
12
+ def [](name)
13
+ name = name.to_s
14
+ @mutex.synchronize do
15
+ if @raw.key?(name)
16
+ @loaded[name] = Operation.from_hash(@raw.delete(name))
17
+ else
18
+ @loaded[name]
19
+ end
20
+ end
21
+ end
22
+
23
+ def []=(name, value)
24
+ name = name.to_s
25
+ @mutex.synchronize do
26
+ @raw.delete(name)
27
+ @loaded[name] = value
28
+ end
29
+ end
30
+
31
+ def load!
32
+ @raw.keys.each { |key| self[key] }
33
+ end
34
+
35
+ def keys
36
+ @mutex.synchronize do
37
+ (@loaded.keys + @raw.keys).sort
38
+ end
39
+ end
40
+
41
+ def values
42
+ self.load!
43
+ @loaded.values
44
+ end
45
+
46
+ def each(&block)
47
+ self.load!
48
+ @loaded.each(&block)
49
+ end
50
+
51
+ def to_h
52
+ self.load!
53
+ @loaded.dup
54
+ end
55
+ alias to_hash to_h
56
+
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,141 @@
1
+
2
+ module Seahorse
3
+ module Model
4
+ class PropertyError < RuntimeError
5
+ attr_reader :key, :hash
6
+
7
+ def initialize(key, hash)
8
+ @key = key.to_s
9
+ @hash = hash
10
+ super("No such key #{key} in #{hash}")
11
+ end
12
+ end
13
+
14
+ class Property
15
+ include Model::Types
16
+
17
+ attr_accessor :name
18
+ attr_accessor :serialized_class
19
+ attr_accessor :always_serialize
20
+ attr_reader :serialized_location
21
+ attr_writer :serialized_name
22
+
23
+ def serialized_location=(value)
24
+ @serialized_location = value ? value.to_sym : nil
25
+ end
26
+
27
+ def serialized_name
28
+ (@serialized_name || name).to_sym
29
+ end
30
+
31
+ def initialize(name, type, options = {})
32
+ self.name = name.to_sym
33
+ self.serialized_class = type
34
+ self.serialized_location = options[:in]
35
+ self.serialized_name = options[:name]
36
+ self.always_serialize = options[:always_serialize]
37
+ end
38
+
39
+ def load_from(hash)
40
+ orig_hash = hash
41
+
42
+ if serialized_location
43
+ hash = hash[serialized_location.to_s]
44
+ raise PropertyError.new(serialized_location, orig_hash) unless hash
45
+ end
46
+
47
+ if !hash.has_key?(serialized_name.to_s)
48
+ raise PropertyError.new(serialized_name, hash)
49
+ end
50
+
51
+ value = hash[serialized_name.to_s]
52
+ deserialize(value, serialized_class)
53
+ end
54
+
55
+ def write_to(hash, value)
56
+ orig_hash = hash
57
+
58
+ if serialized_location
59
+ hash[serialized_location.to_s] ||= {}
60
+ hash = hash[serialized_location.to_s]
61
+ end
62
+
63
+ value = serialize(value, serialized_class)
64
+ if value != nil || always_serialize
65
+ hash[serialized_name.to_s] = value
66
+ end
67
+
68
+ orig_hash
69
+ end
70
+
71
+ private
72
+
73
+ def serialize(value, klass)
74
+ return if value.nil?
75
+
76
+ if klass == Operations
77
+ hsh = {}
78
+ value.each do |k, v|
79
+ hsh[key_case(k.to_s)] = serialize(v, Operation)
80
+ end
81
+ hsh
82
+ elsif value.is_a?(Hash) && klass.is_a?(Hash)
83
+ hsh = {}
84
+ value.each do |k, v|
85
+ keyclass = klass.keys.first
86
+ valclass = klass.values.first
87
+ hsh[serialize(k, keyclass).to_s] = serialize(v, valclass)
88
+ end
89
+ hsh
90
+ elsif klass.is_a?(Array)
91
+ value.map {|v| serialize(v, klass.first) }
92
+ elsif klass == Boolean
93
+ !!value
94
+ elsif value.respond_to?(:to_hash)
95
+ value ? value.to_hash : nil
96
+ elsif value.is_a?(Symbol)
97
+ value.to_s
98
+ else
99
+ value
100
+ end
101
+ end
102
+
103
+ def deserialize(value, klass)
104
+ if klass == Symbol
105
+ value ? value.to_sym : nil
106
+ elsif klass == Operations
107
+ hash = value.inject({}) do |hsh, (k, v)|
108
+ hsh[key_case(k)] = v; hsh
109
+ end
110
+ Operations.new(hash)
111
+ elsif klass.is_a?(Hash)
112
+ hsh = {}
113
+ value.each do |key, item|
114
+ key = deserialize(key, klass.keys.first)
115
+ item = deserialize(item, klass.values.first)
116
+ hsh[key] = item
117
+ end
118
+ hsh
119
+ elsif klass.is_a?(Array)
120
+ value.map {|v| deserialize(v, klass.first) }
121
+ elsif klass.respond_to?(:from_hash)
122
+ klass.from_hash(value)
123
+ elsif klass == Boolean
124
+ value || false
125
+ elsif klass
126
+ value
127
+ else
128
+ nil
129
+ end
130
+ end
131
+
132
+ def key_case(name)
133
+ name = name.to_s
134
+ name = name.gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2')
135
+ name = name.gsub(/([a-z\d])([A-Z])/,'\1_\2')
136
+ name = name.tr("-", "_")
137
+ name.downcase
138
+ end
139
+ end
140
+ end
141
+ end
@@ -0,0 +1,229 @@
1
+
2
+ module Seahorse
3
+ module Model
4
+ module Shapes
5
+ class Shape < Node
6
+ class << self
7
+ def register_type(hash)
8
+ hash.each do |type, klass|
9
+ klass.type = type
10
+ end
11
+ types.update(hash)
12
+ end
13
+
14
+ def types; @@types ||= {} end
15
+
16
+ attr_accessor :type
17
+
18
+ def from_hash_class(hash)
19
+ return self if hash.nil?
20
+ raise "Shape #{hash} has undefined type" if hash["type"].nil?
21
+ if type = types[hash["type"].to_sym]
22
+ type
23
+ else
24
+ raise "Unregistered shape type #{hash["type"]}"
25
+ end
26
+ end
27
+ end
28
+
29
+ def initialize(*)
30
+ super
31
+ self.metadata = {}
32
+ self.type = self.class.type
33
+ end
34
+
35
+ attr_accessor :member_name
36
+
37
+ property :type, Symbol
38
+ property :required, Boolean
39
+ property :default, Object
40
+ property :documentation, String
41
+ property :location, String
42
+ property :serialized_name, String
43
+ property :metadata, Hash
44
+
45
+ alias required? required
46
+
47
+ def serialized_name
48
+ name = @serialized_name || @member_name.to_s
49
+ name == '' ? nil : name
50
+ end
51
+
52
+ def location
53
+ @location || 'body'
54
+ end
55
+
56
+ def to_hash
57
+ hash = super
58
+ hash.delete('serialized_name') if @serialized_name.nil?
59
+ hash.delete('metadata') if hash['metadata'].empty?
60
+ hash.delete('location') if @location.nil?
61
+ hash
62
+ end
63
+
64
+ end
65
+
66
+ class ScalarShape < Shape; end
67
+ class IntegerShape < ScalarShape; end
68
+ class FloatShape < ScalarShape; end
69
+ class BooleanShape < ScalarShape; end
70
+ class BlobShape < ScalarShape; end
71
+
72
+ class StringShape < ScalarShape
73
+ property :enum, [String]
74
+ end
75
+
76
+ class TimestampShape < ScalarShape; end
77
+ class Iso8601TimestampShape < TimestampShape; end
78
+ class Rfc822TimestampShape < TimestampShape; end
79
+ class UnixTimestampShape < TimestampShape; end
80
+
81
+ class ListShape < Shape
82
+ property :members, Shape
83
+
84
+ def initialize(*)
85
+ super
86
+ self.members = nil
87
+ end
88
+ end
89
+
90
+ class MapShape < Shape
91
+ property :keys, Shape
92
+ property :members, Shape
93
+
94
+ def initialize(*)
95
+ super
96
+ self.keys = nil
97
+ self.members = nil
98
+ end
99
+ end
100
+
101
+ class MemberHash < Hash
102
+ def []=(member_name, member)
103
+ member.member_name = member_name.to_sym
104
+ super(member.member_name, member)
105
+ end
106
+
107
+ def self.from_hash(hash)
108
+ hash.inject(new) {|hsh, (k, v)| hsh[k] = Shape.from_hash(v); hsh }
109
+ end
110
+
111
+ def to_hash
112
+ inject({}) {|hsh, (k, v)| hsh[k.to_s] = v.to_hash; hsh }
113
+ end
114
+ end
115
+
116
+ class StructureShape < Shape
117
+ property :members, MemberHash
118
+
119
+ def initialize(*)
120
+ super
121
+ self.members = MemberHash.new
122
+ end
123
+
124
+ def empty?
125
+ @members.empty?
126
+ end
127
+
128
+ def members= hash
129
+ @members = MemberHash.new
130
+ hash.each do |k, v|
131
+ @members[k] = v
132
+ end
133
+ end
134
+
135
+ # @return [Hash<String,Shape>] Returns a hash of members indexed
136
+ # by their serialized names. This is useful for parsing.
137
+ def serialized_members
138
+ @serialized_members ||= compute_serialized_members
139
+ end
140
+
141
+ private
142
+
143
+ def compute_serialized_members
144
+ members.inject({}) do |hash, (member_name, member)|
145
+ hash[member.serialized_name || member.member_name.to_s] = member
146
+ hash
147
+ end
148
+ end
149
+ end
150
+
151
+ class InputShape < StructureShape
152
+
153
+ property :payload, Symbol
154
+
155
+ # @return [Hash<Symbol, Shape>] Returns a hash of member shapes
156
+ # that should be serialized into the request headers.
157
+ def header_members
158
+ member_map['header']
159
+ end
160
+
161
+ # @return [Hash<Symbol, Shape>] Returns a hash of member shapes
162
+ # that should be serialized into the request uri path.
163
+ def uri_members
164
+ member_map['uri']
165
+ end
166
+
167
+ # @return [Hash<Symbol, Shape>] Returns a hash of member shapes
168
+ # that should be serialized into the request body.
169
+ def body_members
170
+ member_map['body']
171
+ end
172
+
173
+ # @return [StructureShape] Returns a structure with each of the
174
+ # members that represent the request body.
175
+ def payload_member
176
+ @payload_member ||= begin
177
+ if payload
178
+ members[payload]
179
+ else
180
+ shape = Seahorse::Model::Shapes::StructureShape.new
181
+ shape.members = body_members
182
+ shape.serialized_name = serialized_name
183
+ shape.metadata = metadata
184
+ shape
185
+ end
186
+ end
187
+ end
188
+
189
+ # @return [Boolean] Returns `true` if the request input body
190
+ # should be sent as blob/raw data (e.g. from a file).
191
+ def raw_payload?
192
+ payload_member.is_a?(BlobShape)
193
+ end
194
+
195
+ private
196
+
197
+ def member_map
198
+ @member_map ||= begin
199
+ { 'header' => {}, 'uri' => {}, 'body' => {} }.tap do |map|
200
+ members.each do |member_name, member|
201
+ map[member.location][member_name] = member
202
+ end
203
+ end
204
+ end
205
+ end
206
+
207
+ end
208
+
209
+ class OutputShape < InputShape; end
210
+
211
+ class Shape < Node
212
+ register_type input: InputShape
213
+ register_type output: OutputShape
214
+ register_type structure: StructureShape
215
+ register_type list: ListShape
216
+ register_type map: MapShape
217
+ register_type string: StringShape
218
+ register_type integer: IntegerShape
219
+ register_type timestamp: TimestampShape
220
+ register_type iso8601_timestamp: Iso8601TimestampShape
221
+ register_type rfc822_timestamp: Rfc822TimestampShape
222
+ register_type unix_timestamp: UnixTimestampShape
223
+ register_type boolean: BooleanShape
224
+ register_type blob: BlobShape
225
+ register_type float: FloatShape
226
+ end
227
+ end
228
+ end
229
+ end