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,72 @@
1
+ module Aws
2
+ module Api
3
+ class BaseTranslator
4
+
5
+ include Util
6
+
7
+ DEFAULT_OPTIONS = {
8
+ documentation: true,
9
+ errors: true,
10
+ timestamp_format: 'iso8601',
11
+ }
12
+
13
+ def initialize(src, options)
14
+ @properties = {}
15
+ @options = options
16
+ DEFAULT_OPTIONS.each do |option, default|
17
+ @options[option] = default unless @options.key?(option)
18
+ end
19
+ src.each_pair do |property, value|
20
+ self.send("set_#{property}", value)
21
+ end
22
+ end
23
+
24
+ def set_timestamp_format(format)
25
+ @options = @options.merge(timestamp_format: format.sub(/Timestamp/, ''))
26
+ end
27
+
28
+ def set_documentation(docs)
29
+ if docs && @options[:documentation]
30
+ docs = docs.gsub(/<!--.*?-->/m, '')
31
+ docs = docs.gsub(/<a>(.+?)<\/a>/m, '\1')
32
+ docs = docs.gsub(/<examples?>.+?<\/examples?>/m, '')
33
+ docs = docs.gsub(/<\/?note>/m, '')
34
+ docs = docs.gsub(/\{(\S+)\}/, '`{\1}`')
35
+ docs = docs.gsub(/\s+/, ' ').strip
36
+ @properties['documentation'] = docs unless docs.empty?
37
+ end
38
+ end
39
+
40
+ def translated
41
+ raise NotImplementedError
42
+ end
43
+
44
+ class << self
45
+
46
+ def translate(src, options)
47
+ new(src, options).translated if src
48
+ end
49
+
50
+ def property(name, options = {})
51
+ method_name = "set_#{options[:from] || name}"
52
+ define_method(method_name) do |value|
53
+ @properties[name.to_s] = value
54
+ end
55
+ end
56
+
57
+ def metadata(name, options = {})
58
+ define_method("set_#{name}") do |value|
59
+ @properties['metadata'] ||= {}
60
+ @properties['metadata'][options[:as] || name.to_s] = value
61
+ end
62
+ end
63
+
64
+ def ignore(property)
65
+ define_method("set_#{property}") { |value| }
66
+ end
67
+
68
+ end
69
+
70
+ end
71
+ end
72
+ end
@@ -0,0 +1,116 @@
1
+ module Aws
2
+ module Api
3
+ class DocExample
4
+
5
+ include Seahorse::Model::Shapes
6
+
7
+ def initialize(obj_name, method_name, operation)
8
+ @obj_name = obj_name
9
+ @method_name = method_name
10
+ @operation = operation
11
+ end
12
+
13
+ def to_str
14
+ "resp = #{@obj_name}.#{@method_name}(#{params[1...-1]})"
15
+ end
16
+ alias to_s to_str
17
+ alias inspect to_str
18
+
19
+ private
20
+
21
+ def params
22
+ return '' if @operation.input.members.empty?
23
+ structure(@operation.input, '')
24
+ end
25
+
26
+ def structure(shape, i)
27
+ lines = ['{']
28
+ shape.members.each do |member_name, member_shape|
29
+ if member_shape.required
30
+ lines << "#{i} # required"
31
+ end
32
+ lines << "#{i} #{member_name}: #{member(member_shape, i + ' ')},"
33
+ end
34
+ lines << "#{i}}"
35
+ lines.join("\n")
36
+ end
37
+
38
+ def map(shape, i)
39
+ if multiline?(shape.members)
40
+ multiline_map(shape, i)
41
+ else
42
+ "{ #{key_name(shape)} => #{value(shape.members)} }"
43
+ end
44
+ end
45
+
46
+ def multiline_map(shape, i)
47
+ lines = ["{"]
48
+ lines << "#{i} #{key_name(shape)} => #{member(shape.members, i + ' ')},"
49
+ lines << "#{i} # repeated ..."
50
+ lines << "#{i}}"
51
+ lines.join("\n")
52
+ end
53
+
54
+ def list(shape, i)
55
+ if multiline?(shape.members)
56
+ multiline_list(shape, i)
57
+ else
58
+ "[#{value(shape.members)}, '...']"
59
+ end
60
+ end
61
+
62
+ def multiline_list(shape, i)
63
+ lines = ["["]
64
+ lines << "#{i} #{member(shape.members, i + ' ')},"
65
+ lines << "#{i} # repeated ... "
66
+ lines << "#{i}]"
67
+ lines.join("\n")
68
+ end
69
+
70
+ def member(shape, i)
71
+ case shape
72
+ when StructureShape then structure(shape, i)
73
+ when MapShape then map(shape, i)
74
+ when ListShape then list(shape, i)
75
+ else value(shape)
76
+ end
77
+ end
78
+
79
+ def value(shape)
80
+ case shape
81
+ when StringShape then string_value(shape)
82
+ when IntegerShape then 'Integer'
83
+ when FloatShape then 'Float'
84
+ when BooleanShape then 'true || false'
85
+ when TimestampShape then '<Time,DateTime,Date,Integer,String>'.inspect
86
+ when BlobShape then "#{shape_name(shape, false)}<String,IO>".inspect
87
+ else raise "unhandled shape type `#{shape.type}'"
88
+ end
89
+ end
90
+
91
+ def string_value(shape)
92
+ if shape.enum
93
+ shape.enum.join('|').inspect
94
+ else
95
+ shape_name(shape)
96
+ end
97
+ end
98
+
99
+ def multiline?(shape)
100
+ shape.is_a?(StructureShape) or
101
+ shape.is_a?(MapShape) or
102
+ shape.is_a?(ListShape)
103
+ end
104
+
105
+ def shape_name(shape, inspect = true)
106
+ value = shape.metadata['shape_name']
107
+ inspect ? value.inspect : value
108
+ end
109
+
110
+ def key_name(shape, inspect = true)
111
+ shape_name(shape.keys)
112
+ end
113
+
114
+ end
115
+ end
116
+ end
@@ -0,0 +1,140 @@
1
+ module Aws
2
+ module Api
3
+ class Documentor
4
+
5
+ include Seahorse::Model::Shapes
6
+
7
+ def initialize(obj_name, method_name, operation)
8
+ @operation = operation
9
+ @example = DocExample.new(obj_name, method_name, operation)
10
+ end
11
+
12
+ def input
13
+ params('') do
14
+ structure(@operation.input)
15
+ end.join
16
+ end
17
+
18
+ def output
19
+ params('') do
20
+ structure(@operation.output)
21
+ end.join
22
+ end
23
+
24
+ def example
25
+ @example
26
+ end
27
+
28
+ def api_ref(shape)
29
+ docs = shape.is_a?(String) ? shape : shape.documentation
30
+ if docs
31
+ docs = docs.strip if docs
32
+ "<div class=\"api-ref\">#{docs}</div>" unless docs.empty?
33
+ end
34
+ end
35
+
36
+ private
37
+
38
+ def params(shape, &block)
39
+ ['<div class="params">', api_ref(shape)] + yield + ['</div>']
40
+ end
41
+
42
+ def param(shape, key_name, value_type, &block)
43
+ lines = []
44
+ lines << '<div class="param">'
45
+ lines << entry(shape, key_name, value_type)
46
+ yield(lines) if block_given?
47
+ lines += nested_params(shape)
48
+ lines << '</div>'
49
+ lines
50
+ end
51
+
52
+ def nested_params(shape)
53
+ if leaf?(shape)
54
+ nested(shape)
55
+ else
56
+ params(shape) { nested(shape) }
57
+ end
58
+ end
59
+
60
+ def nested(shape)
61
+ case shape
62
+ when StructureShape then structure(shape)
63
+ when MapShape then map(shape)
64
+ when ListShape then list(shape)
65
+ else [api_ref(shape)]
66
+ end
67
+ end
68
+
69
+ def structure(shape)
70
+ shape.members.inject([]) do |lines, (member_name, member_shape)|
71
+ lines += param(member_shape, member_name, shape_type(member_shape))
72
+ end
73
+ end
74
+
75
+ def map(shape)
76
+ param(shape.members, key_name(shape), value_type(shape))
77
+ end
78
+
79
+ def list(shape)
80
+ case shape.members
81
+ when StructureShape then structure(shape.members)
82
+ when MapShape then map(shape.members)
83
+ when ListShape then raise NotImplementedError
84
+ else [api_ref(shape)]
85
+ end
86
+ end
87
+
88
+ def entry(shape, key_name, value_type)
89
+ classes = ['key']
90
+ classes << 'required' if shape.required
91
+ line = '<div class="entry">'
92
+ line << "<span class=\"#{classes.join(' ')}\">#{key_name.inspect}</span>"
93
+ line << " => #{value_type}"
94
+ line << '</div>'
95
+ line
96
+ end
97
+
98
+ def shape_type(shape)
99
+ case shape
100
+ when StructureShape then 'Hash'
101
+ when MapShape then 'Hash'
102
+ when ListShape then "Array&lt;#{value_type(shape)}&gt;"
103
+ when StringShape then 'String'
104
+ when TimestampShape then 'Time'
105
+ when IntegerShape then 'Integer'
106
+ when FloatShape then 'Number'
107
+ when BooleanShape then 'Boolean'
108
+ when BlobShape then 'String,IO'
109
+ else raise "unhandled type #{shape.type}"
110
+ end
111
+ end
112
+
113
+ def key_type(shape)
114
+ shape_type(shape.keys)
115
+ end
116
+
117
+ def value_type(shape)
118
+ shape_type(shape.members)
119
+ end
120
+
121
+ def key_name(shape)
122
+ shape.keys.metadata['shape_name']
123
+ end
124
+
125
+ def value_name(shape)
126
+ shape.members.metadata['shape_name']
127
+ end
128
+
129
+ def leaf?(shape)
130
+ case shape
131
+ when StructureShape then false
132
+ when MapShape then false
133
+ when ListShape then leaf?(shape.members)
134
+ else true
135
+ end
136
+ end
137
+
138
+ end
139
+ end
140
+ end
@@ -0,0 +1,77 @@
1
+ module Aws
2
+ module Api
3
+ class OperationTranslator < BaseTranslator
4
+
5
+ def translated
6
+ @properties['http_method'] ||= 'POST'
7
+ @properties['http_path'] ||= '/'
8
+
9
+ if @input
10
+ @input.members.each_pair do |member_name, member_shape|
11
+ if member_shape.location == 'uri'
12
+ placeholder = member_shape.serialized_name
13
+ @properties['http_path'].sub!("{#{placeholder}}", "{#{member_name}}")
14
+ member_shape.serialized_name = nil
15
+ if path_param?(@properties['http_path'], member_name)
16
+ member_shape.required = true
17
+ end
18
+ end
19
+ end
20
+ end
21
+
22
+ operation = Seahorse::Model::Operation.from_hash(@properties)
23
+ operation.input = @input if @input
24
+ operation.output = @output if @output
25
+ operation.errors = @errors if @errors and @options[:errors]
26
+ operation
27
+ end
28
+
29
+ ignore :documentation_url
30
+ ignore :alias
31
+
32
+ def path_param?(path, param_name)
33
+ path.split('?').first.include?("{#{param_name}}")
34
+ end
35
+
36
+ def set_name(name)
37
+ # strip api version from operation name
38
+ @properties['name'] = name.sub(/\d{4}_\d{2}_\d{2}$/, '')
39
+ end
40
+
41
+ def set_http(http)
42
+ @properties['http_method'] = http['method']
43
+ @properties['http_path'] = http['uri']
44
+ end
45
+
46
+ def set_input(src)
47
+ handle_input_output('input', src)
48
+ end
49
+
50
+ def set_output(src)
51
+ handle_input_output('output', src)
52
+ end
53
+
54
+ def handle_input_output(input_or_output, src)
55
+ if src
56
+ src = src.merge('type' => input_or_output)
57
+ translator = "#{input_or_output.capitalize}ShapeTranslator"
58
+ translator = Aws::Api::const_get(translator)
59
+ shape = translator.translate(src, @options)
60
+ shape.members.each do |member_name, member|
61
+ if member.metadata['payload']
62
+ member.metadata.delete('payload')
63
+ shape.payload = member_name
64
+ end
65
+ end
66
+ instance_variable_set("@#{input_or_output}", shape)
67
+ end
68
+ end
69
+
70
+ def set_errors(errors)
71
+ @errors = errors.map { |src| OutputShapeTranslator.translate(src, @options) }
72
+ @errors = nil if @errors.empty?
73
+ end
74
+
75
+ end
76
+ end
77
+ end
@@ -0,0 +1,40 @@
1
+ module Aws
2
+ module Api
3
+
4
+ # This class is responsible for calculating class names and method names
5
+ # from AWS name. The basic pattern for determining a class name is:
6
+ #
7
+ # * Start with the service full name or abbreviation if it has one
8
+ # * Remove AWS/Amazon prefixes and suffixes
9
+ # * Take the shorter of the name or the endpoint prefix
10
+ #
11
+ class ServiceNamer
12
+
13
+ def initialize(endpoint_prefix, full_name, abbreviation = nil)
14
+ @full_name = full_name
15
+ @abbreviation = abbreviation
16
+ @class_name = build_class_name(endpoint_prefix)
17
+ end
18
+
19
+ # @return [String]
20
+ attr_reader :full_name
21
+
22
+ # @return [String, nil]
23
+ attr_reader :abbreviation
24
+
25
+ alias abbr abbreviation
26
+
27
+ # @return [String]
28
+ attr_reader :class_name
29
+
30
+ private
31
+
32
+ def build_class_name(endpoint_prefix)
33
+ name = @abbreviation || @full_name
34
+ name = name.sub('Amazon', '').sub('AWS', '').gsub(/\W+/, '')
35
+ [name, endpoint_prefix.upcase].sort_by(&:size).first
36
+ end
37
+
38
+ end
39
+ end
40
+ end