From 1df561f729694b343b5339f154e3bb54fb09c936 Mon Sep 17 00:00:00 2001 From: theory Date: Tue, 1 Apr 2014 00:47:41 -0600 Subject: [PATCH] yay --- gun.js | 1 + init.js | 6 +- manifest.yml | 16 + node_modules/aws-sdk/.eslintrc | 19 + node_modules/aws-sdk/.npmignore | 17 + node_modules/aws-sdk/LICENSE.txt | 12 + node_modules/aws-sdk/README.md | 113 + node_modules/aws-sdk/bower.json | 8 + .../eslint-rules/no-require-in-service.js | 10 + node_modules/aws-sdk/lib/aws.js | 46 + node_modules/aws-sdk/lib/browser.js | 7 + node_modules/aws-sdk/lib/config.js | 346 + node_modules/aws-sdk/lib/core.js | 75 + node_modules/aws-sdk/lib/credentials.js | 150 + .../credentials/credential_provider_chain.js | 113 + .../credentials/ec2_metadata_credentials.js | 48 + .../credentials/environment_credentials.js | 84 + .../credentials/file_system_credentials.js | 65 + .../lib/credentials/saml_credentials.js | 80 + .../lib/credentials/temporary_credentials.js | 103 + .../credentials/web_identity_credentials.js | 80 + node_modules/aws-sdk/lib/event_listeners.js | 385 + node_modules/aws-sdk/lib/http.js | 166 + node_modules/aws-sdk/lib/http/node.js | 147 + node_modules/aws-sdk/lib/http/xhr.js | 112 + node_modules/aws-sdk/lib/json/builder.js | 76 + node_modules/aws-sdk/lib/metadata_service.js | 98 + node_modules/aws-sdk/lib/param_validator.js | 168 + node_modules/aws-sdk/lib/request.js | 602 + node_modules/aws-sdk/lib/resource_waiter.js | 200 + node_modules/aws-sdk/lib/response.js | 195 + .../aws-sdk/lib/sequential_executor.js | 255 + node_modules/aws-sdk/lib/service.js | 519 + .../aws-sdk/lib/service_interface/json.js | 50 + .../aws-sdk/lib/service_interface/query.js | 155 + .../aws-sdk/lib/service_interface/rest.js | 131 + .../lib/service_interface/rest_json.js | 72 + .../aws-sdk/lib/service_interface/rest_xml.js | 90 + node_modules/aws-sdk/lib/services.js | 15 + node_modules/aws-sdk/lib/services/dynamodb.js | 52 + node_modules/aws-sdk/lib/services/ec2.js | 30 + .../aws-sdk/lib/services/elastictranscoder.js | 18 + node_modules/aws-sdk/lib/services/glacier.js | 96 + node_modules/aws-sdk/lib/services/route53.js | 30 + node_modules/aws-sdk/lib/services/s3.js | 396 + node_modules/aws-sdk/lib/services/simpledb.js | 15 + node_modules/aws-sdk/lib/services/sqs.js | 107 + node_modules/aws-sdk/lib/services/sts.js | 47 + node_modules/aws-sdk/lib/services/swf.js | 10 + .../aws-sdk/lib/signers/request_signer.js | 28 + node_modules/aws-sdk/lib/signers/s3.js | 166 + node_modules/aws-sdk/lib/signers/v2.js | 45 + node_modules/aws-sdk/lib/signers/v3.js | 74 + node_modules/aws-sdk/lib/signers/v3https.js | 22 + node_modules/aws-sdk/lib/signers/v4.js | 160 + node_modules/aws-sdk/lib/state_machine.js | 42 + node_modules/aws-sdk/lib/util.js | 561 + .../aws-sdk/lib/xml/browser_parser.js | 170 + node_modules/aws-sdk/lib/xml/builder.js | 79 + node_modules/aws-sdk/lib/xml/node_parser.js | 153 + .../node_modules/aws-sdk-apis/.npmignore | 4 + .../node_modules/aws-sdk-apis/LICENSE.txt | 12 + .../node_modules/aws-sdk-apis/README.md | 4 + .../apis/AutoScaling-2011-01-01.json | 1281 ++ .../apis/CloudFormation-2010-05-15.json | 533 + .../apis/CloudFront-2014-01-31.json | 3653 +++++ .../apis/CloudSearch-2011-02-01.json | 1258 ++ .../apis/CloudSearch-2013-01-01.json | 2046 +++ .../apis/CloudTrail-2013-11-01.json | 231 + .../apis/CloudWatch-2010-08-01.json | 612 + .../apis/DataPipeline-2012-10-29.json | 606 + .../apis/DirectConnect-2012-10-25.json | 721 + .../apis/DynamoDB-2011-12-05.json | 1847 +++ .../apis/DynamoDB-2012-08-10.json | 2501 ++++ .../aws-sdk-apis/apis/EC2-2014-02-01.json | 11328 ++++++++++++++++ .../aws-sdk-apis/apis/ELB-2012-06-01.json | 985 ++ .../aws-sdk-apis/apis/EMR-2009-03-31.json | 1076 ++ .../apis/ElastiCache-2013-06-15.json | 2055 +++ .../apis/ElasticBeanstalk-2010-12-01.json | 1274 ++ .../apis/ElasticTranscoder-2012-09-25.json | 2095 +++ .../aws-sdk-apis/apis/Glacier-2012-06-01.json | 834 ++ .../aws-sdk-apis/apis/IAM-2010-05-08.json | 2041 +++ .../apis/ImportExport-2010-06-01.json | 192 + .../aws-sdk-apis/apis/Kinesis-2013-12-02.json | 275 + .../apis/OpsWorks-2013-02-18.json | 2178 +++ .../aws-sdk-apis/apis/RDS-2013-09-09.json | 4457 ++++++ .../apis/Redshift-2012-12-01.json | 3869 ++++++ .../aws-sdk-apis/apis/Route53-2013-04-01.json | 760 ++ .../aws-sdk-apis/apis/S3-2006-03-01.json | 2927 ++++ .../aws-sdk-apis/apis/SES-2010-12-01.json | 490 + .../aws-sdk-apis/apis/SNS-2010-03-31.json | 585 + .../aws-sdk-apis/apis/SQS-2012-11-05.json | 553 + .../aws-sdk-apis/apis/STS-2011-06-15.json | 243 + .../aws-sdk-apis/apis/SWF-2012-01-25.json | 3010 ++++ .../apis/SimpleDB-2009-04-15.json | 402 + .../apis/StorageGateway-2013-06-30.json | 1335 ++ .../aws-sdk-apis/apis/Support-2013-04-15.json | 500 + .../aws-sdk-apis/apis/symlinks.json | 5 + .../node_modules/aws-sdk-apis/index.js | 86 + .../aws-sdk-apis/lib/translator.js | 377 + .../node_modules/aws-sdk-apis/package.json | 43 + .../aws-sdk/node_modules/xml2js/.npmignore | 2 + .../aws-sdk/node_modules/xml2js/.travis.yml | 5 + .../aws-sdk/node_modules/xml2js/Cakefile | 12 + .../aws-sdk/node_modules/xml2js/LICENSE | 19 + .../aws-sdk/node_modules/xml2js/README.md | 228 + .../aws-sdk/node_modules/xml2js/lib/xml2js.js | 250 + .../xml2js/node_modules/sax/AUTHORS | 10 + .../xml2js/node_modules/sax/LICENSE | 32 + .../xml2js/node_modules/sax/LICENSE-W3C.html | 188 + .../xml2js/node_modules/sax/README.md | 216 + .../xml2js/node_modules/sax/component.json | 12 + .../sax/examples/big-not-pretty.xml | 8002 +++++++++++ .../node_modules/sax/examples/example.js | 29 + .../node_modules/sax/examples/get-products.js | 58 + .../node_modules/sax/examples/hello-world.js | 4 + .../node_modules/sax/examples/not-pretty.xml | 8 + .../node_modules/sax/examples/pretty-print.js | 74 + .../node_modules/sax/examples/shopping.xml | 2 + .../node_modules/sax/examples/strict.dtd | 870 ++ .../node_modules/sax/examples/test.html | 15 + .../xml2js/node_modules/sax/examples/test.xml | 1254 ++ .../xml2js/node_modules/sax/lib/sax.js | 1410 ++ .../xml2js/node_modules/sax/package.json | 65 + .../node_modules/sax/test/attribute-name.js | 33 + .../sax/test/attribute-no-space.js | 75 + .../node_modules/sax/test/buffer-overrun.js | 26 + .../xml2js/node_modules/sax/test/case.js | 50 + .../node_modules/sax/test/cdata-chunked.js | 11 + .../node_modules/sax/test/cdata-end-split.js | 15 + .../node_modules/sax/test/cdata-fake-end.js | 28 + .../node_modules/sax/test/cdata-multiple.js | 15 + .../xml2js/node_modules/sax/test/cdata.js | 10 + .../xml2js/node_modules/sax/test/cyrillic.js | 8 + .../sax/test/duplicate-attribute.js | 13 + .../xml2js/node_modules/sax/test/emoji.js | 12 + .../node_modules/sax/test/end_empty_stream.js | 5 + .../xml2js/node_modules/sax/test/entities.js | 10 + .../node_modules/sax/test/entity-mega.js | 16 + .../xml2js/node_modules/sax/test/flush.js | 13 + .../xml2js/node_modules/sax/test/index.js | 86 + .../xml2js/node_modules/sax/test/issue-23.js | 43 + .../xml2js/node_modules/sax/test/issue-30.js | 24 + .../xml2js/node_modules/sax/test/issue-35.js | 15 + .../xml2js/node_modules/sax/test/issue-47.js | 12 + .../xml2js/node_modules/sax/test/issue-49.js | 31 + .../xml2js/node_modules/sax/test/issue-84.js | 13 + .../node_modules/sax/test/parser-position.js | 28 + .../sax/test/script-close-better.js | 12 + .../xml2js/node_modules/sax/test/script.js | 12 + .../sax/test/self-closing-child-strict.js | 44 + .../sax/test/self-closing-child.js | 44 + .../node_modules/sax/test/self-closing-tag.js | 25 + .../node_modules/sax/test/stray-ending.js | 17 + .../sax/test/trailing-attribute-no-value.js | 10 + .../sax/test/trailing-non-whitespace.js | 18 + .../node_modules/sax/test/unclosed-root.js | 11 + .../xml2js/node_modules/sax/test/unquoted.js | 18 + .../node_modules/sax/test/utf8-split.js | 32 + .../sax/test/xmlns-as-tag-name.js | 15 + .../node_modules/sax/test/xmlns-issue-41.js | 68 + .../node_modules/sax/test/xmlns-rebinding.js | 63 + .../node_modules/sax/test/xmlns-strict.js | 74 + .../sax/test/xmlns-unbound-element.js | 33 + .../node_modules/sax/test/xmlns-unbound.js | 15 + .../sax/test/xmlns-xml-default-ns.js | 31 + .../xmlns-xml-default-prefix-attribute.js | 36 + .../sax/test/xmlns-xml-default-prefix.js | 21 + .../sax/test/xmlns-xml-default-redefine.js | 41 + .../aws-sdk/node_modules/xml2js/package.json | 105 + .../node_modules/xml2js/src/xml2js.coffee | 198 + .../xml2js/test/fixtures/sample.xml | 50 + .../xml2js/test/xml2js.test.coffee | 233 + .../node_modules/xmlbuilder/.npmignore | 8 + .../aws-sdk/node_modules/xmlbuilder/README.md | 73 + .../node_modules/xmlbuilder/lib/XMLBuilder.js | 119 + .../xmlbuilder/lib/XMLFragment.js | 422 + .../node_modules/xmlbuilder/lib/index.js | 15 + .../node_modules/xmlbuilder/package.json | 41 + node_modules/aws-sdk/package.json | 106 + node_modules/aws-sdk/scripts/console | 65 + node_modules/aws-sdk/scripts/coverage | 126 + node_modules/aws-sdk/testem.json | 4 + node_modules/coalesce/.npmignore | 1 + node_modules/coalesce/Procfile | 1 + node_modules/coalesce/README.md | 375 + node_modules/coalesce/assemble.sh | 236 + node_modules/coalesce/coalesce.js | 721 + node_modules/coalesce/init.js | 1 + node_modules/coalesce/license | 7 + .../node_modules/formidable/.npmignore | 4 + .../node_modules/formidable/.travis.yml | 4 + .../coalesce/node_modules/formidable/Makefile | 14 + .../node_modules/formidable/Readme.md | 311 + .../coalesce/node_modules/formidable/TODO | 3 + .../benchmark/bench-multipart-parser.js | 70 + .../node_modules/formidable/example/post.js | 43 + .../node_modules/formidable/example/upload.js | 48 + .../coalesce/node_modules/formidable/index.js | 1 + .../node_modules/formidable/lib/file.js | 73 + .../formidable/lib/incoming_form.js | 384 + .../node_modules/formidable/lib/index.js | 3 + .../formidable/lib/multipart_parser.js | 312 + .../formidable/lib/querystring_parser.js | 25 + .../node_modules/formidable/lib/util.js | 6 + .../formidable/node-gently/Makefile | 4 + .../formidable/node-gently/Readme.md | 167 + .../formidable/node-gently/example/dog.js | 22 + .../node-gently/example/event_emitter.js | 11 + .../formidable/node-gently/index.js | 1 + .../node-gently/lib/gently/gently.js | 184 + .../node-gently/lib/gently/index.js | 1 + .../formidable/node-gently/package.json | 14 + .../formidable/node-gently/test/common.js | 8 + .../node-gently/test/simple/test-gently.js | 348 + .../node_modules/formidable/package.json | 28 + .../node_modules/formidable/test/common.js | 19 + .../test/fixture/file/funkyfilename.txt | 1 + .../formidable/test/fixture/file/plain.txt | 1 + .../http/special-chars-in-filename/info.md | 3 + .../formidable/test/fixture/js/no-filename.js | 3 + .../fixture/js/special-chars-in-filename.js | 21 + .../formidable/test/fixture/multipart.js | 72 + .../test/integration/test-fixtures.js | 89 + .../formidable/test/legacy/common.js | 24 + .../integration/test-multipart-parser.js | 80 + .../test/legacy/simple/test-file.js | 104 + .../test/legacy/simple/test-incoming-form.js | 727 + .../legacy/simple/test-multipart-parser.js | 50 + .../legacy/simple/test-querystring-parser.js | 45 + .../legacy/system/test-multi-video-upload.js | 75 + .../node_modules/formidable/test/run.js | 2 + .../test/unit/test-incoming-form.js | 63 + .../node_modules/formidable/tool/record.js | 47 + .../node_modules/node-static/.npmignore | 3 + .../coalesce/node_modules/node-static/LICENSE | 20 + .../node_modules/node-static/README.md | 201 + .../benchmark/node-static-0.3.0.txt | 43 + .../node_modules/node-static/bin/cli.js | 104 + .../node_modules/node-static/etc/404.html | 23 + .../node-static/etc/trainwreck.jpg | Bin 0 -> 543733 bytes .../node-static/examples/file-server.js | 20 + .../node-static/lib/node-static.js | 329 + .../node-static/lib/node-static/util.js | 30 + .../node_modules/colors/MIT-LICENSE.txt | 22 + .../node-static/node_modules/colors/ReadMe.md | 77 + .../node-static/node_modules/colors/colors.js | 342 + .../node_modules/colors/example.html | 76 + .../node_modules/colors/example.js | 77 + .../node_modules/colors/package.json | 29 + .../node-static/node_modules/colors/test.js | 70 + .../colors/themes/winston-dark.js | 12 + .../colors/themes/winston-light.js | 12 + .../node_modules/optimist/.travis.yml | 4 + .../node-static/node_modules/optimist/LICENSE | 21 + .../node_modules/optimist/example/bool.js | 10 + .../optimist/example/boolean_double.js | 7 + .../optimist/example/boolean_single.js | 7 + .../optimist/example/default_hash.js | 8 + .../optimist/example/default_singles.js | 7 + .../node_modules/optimist/example/divide.js | 8 + .../optimist/example/line_count.js | 20 + .../optimist/example/line_count_options.js | 29 + .../optimist/example/line_count_wrap.js | 29 + .../node_modules/optimist/example/nonopt.js | 4 + .../node_modules/optimist/example/reflect.js | 2 + .../node_modules/optimist/example/short.js | 3 + .../node_modules/optimist/example/string.js | 11 + .../optimist/example/usage-options.js | 19 + .../node_modules/optimist/example/xup.js | 10 + .../node_modules/optimist/index.js | 343 + .../node_modules/minimist/.travis.yml | 4 + .../optimist/node_modules/minimist/LICENSE | 18 + .../node_modules/minimist/example/parse.js | 2 + .../optimist/node_modules/minimist/index.js | 187 + .../node_modules/minimist/package.json | 50 + .../node_modules/minimist/readme.markdown | 73 + .../node_modules/minimist/test/dash.js | 24 + .../minimist/test/default_bool.js | 20 + .../node_modules/minimist/test/dotted.js | 16 + .../node_modules/minimist/test/long.js | 31 + .../node_modules/minimist/test/parse.js | 318 + .../minimist/test/parse_modified.js | 9 + .../node_modules/minimist/test/short.js | 67 + .../node_modules/minimist/test/whitespace.js | 8 + .../optimist/node_modules/wordwrap/.npmignore | 1 + .../node_modules/wordwrap/README.markdown | 70 + .../node_modules/wordwrap/example/center.js | 10 + .../node_modules/wordwrap/example/meat.js | 3 + .../optimist/node_modules/wordwrap/index.js | 76 + .../node_modules/wordwrap/package.json | 45 + .../node_modules/wordwrap/test/break.js | 30 + .../node_modules/wordwrap/test/idleness.txt | 63 + .../node_modules/wordwrap/test/wrap.js | 31 + .../node_modules/optimist/package.json | 47 + .../node_modules/optimist/readme.markdown | 513 + .../node_modules/optimist/test/_.js | 71 + .../node_modules/optimist/test/_/argv.js | 2 + .../node_modules/optimist/test/_/bin.js | 3 + .../node_modules/optimist/test/dash.js | 31 + .../node_modules/optimist/test/parse.js | 446 + .../optimist/test/parse_modified.js | 14 + .../node_modules/optimist/test/short.js | 16 + .../node_modules/optimist/test/usage.js | 292 + .../node_modules/optimist/test/whitespace.js | 8 + .../node_modules/node-static/package.json | 54 + .../node-static/test/fixtures/hello.txt | 1 + .../node-static/test/fixtures/index.html | 8 + .../test/fixtures/there/index.html | 8 + .../test/integration/node-static-test.js | 249 + .../node_modules/sockjs-client/.npmignore | 2 + .../node_modules/sockjs-client/README.md | 13 + .../node_modules/sockjs-client/index.js | 1 + .../sockjs-client/lib/sockjs-client.js | 379 + .../node_modules/node-uuid/.npmignore | 2 + .../node_modules/node-uuid/LICENSE.md | 3 + .../node_modules/node-uuid/README.md | 199 + .../node-uuid/benchmark/README.md | 53 + .../node-uuid/benchmark/bench.gnu | 174 + .../node_modules/node-uuid/benchmark/bench.sh | 34 + .../node-uuid/benchmark/benchmark-native.c | 34 + .../node-uuid/benchmark/benchmark.js | 84 + .../node_modules/node-uuid/package.json | 35 + .../node_modules/node-uuid/test/compare_v1.js | 63 + .../node_modules/node-uuid/test/test.html | 17 + .../node_modules/node-uuid/test/test.js | 240 + .../node_modules/node-uuid/uuid.js | 249 + .../node_modules/sockjs-client/package.json | 28 + .../coalesce/node_modules/sockjs/.npmignore | 6 + .../coalesce/node_modules/sockjs/COPYING | 6 + .../coalesce/node_modules/sockjs/Changelog | 179 + .../node_modules/sockjs/LICENSE-MIT-SockJS | 19 + .../coalesce/node_modules/sockjs/Makefile | 55 + .../coalesce/node_modules/sockjs/README.md | 458 + .../sockjs/examples/echo/README.md | 15 + .../sockjs/examples/echo/index.html | 71 + .../sockjs/examples/echo/package.json | 8 + .../sockjs/examples/echo/server.js | 30 + .../sockjs/examples/express-3.x/index.html | 71 + .../sockjs/examples/express-3.x/package.json | 8 + .../sockjs/examples/express-3.x/server.js | 26 + .../sockjs/examples/express/index.html | 71 + .../sockjs/examples/express/package.json | 8 + .../sockjs/examples/express/server.js | 23 + .../node_modules/sockjs/examples/haproxy.cfg | 42 + .../sockjs/examples/multiplex/README.md | 26 + .../sockjs/examples/multiplex/index.html | 96 + .../sockjs/examples/multiplex/package.json | 9 + .../sockjs/examples/multiplex/server.js | 52 + .../sockjs/examples/test_server/README.md | 30 + .../sockjs/examples/test_server/config.js | 9 + .../sockjs/examples/test_server/package.json | 7 + .../sockjs/examples/test_server/server.js | 19 + .../sockjs/examples/test_server/sockjs_app.js | 85 + .../coalesce/node_modules/sockjs/index.js | 1 + .../node_modules/sockjs/lib/chunking-test.js | 78 + .../node_modules/sockjs/lib/iframe.js | 29 + .../node_modules/sockjs/lib/sockjs.js | 216 + .../sockjs/lib/trans-eventsource.js | 40 + .../node_modules/sockjs/lib/trans-htmlfile.js | 58 + .../node_modules/sockjs/lib/trans-jsonp.js | 104 + .../sockjs/lib/trans-websocket.js | 205 + .../node_modules/sockjs/lib/trans-xhr.js | 116 + .../node_modules/sockjs/lib/transport.js | 387 + .../coalesce/node_modules/sockjs/lib/utils.js | 154 + .../coalesce/node_modules/sockjs/lib/webjs.js | 283 + .../node_modules/faye-websocket/CHANGELOG.md | 84 + .../node_modules/faye-websocket/README.md | 293 + .../examples/autobahn_client.js | 38 + .../faye-websocket/examples/client.js | 24 + .../faye-websocket/examples/haproxy.conf | 21 + .../faye-websocket/examples/server.js | 68 + .../faye-websocket/examples/sse.html | 39 + .../faye-websocket/examples/ws.html | 44 + .../faye-websocket/lib/faye/eventsource.js | 132 + .../faye-websocket/lib/faye/websocket.js | 46 + .../faye-websocket/lib/faye/websocket/api.js | 132 + .../lib/faye/websocket/api/event.js | 21 + .../lib/faye/websocket/api/event_target.js | 29 + .../lib/faye/websocket/client.js | 45 + .../websocket-driver/CHANGELOG.md | 34 + .../node_modules/websocket-driver/README.md | 307 + .../websocket-driver/examples/tcp_server.js | 21 + .../websocket-driver/lib/websocket/driver.js | 44 + .../lib/websocket/driver/base.js | 126 + .../lib/websocket/driver/client.js | 112 + .../lib/websocket/driver/draft75.js | 118 + .../lib/websocket/driver/draft76.js | 109 + .../lib/websocket/driver/headers.js | 30 + .../lib/websocket/driver/http_parser.js | 81 + .../lib/websocket/driver/hybi.js | 429 + .../websocket/driver/hybi/stream_reader.js | 46 + .../lib/websocket/driver/server.js | 104 + .../websocket-driver/lib/websocket/streams.js | 144 + .../websocket-driver/package.json | 36 + .../node_modules/faye-websocket/package.json | 41 + .../sockjs/node_modules/node-uuid/.npmignore | 2 + .../sockjs/node_modules/node-uuid/LICENSE.md | 3 + .../sockjs/node_modules/node-uuid/README.md | 199 + .../node-uuid/benchmark/README.md | 53 + .../node-uuid/benchmark/bench.gnu | 174 + .../node_modules/node-uuid/benchmark/bench.sh | 34 + .../node-uuid/benchmark/benchmark-native.c | 34 + .../node-uuid/benchmark/benchmark.js | 84 + .../node_modules/node-uuid/package.json | 36 + .../node_modules/node-uuid/test/compare_v1.js | 63 + .../node_modules/node-uuid/test/test.html | 17 + .../node_modules/node-uuid/test/test.js | 240 + .../sockjs/node_modules/node-uuid/uuid.js | 249 + .../coalesce/node_modules/sockjs/package.json | 32 + node_modules/coalesce/package.json | 25 + node_modules/coalesce/test/initA.js | 11 + node_modules/coalesce/test/initB.js | 11 + node_modules/coalesce/test/serverA.js | 22 + node_modules/coalesce/test/serverB.js | 26 + node_modules/fakeredis/.npmignore | 2 + node_modules/fakeredis/.travis.yml | 7 + node_modules/fakeredis/README.md | 407 + node_modules/fakeredis/lib/backend.js | 2023 +++ node_modules/fakeredis/lib/connection.js | 542 + node_modules/fakeredis/lib/helpers.js | 227 + node_modules/fakeredis/main.js | 155 + node_modules/fakeredis/package.json | 37 + node_modules/fakeredis/test.js | 991 ++ node_modules/hiredis/COPYING | 27 + node_modules/hiredis/README.md | 70 + node_modules/hiredis/bench.js | 121 + node_modules/hiredis/binding.gyp | 21 + node_modules/hiredis/build/Makefile | 337 + .../build/Release/.deps/Release/hiredis.a.d | 1 + .../Release/.deps/Release/hiredis.node.d | 1 + .../.deps/Release/obj.target/deps/hiredis.a.d | 1 + .../.deps/Release/obj.target/hiredis.node.d | 1 + .../obj.target/hiredis/deps/hiredis/async.o.d | 13 + .../hiredis/deps/hiredis/hiredis.o.d | 9 + .../obj.target/hiredis/deps/hiredis/net.o.d | 9 + .../obj.target/hiredis/deps/hiredis/sds.o.d | 5 + .../obj.target/hiredis/src/hiredis.o.d | 26 + .../Release/obj.target/hiredis/src/reader.o.d | 28 + node_modules/hiredis/build/Release/hiredis.a | Bin 0 -> 58090 bytes .../hiredis/build/Release/hiredis.node | Bin 0 -> 61469 bytes .../hiredis/build/Release/linker.lock | 0 .../build/Release/obj.target/deps/hiredis.a | Bin 0 -> 58090 bytes .../build/Release/obj.target/hiredis.node | Bin 0 -> 61469 bytes .../obj.target/hiredis/deps/hiredis/async.o | Bin 0 -> 15288 bytes .../obj.target/hiredis/deps/hiredis/hiredis.o | Bin 0 -> 23864 bytes .../obj.target/hiredis/deps/hiredis/net.o | Bin 0 -> 6456 bytes .../obj.target/hiredis/deps/hiredis/sds.o | Bin 0 -> 10792 bytes .../Release/obj.target/hiredis/src/hiredis.o | Bin 0 -> 2104 bytes .../Release/obj.target/hiredis/src/reader.o | Bin 0 -> 24856 bytes node_modules/hiredis/build/binding.Makefile | 6 + node_modules/hiredis/build/config.gypi | 116 + .../hiredis/build/deps/hiredis.Makefile | 6 + .../hiredis/build/deps/hiredis.target.mk | 140 + node_modules/hiredis/build/hiredis.target.mk | 142 + node_modules/hiredis/deps/hiredis.gyp | 27 + .../hiredis/deps/hiredis/CHANGELOG.md | 24 + node_modules/hiredis/deps/hiredis/COPYING | 29 + node_modules/hiredis/deps/hiredis/Makefile | 148 + node_modules/hiredis/deps/hiredis/README.md | 379 + .../hiredis/deps/hiredis/adapters/ae.h | 97 + .../hiredis/deps/hiredis/adapters/libev.h | 117 + .../hiredis/deps/hiredis/adapters/libevent.h | 78 + node_modules/hiredis/deps/hiredis/async.c | 622 + node_modules/hiredis/deps/hiredis/async.h | 125 + node_modules/hiredis/deps/hiredis/dict.c | 338 + node_modules/hiredis/deps/hiredis/dict.h | 126 + .../hiredis/deps/hiredis/example-ae.c | 56 + .../hiredis/deps/hiredis/example-libev.c | 51 + .../hiredis/deps/hiredis/example-libevent.c | 52 + node_modules/hiredis/deps/hiredis/example.c | 68 + node_modules/hiredis/deps/hiredis/fmacros.h | 16 + node_modules/hiredis/deps/hiredis/hiredis.c | 1285 ++ node_modules/hiredis/deps/hiredis/hiredis.h | 210 + node_modules/hiredis/deps/hiredis/net.c | 291 + node_modules/hiredis/deps/hiredis/net.h | 47 + node_modules/hiredis/deps/hiredis/sds.c | 605 + node_modules/hiredis/deps/hiredis/sds.h | 88 + node_modules/hiredis/deps/hiredis/test.c | 656 + node_modules/hiredis/hiredis.js | 34 + .../hiredis/node_modules/bindings/README.md | 97 + .../hiredis/node_modules/bindings/bindings.js | 159 + .../node_modules/bindings/package.json | 32 + node_modules/hiredis/package.json | 43 + node_modules/hiredis/src/hiredis.cc | 13 + node_modules/hiredis/src/reader.cc | 221 + node_modules/hiredis/src/reader.h | 52 + node_modules/hiredis/test/reader.js | 197 + node_modules/mime/LICENSE | 19 + node_modules/mime/README.md | 66 + node_modules/mime/mime.js | 114 + node_modules/mime/package.json | 36 + node_modules/mime/test.js | 84 + node_modules/mime/types/mime.types | 1588 +++ node_modules/mime/types/node.types | 77 + node_modules/redis/.npmignore | 2 + node_modules/redis/README.md | 754 + node_modules/redis/benches/buffer_bench.js | 89 + node_modules/redis/benches/hiredis_parser.js | 38 + node_modules/redis/benches/re_sub_test.js | 14 + node_modules/redis/benches/reconnect_test.js | 29 + node_modules/redis/benches/stress/codec.js | 16 + .../redis/benches/stress/pubsub/pub.js | 38 + node_modules/redis/benches/stress/pubsub/run | 10 + .../redis/benches/stress/pubsub/server.js | 23 + .../redis/benches/stress/rpushblpop/pub.js | 49 + .../redis/benches/stress/rpushblpop/run | 6 + .../redis/benches/stress/rpushblpop/server.js | 30 + node_modules/redis/benches/stress/speed/00 | 13 + node_modules/redis/benches/stress/speed/plot | 13 + .../redis/benches/stress/speed/size-rate.png | Bin 0 -> 6672 bytes .../redis/benches/stress/speed/speed.js | 84 + node_modules/redis/benches/sub_quit_test.js | 18 + node_modules/redis/changelog.md | 310 + node_modules/redis/diff_multi_bench_output.js | 90 + node_modules/redis/examples/auth.js | 5 + .../redis/examples/backpressure_drain.js | 33 + node_modules/redis/examples/eval.js | 14 + node_modules/redis/examples/extend.js | 24 + node_modules/redis/examples/file.js | 32 + node_modules/redis/examples/mget.js | 5 + node_modules/redis/examples/monitor.js | 10 + node_modules/redis/examples/multi.js | 46 + node_modules/redis/examples/multi2.js | 29 + node_modules/redis/examples/psubscribe.js | 33 + node_modules/redis/examples/pub_sub.js | 41 + node_modules/redis/examples/simple.js | 24 + node_modules/redis/examples/sort.js | 17 + node_modules/redis/examples/subqueries.js | 15 + node_modules/redis/examples/subquery.js | 19 + node_modules/redis/examples/unix_socket.js | 29 + node_modules/redis/examples/web_server.js | 31 + node_modules/redis/generate_commands.js | 39 + node_modules/redis/index.js | 1203 ++ node_modules/redis/lib/commands.js | 155 + node_modules/redis/lib/parser/hiredis.js | 46 + node_modules/redis/lib/parser/javascript.js | 301 + node_modules/redis/lib/queue.js | 59 + node_modules/redis/lib/to_array.js | 12 + node_modules/redis/lib/util.js | 11 + node_modules/redis/multi_bench.js | 222 + node_modules/redis/package.json | 34 + node_modules/redis/test-unref.js | 12 + node_modules/redis/test.js | 2231 +++ node_modules/theory/README.md | 771 ++ node_modules/theory/package.json | 17 + node_modules/theory/test/a.js | 6 + node_modules/theory/test/all.js | 7 + node_modules/theory/test/amd.html | 38 + node_modules/theory/test/array_is.js | 33 + node_modules/theory/test/array_util.js | 75 + node_modules/theory/test/arrays.js | 10 + node_modules/theory/test/b.js | 6 + node_modules/theory/test/binary.js | 32 + node_modules/theory/test/common.js | 81 + node_modules/theory/test/d.js | 9 + node_modules/theory/test/dep.js | 1 + node_modules/theory/test/events.js | 38 + node_modules/theory/test/expect.js | 1284 ++ node_modules/theory/test/functions.js | 64 + node_modules/theory/test/mocha.css | 182 + node_modules/theory/test/mocha.html | 17 + node_modules/theory/test/mocha.js | 4228 ++++++ node_modules/theory/test/numbers.js | 86 + node_modules/theory/test/objects.js | 19 + node_modules/theory/test/one.js | 4 + node_modules/theory/test/ready.js | 1 + node_modules/theory/test/strings.js | 70 + node_modules/theory/test/sub.js | 12 + node_modules/theory/test/sub/add.js | 3 + node_modules/theory/test/sub/c.js | 12 + node_modules/theory/test/sub/e.js | 4 + node_modules/theory/test/sub/four.js | 1 + node_modules/theory/test/sub/object_copy.js | 32 + node_modules/theory/test/sub/object_get.js | 35 + node_modules/theory/test/sub/object_has.js | 12 + node_modules/theory/test/sub/object_is.js | 32 + node_modules/theory/test/sub/object_union.js | 17 + node_modules/theory/test/sub/object_util.js | 26 + node_modules/theory/test/sub/three.js | 1 + node_modules/theory/test/sub/z.js | 1 + node_modules/theory/test/time.js | 27 + node_modules/theory/theory.js | 928 ++ package.json | 5 +- 584 files changed, 129032 insertions(+), 4 deletions(-) create mode 100644 manifest.yml create mode 100644 node_modules/aws-sdk/.eslintrc create mode 100644 node_modules/aws-sdk/.npmignore create mode 100644 node_modules/aws-sdk/LICENSE.txt create mode 100644 node_modules/aws-sdk/README.md create mode 100644 node_modules/aws-sdk/bower.json create mode 100644 node_modules/aws-sdk/eslint-rules/no-require-in-service.js create mode 100644 node_modules/aws-sdk/lib/aws.js create mode 100644 node_modules/aws-sdk/lib/browser.js create mode 100644 node_modules/aws-sdk/lib/config.js create mode 100644 node_modules/aws-sdk/lib/core.js create mode 100644 node_modules/aws-sdk/lib/credentials.js create mode 100644 node_modules/aws-sdk/lib/credentials/credential_provider_chain.js create mode 100644 node_modules/aws-sdk/lib/credentials/ec2_metadata_credentials.js create mode 100644 node_modules/aws-sdk/lib/credentials/environment_credentials.js create mode 100644 node_modules/aws-sdk/lib/credentials/file_system_credentials.js create mode 100644 node_modules/aws-sdk/lib/credentials/saml_credentials.js create mode 100644 node_modules/aws-sdk/lib/credentials/temporary_credentials.js create mode 100644 node_modules/aws-sdk/lib/credentials/web_identity_credentials.js create mode 100644 node_modules/aws-sdk/lib/event_listeners.js create mode 100644 node_modules/aws-sdk/lib/http.js create mode 100644 node_modules/aws-sdk/lib/http/node.js create mode 100644 node_modules/aws-sdk/lib/http/xhr.js create mode 100644 node_modules/aws-sdk/lib/json/builder.js create mode 100644 node_modules/aws-sdk/lib/metadata_service.js create mode 100644 node_modules/aws-sdk/lib/param_validator.js create mode 100644 node_modules/aws-sdk/lib/request.js create mode 100644 node_modules/aws-sdk/lib/resource_waiter.js create mode 100644 node_modules/aws-sdk/lib/response.js create mode 100644 node_modules/aws-sdk/lib/sequential_executor.js create mode 100644 node_modules/aws-sdk/lib/service.js create mode 100644 node_modules/aws-sdk/lib/service_interface/json.js create mode 100644 node_modules/aws-sdk/lib/service_interface/query.js create mode 100644 node_modules/aws-sdk/lib/service_interface/rest.js create mode 100644 node_modules/aws-sdk/lib/service_interface/rest_json.js create mode 100644 node_modules/aws-sdk/lib/service_interface/rest_xml.js create mode 100644 node_modules/aws-sdk/lib/services.js create mode 100644 node_modules/aws-sdk/lib/services/dynamodb.js create mode 100644 node_modules/aws-sdk/lib/services/ec2.js create mode 100644 node_modules/aws-sdk/lib/services/elastictranscoder.js create mode 100644 node_modules/aws-sdk/lib/services/glacier.js create mode 100644 node_modules/aws-sdk/lib/services/route53.js create mode 100644 node_modules/aws-sdk/lib/services/s3.js create mode 100644 node_modules/aws-sdk/lib/services/simpledb.js create mode 100644 node_modules/aws-sdk/lib/services/sqs.js create mode 100644 node_modules/aws-sdk/lib/services/sts.js create mode 100644 node_modules/aws-sdk/lib/services/swf.js create mode 100644 node_modules/aws-sdk/lib/signers/request_signer.js create mode 100644 node_modules/aws-sdk/lib/signers/s3.js create mode 100644 node_modules/aws-sdk/lib/signers/v2.js create mode 100644 node_modules/aws-sdk/lib/signers/v3.js create mode 100644 node_modules/aws-sdk/lib/signers/v3https.js create mode 100644 node_modules/aws-sdk/lib/signers/v4.js create mode 100644 node_modules/aws-sdk/lib/state_machine.js create mode 100644 node_modules/aws-sdk/lib/util.js create mode 100644 node_modules/aws-sdk/lib/xml/browser_parser.js create mode 100644 node_modules/aws-sdk/lib/xml/builder.js create mode 100644 node_modules/aws-sdk/lib/xml/node_parser.js create mode 100644 node_modules/aws-sdk/node_modules/aws-sdk-apis/.npmignore create mode 100644 node_modules/aws-sdk/node_modules/aws-sdk-apis/LICENSE.txt create mode 100644 node_modules/aws-sdk/node_modules/aws-sdk-apis/README.md create mode 100644 node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/AutoScaling-2011-01-01.json create mode 100644 node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/CloudFormation-2010-05-15.json create mode 100644 node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/CloudFront-2014-01-31.json create mode 100644 node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/CloudSearch-2011-02-01.json create mode 100644 node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/CloudSearch-2013-01-01.json create mode 100644 node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/CloudTrail-2013-11-01.json create mode 100644 node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/CloudWatch-2010-08-01.json create mode 100644 node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/DataPipeline-2012-10-29.json create mode 100644 node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/DirectConnect-2012-10-25.json create mode 100644 node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/DynamoDB-2011-12-05.json create mode 100644 node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/DynamoDB-2012-08-10.json create mode 100644 node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/EC2-2014-02-01.json create mode 100644 node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/ELB-2012-06-01.json create mode 100644 node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/EMR-2009-03-31.json create mode 100644 node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/ElastiCache-2013-06-15.json create mode 100644 node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/ElasticBeanstalk-2010-12-01.json create mode 100644 node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/ElasticTranscoder-2012-09-25.json create mode 100644 node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/Glacier-2012-06-01.json create mode 100644 node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/IAM-2010-05-08.json create mode 100644 node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/ImportExport-2010-06-01.json create mode 100644 node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/Kinesis-2013-12-02.json create mode 100644 node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/OpsWorks-2013-02-18.json create mode 100644 node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/RDS-2013-09-09.json create mode 100644 node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/Redshift-2012-12-01.json create mode 100644 node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/Route53-2013-04-01.json create mode 100644 node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/S3-2006-03-01.json create mode 100644 node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/SES-2010-12-01.json create mode 100644 node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/SNS-2010-03-31.json create mode 100644 node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/SQS-2012-11-05.json create mode 100644 node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/STS-2011-06-15.json create mode 100644 node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/SWF-2012-01-25.json create mode 100644 node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/SimpleDB-2009-04-15.json create mode 100644 node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/StorageGateway-2013-06-30.json create mode 100644 node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/Support-2013-04-15.json create mode 100644 node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/symlinks.json create mode 100644 node_modules/aws-sdk/node_modules/aws-sdk-apis/index.js create mode 100644 node_modules/aws-sdk/node_modules/aws-sdk-apis/lib/translator.js create mode 100644 node_modules/aws-sdk/node_modules/aws-sdk-apis/package.json create mode 100644 node_modules/aws-sdk/node_modules/xml2js/.npmignore create mode 100644 node_modules/aws-sdk/node_modules/xml2js/.travis.yml create mode 100644 node_modules/aws-sdk/node_modules/xml2js/Cakefile create mode 100644 node_modules/aws-sdk/node_modules/xml2js/LICENSE create mode 100644 node_modules/aws-sdk/node_modules/xml2js/README.md create mode 100644 node_modules/aws-sdk/node_modules/xml2js/lib/xml2js.js create mode 100644 node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/AUTHORS create mode 100644 node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/LICENSE create mode 100644 node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/LICENSE-W3C.html create mode 100644 node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/README.md create mode 100644 node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/component.json create mode 100644 node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/examples/big-not-pretty.xml create mode 100644 node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/examples/example.js create mode 100644 node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/examples/get-products.js create mode 100644 node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/examples/hello-world.js create mode 100644 node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/examples/not-pretty.xml create mode 100644 node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/examples/pretty-print.js create mode 100644 node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/examples/shopping.xml create mode 100644 node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/examples/strict.dtd create mode 100644 node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/examples/test.html create mode 100644 node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/examples/test.xml create mode 100644 node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/lib/sax.js create mode 100644 node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/package.json create mode 100644 node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/attribute-name.js create mode 100644 node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/attribute-no-space.js create mode 100644 node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/buffer-overrun.js create mode 100644 node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/case.js create mode 100644 node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/cdata-chunked.js create mode 100644 node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/cdata-end-split.js create mode 100644 node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/cdata-fake-end.js create mode 100644 node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/cdata-multiple.js create mode 100644 node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/cdata.js create mode 100644 node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/cyrillic.js create mode 100644 node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/duplicate-attribute.js create mode 100644 node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/emoji.js create mode 100644 node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/end_empty_stream.js create mode 100644 node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/entities.js create mode 100644 node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/entity-mega.js create mode 100644 node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/flush.js create mode 100644 node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/index.js create mode 100644 node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/issue-23.js create mode 100644 node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/issue-30.js create mode 100644 node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/issue-35.js create mode 100644 node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/issue-47.js create mode 100644 node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/issue-49.js create mode 100644 node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/issue-84.js create mode 100644 node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/parser-position.js create mode 100644 node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/script-close-better.js create mode 100644 node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/script.js create mode 100644 node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/self-closing-child-strict.js create mode 100644 node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/self-closing-child.js create mode 100644 node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/self-closing-tag.js create mode 100644 node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/stray-ending.js create mode 100644 node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/trailing-attribute-no-value.js create mode 100644 node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/trailing-non-whitespace.js create mode 100644 node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/unclosed-root.js create mode 100644 node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/unquoted.js create mode 100644 node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/utf8-split.js create mode 100644 node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/xmlns-as-tag-name.js create mode 100644 node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/xmlns-issue-41.js create mode 100644 node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/xmlns-rebinding.js create mode 100644 node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/xmlns-strict.js create mode 100644 node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/xmlns-unbound-element.js create mode 100644 node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/xmlns-unbound.js create mode 100644 node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/xmlns-xml-default-ns.js create mode 100644 node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/xmlns-xml-default-prefix-attribute.js create mode 100644 node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/xmlns-xml-default-prefix.js create mode 100644 node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/xmlns-xml-default-redefine.js create mode 100644 node_modules/aws-sdk/node_modules/xml2js/package.json create mode 100644 node_modules/aws-sdk/node_modules/xml2js/src/xml2js.coffee create mode 100644 node_modules/aws-sdk/node_modules/xml2js/test/fixtures/sample.xml create mode 100644 node_modules/aws-sdk/node_modules/xml2js/test/xml2js.test.coffee create mode 100644 node_modules/aws-sdk/node_modules/xmlbuilder/.npmignore create mode 100644 node_modules/aws-sdk/node_modules/xmlbuilder/README.md create mode 100644 node_modules/aws-sdk/node_modules/xmlbuilder/lib/XMLBuilder.js create mode 100644 node_modules/aws-sdk/node_modules/xmlbuilder/lib/XMLFragment.js create mode 100644 node_modules/aws-sdk/node_modules/xmlbuilder/lib/index.js create mode 100644 node_modules/aws-sdk/node_modules/xmlbuilder/package.json create mode 100644 node_modules/aws-sdk/package.json create mode 100644 node_modules/aws-sdk/scripts/console create mode 100644 node_modules/aws-sdk/scripts/coverage create mode 100644 node_modules/aws-sdk/testem.json create mode 100644 node_modules/coalesce/.npmignore create mode 100644 node_modules/coalesce/Procfile create mode 100644 node_modules/coalesce/README.md create mode 100644 node_modules/coalesce/assemble.sh create mode 100644 node_modules/coalesce/coalesce.js create mode 100644 node_modules/coalesce/init.js create mode 100644 node_modules/coalesce/license create mode 100644 node_modules/coalesce/node_modules/formidable/.npmignore create mode 100644 node_modules/coalesce/node_modules/formidable/.travis.yml create mode 100644 node_modules/coalesce/node_modules/formidable/Makefile create mode 100644 node_modules/coalesce/node_modules/formidable/Readme.md create mode 100644 node_modules/coalesce/node_modules/formidable/TODO create mode 100644 node_modules/coalesce/node_modules/formidable/benchmark/bench-multipart-parser.js create mode 100644 node_modules/coalesce/node_modules/formidable/example/post.js create mode 100644 node_modules/coalesce/node_modules/formidable/example/upload.js create mode 100644 node_modules/coalesce/node_modules/formidable/index.js create mode 100644 node_modules/coalesce/node_modules/formidable/lib/file.js create mode 100644 node_modules/coalesce/node_modules/formidable/lib/incoming_form.js create mode 100644 node_modules/coalesce/node_modules/formidable/lib/index.js create mode 100644 node_modules/coalesce/node_modules/formidable/lib/multipart_parser.js create mode 100644 node_modules/coalesce/node_modules/formidable/lib/querystring_parser.js create mode 100644 node_modules/coalesce/node_modules/formidable/lib/util.js create mode 100644 node_modules/coalesce/node_modules/formidable/node-gently/Makefile create mode 100644 node_modules/coalesce/node_modules/formidable/node-gently/Readme.md create mode 100644 node_modules/coalesce/node_modules/formidable/node-gently/example/dog.js create mode 100644 node_modules/coalesce/node_modules/formidable/node-gently/example/event_emitter.js create mode 100644 node_modules/coalesce/node_modules/formidable/node-gently/index.js create mode 100644 node_modules/coalesce/node_modules/formidable/node-gently/lib/gently/gently.js create mode 100644 node_modules/coalesce/node_modules/formidable/node-gently/lib/gently/index.js create mode 100644 node_modules/coalesce/node_modules/formidable/node-gently/package.json create mode 100644 node_modules/coalesce/node_modules/formidable/node-gently/test/common.js create mode 100644 node_modules/coalesce/node_modules/formidable/node-gently/test/simple/test-gently.js create mode 100644 node_modules/coalesce/node_modules/formidable/package.json create mode 100644 node_modules/coalesce/node_modules/formidable/test/common.js create mode 100644 node_modules/coalesce/node_modules/formidable/test/fixture/file/funkyfilename.txt create mode 100644 node_modules/coalesce/node_modules/formidable/test/fixture/file/plain.txt create mode 100644 node_modules/coalesce/node_modules/formidable/test/fixture/http/special-chars-in-filename/info.md create mode 100644 node_modules/coalesce/node_modules/formidable/test/fixture/js/no-filename.js create mode 100644 node_modules/coalesce/node_modules/formidable/test/fixture/js/special-chars-in-filename.js create mode 100644 node_modules/coalesce/node_modules/formidable/test/fixture/multipart.js create mode 100644 node_modules/coalesce/node_modules/formidable/test/integration/test-fixtures.js create mode 100644 node_modules/coalesce/node_modules/formidable/test/legacy/common.js create mode 100644 node_modules/coalesce/node_modules/formidable/test/legacy/integration/test-multipart-parser.js create mode 100644 node_modules/coalesce/node_modules/formidable/test/legacy/simple/test-file.js create mode 100644 node_modules/coalesce/node_modules/formidable/test/legacy/simple/test-incoming-form.js create mode 100644 node_modules/coalesce/node_modules/formidable/test/legacy/simple/test-multipart-parser.js create mode 100644 node_modules/coalesce/node_modules/formidable/test/legacy/simple/test-querystring-parser.js create mode 100644 node_modules/coalesce/node_modules/formidable/test/legacy/system/test-multi-video-upload.js create mode 100644 node_modules/coalesce/node_modules/formidable/test/run.js create mode 100644 node_modules/coalesce/node_modules/formidable/test/unit/test-incoming-form.js create mode 100644 node_modules/coalesce/node_modules/formidable/tool/record.js create mode 100644 node_modules/coalesce/node_modules/node-static/.npmignore create mode 100644 node_modules/coalesce/node_modules/node-static/LICENSE create mode 100644 node_modules/coalesce/node_modules/node-static/README.md create mode 100644 node_modules/coalesce/node_modules/node-static/benchmark/node-static-0.3.0.txt create mode 100644 node_modules/coalesce/node_modules/node-static/bin/cli.js create mode 100644 node_modules/coalesce/node_modules/node-static/etc/404.html create mode 100644 node_modules/coalesce/node_modules/node-static/etc/trainwreck.jpg create mode 100644 node_modules/coalesce/node_modules/node-static/examples/file-server.js create mode 100644 node_modules/coalesce/node_modules/node-static/lib/node-static.js create mode 100644 node_modules/coalesce/node_modules/node-static/lib/node-static/util.js create mode 100644 node_modules/coalesce/node_modules/node-static/node_modules/colors/MIT-LICENSE.txt create mode 100644 node_modules/coalesce/node_modules/node-static/node_modules/colors/ReadMe.md create mode 100644 node_modules/coalesce/node_modules/node-static/node_modules/colors/colors.js create mode 100644 node_modules/coalesce/node_modules/node-static/node_modules/colors/example.html create mode 100644 node_modules/coalesce/node_modules/node-static/node_modules/colors/example.js create mode 100644 node_modules/coalesce/node_modules/node-static/node_modules/colors/package.json create mode 100644 node_modules/coalesce/node_modules/node-static/node_modules/colors/test.js create mode 100644 node_modules/coalesce/node_modules/node-static/node_modules/colors/themes/winston-dark.js create mode 100644 node_modules/coalesce/node_modules/node-static/node_modules/colors/themes/winston-light.js create mode 100644 node_modules/coalesce/node_modules/node-static/node_modules/optimist/.travis.yml create mode 100644 node_modules/coalesce/node_modules/node-static/node_modules/optimist/LICENSE create mode 100644 node_modules/coalesce/node_modules/node-static/node_modules/optimist/example/bool.js create mode 100644 node_modules/coalesce/node_modules/node-static/node_modules/optimist/example/boolean_double.js create mode 100644 node_modules/coalesce/node_modules/node-static/node_modules/optimist/example/boolean_single.js create mode 100644 node_modules/coalesce/node_modules/node-static/node_modules/optimist/example/default_hash.js create mode 100644 node_modules/coalesce/node_modules/node-static/node_modules/optimist/example/default_singles.js create mode 100644 node_modules/coalesce/node_modules/node-static/node_modules/optimist/example/divide.js create mode 100644 node_modules/coalesce/node_modules/node-static/node_modules/optimist/example/line_count.js create mode 100644 node_modules/coalesce/node_modules/node-static/node_modules/optimist/example/line_count_options.js create mode 100644 node_modules/coalesce/node_modules/node-static/node_modules/optimist/example/line_count_wrap.js create mode 100644 node_modules/coalesce/node_modules/node-static/node_modules/optimist/example/nonopt.js create mode 100644 node_modules/coalesce/node_modules/node-static/node_modules/optimist/example/reflect.js create mode 100644 node_modules/coalesce/node_modules/node-static/node_modules/optimist/example/short.js create mode 100644 node_modules/coalesce/node_modules/node-static/node_modules/optimist/example/string.js create mode 100644 node_modules/coalesce/node_modules/node-static/node_modules/optimist/example/usage-options.js create mode 100644 node_modules/coalesce/node_modules/node-static/node_modules/optimist/example/xup.js create mode 100644 node_modules/coalesce/node_modules/node-static/node_modules/optimist/index.js create mode 100644 node_modules/coalesce/node_modules/node-static/node_modules/optimist/node_modules/minimist/.travis.yml create mode 100644 node_modules/coalesce/node_modules/node-static/node_modules/optimist/node_modules/minimist/LICENSE create mode 100644 node_modules/coalesce/node_modules/node-static/node_modules/optimist/node_modules/minimist/example/parse.js create mode 100644 node_modules/coalesce/node_modules/node-static/node_modules/optimist/node_modules/minimist/index.js create mode 100644 node_modules/coalesce/node_modules/node-static/node_modules/optimist/node_modules/minimist/package.json create mode 100644 node_modules/coalesce/node_modules/node-static/node_modules/optimist/node_modules/minimist/readme.markdown create mode 100644 node_modules/coalesce/node_modules/node-static/node_modules/optimist/node_modules/minimist/test/dash.js create mode 100644 node_modules/coalesce/node_modules/node-static/node_modules/optimist/node_modules/minimist/test/default_bool.js create mode 100644 node_modules/coalesce/node_modules/node-static/node_modules/optimist/node_modules/minimist/test/dotted.js create mode 100644 node_modules/coalesce/node_modules/node-static/node_modules/optimist/node_modules/minimist/test/long.js create mode 100644 node_modules/coalesce/node_modules/node-static/node_modules/optimist/node_modules/minimist/test/parse.js create mode 100644 node_modules/coalesce/node_modules/node-static/node_modules/optimist/node_modules/minimist/test/parse_modified.js create mode 100644 node_modules/coalesce/node_modules/node-static/node_modules/optimist/node_modules/minimist/test/short.js create mode 100644 node_modules/coalesce/node_modules/node-static/node_modules/optimist/node_modules/minimist/test/whitespace.js create mode 100644 node_modules/coalesce/node_modules/node-static/node_modules/optimist/node_modules/wordwrap/.npmignore create mode 100644 node_modules/coalesce/node_modules/node-static/node_modules/optimist/node_modules/wordwrap/README.markdown create mode 100644 node_modules/coalesce/node_modules/node-static/node_modules/optimist/node_modules/wordwrap/example/center.js create mode 100644 node_modules/coalesce/node_modules/node-static/node_modules/optimist/node_modules/wordwrap/example/meat.js create mode 100644 node_modules/coalesce/node_modules/node-static/node_modules/optimist/node_modules/wordwrap/index.js create mode 100644 node_modules/coalesce/node_modules/node-static/node_modules/optimist/node_modules/wordwrap/package.json create mode 100644 node_modules/coalesce/node_modules/node-static/node_modules/optimist/node_modules/wordwrap/test/break.js create mode 100644 node_modules/coalesce/node_modules/node-static/node_modules/optimist/node_modules/wordwrap/test/idleness.txt create mode 100644 node_modules/coalesce/node_modules/node-static/node_modules/optimist/node_modules/wordwrap/test/wrap.js create mode 100644 node_modules/coalesce/node_modules/node-static/node_modules/optimist/package.json create mode 100644 node_modules/coalesce/node_modules/node-static/node_modules/optimist/readme.markdown create mode 100644 node_modules/coalesce/node_modules/node-static/node_modules/optimist/test/_.js create mode 100644 node_modules/coalesce/node_modules/node-static/node_modules/optimist/test/_/argv.js create mode 100644 node_modules/coalesce/node_modules/node-static/node_modules/optimist/test/_/bin.js create mode 100644 node_modules/coalesce/node_modules/node-static/node_modules/optimist/test/dash.js create mode 100644 node_modules/coalesce/node_modules/node-static/node_modules/optimist/test/parse.js create mode 100644 node_modules/coalesce/node_modules/node-static/node_modules/optimist/test/parse_modified.js create mode 100644 node_modules/coalesce/node_modules/node-static/node_modules/optimist/test/short.js create mode 100644 node_modules/coalesce/node_modules/node-static/node_modules/optimist/test/usage.js create mode 100644 node_modules/coalesce/node_modules/node-static/node_modules/optimist/test/whitespace.js create mode 100644 node_modules/coalesce/node_modules/node-static/package.json create mode 100644 node_modules/coalesce/node_modules/node-static/test/fixtures/hello.txt create mode 100644 node_modules/coalesce/node_modules/node-static/test/fixtures/index.html create mode 100644 node_modules/coalesce/node_modules/node-static/test/fixtures/there/index.html create mode 100644 node_modules/coalesce/node_modules/node-static/test/integration/node-static-test.js create mode 100644 node_modules/coalesce/node_modules/sockjs-client/.npmignore create mode 100644 node_modules/coalesce/node_modules/sockjs-client/README.md create mode 100644 node_modules/coalesce/node_modules/sockjs-client/index.js create mode 100644 node_modules/coalesce/node_modules/sockjs-client/lib/sockjs-client.js create mode 100644 node_modules/coalesce/node_modules/sockjs-client/node_modules/node-uuid/.npmignore create mode 100644 node_modules/coalesce/node_modules/sockjs-client/node_modules/node-uuid/LICENSE.md create mode 100644 node_modules/coalesce/node_modules/sockjs-client/node_modules/node-uuid/README.md create mode 100644 node_modules/coalesce/node_modules/sockjs-client/node_modules/node-uuid/benchmark/README.md create mode 100644 node_modules/coalesce/node_modules/sockjs-client/node_modules/node-uuid/benchmark/bench.gnu create mode 100644 node_modules/coalesce/node_modules/sockjs-client/node_modules/node-uuid/benchmark/bench.sh create mode 100644 node_modules/coalesce/node_modules/sockjs-client/node_modules/node-uuid/benchmark/benchmark-native.c create mode 100644 node_modules/coalesce/node_modules/sockjs-client/node_modules/node-uuid/benchmark/benchmark.js create mode 100644 node_modules/coalesce/node_modules/sockjs-client/node_modules/node-uuid/package.json create mode 100644 node_modules/coalesce/node_modules/sockjs-client/node_modules/node-uuid/test/compare_v1.js create mode 100644 node_modules/coalesce/node_modules/sockjs-client/node_modules/node-uuid/test/test.html create mode 100644 node_modules/coalesce/node_modules/sockjs-client/node_modules/node-uuid/test/test.js create mode 100644 node_modules/coalesce/node_modules/sockjs-client/node_modules/node-uuid/uuid.js create mode 100644 node_modules/coalesce/node_modules/sockjs-client/package.json create mode 100644 node_modules/coalesce/node_modules/sockjs/.npmignore create mode 100644 node_modules/coalesce/node_modules/sockjs/COPYING create mode 100644 node_modules/coalesce/node_modules/sockjs/Changelog create mode 100644 node_modules/coalesce/node_modules/sockjs/LICENSE-MIT-SockJS create mode 100644 node_modules/coalesce/node_modules/sockjs/Makefile create mode 100644 node_modules/coalesce/node_modules/sockjs/README.md create mode 100644 node_modules/coalesce/node_modules/sockjs/examples/echo/README.md create mode 100644 node_modules/coalesce/node_modules/sockjs/examples/echo/index.html create mode 100644 node_modules/coalesce/node_modules/sockjs/examples/echo/package.json create mode 100644 node_modules/coalesce/node_modules/sockjs/examples/echo/server.js create mode 100644 node_modules/coalesce/node_modules/sockjs/examples/express-3.x/index.html create mode 100644 node_modules/coalesce/node_modules/sockjs/examples/express-3.x/package.json create mode 100644 node_modules/coalesce/node_modules/sockjs/examples/express-3.x/server.js create mode 100644 node_modules/coalesce/node_modules/sockjs/examples/express/index.html create mode 100644 node_modules/coalesce/node_modules/sockjs/examples/express/package.json create mode 100644 node_modules/coalesce/node_modules/sockjs/examples/express/server.js create mode 100644 node_modules/coalesce/node_modules/sockjs/examples/haproxy.cfg create mode 100644 node_modules/coalesce/node_modules/sockjs/examples/multiplex/README.md create mode 100644 node_modules/coalesce/node_modules/sockjs/examples/multiplex/index.html create mode 100644 node_modules/coalesce/node_modules/sockjs/examples/multiplex/package.json create mode 100644 node_modules/coalesce/node_modules/sockjs/examples/multiplex/server.js create mode 100644 node_modules/coalesce/node_modules/sockjs/examples/test_server/README.md create mode 100644 node_modules/coalesce/node_modules/sockjs/examples/test_server/config.js create mode 100644 node_modules/coalesce/node_modules/sockjs/examples/test_server/package.json create mode 100644 node_modules/coalesce/node_modules/sockjs/examples/test_server/server.js create mode 100644 node_modules/coalesce/node_modules/sockjs/examples/test_server/sockjs_app.js create mode 100644 node_modules/coalesce/node_modules/sockjs/index.js create mode 100644 node_modules/coalesce/node_modules/sockjs/lib/chunking-test.js create mode 100644 node_modules/coalesce/node_modules/sockjs/lib/iframe.js create mode 100644 node_modules/coalesce/node_modules/sockjs/lib/sockjs.js create mode 100644 node_modules/coalesce/node_modules/sockjs/lib/trans-eventsource.js create mode 100644 node_modules/coalesce/node_modules/sockjs/lib/trans-htmlfile.js create mode 100644 node_modules/coalesce/node_modules/sockjs/lib/trans-jsonp.js create mode 100644 node_modules/coalesce/node_modules/sockjs/lib/trans-websocket.js create mode 100644 node_modules/coalesce/node_modules/sockjs/lib/trans-xhr.js create mode 100644 node_modules/coalesce/node_modules/sockjs/lib/transport.js create mode 100644 node_modules/coalesce/node_modules/sockjs/lib/utils.js create mode 100644 node_modules/coalesce/node_modules/sockjs/lib/webjs.js create mode 100644 node_modules/coalesce/node_modules/sockjs/node_modules/faye-websocket/CHANGELOG.md create mode 100644 node_modules/coalesce/node_modules/sockjs/node_modules/faye-websocket/README.md create mode 100644 node_modules/coalesce/node_modules/sockjs/node_modules/faye-websocket/examples/autobahn_client.js create mode 100644 node_modules/coalesce/node_modules/sockjs/node_modules/faye-websocket/examples/client.js create mode 100644 node_modules/coalesce/node_modules/sockjs/node_modules/faye-websocket/examples/haproxy.conf create mode 100644 node_modules/coalesce/node_modules/sockjs/node_modules/faye-websocket/examples/server.js create mode 100644 node_modules/coalesce/node_modules/sockjs/node_modules/faye-websocket/examples/sse.html create mode 100644 node_modules/coalesce/node_modules/sockjs/node_modules/faye-websocket/examples/ws.html create mode 100644 node_modules/coalesce/node_modules/sockjs/node_modules/faye-websocket/lib/faye/eventsource.js create mode 100644 node_modules/coalesce/node_modules/sockjs/node_modules/faye-websocket/lib/faye/websocket.js create mode 100644 node_modules/coalesce/node_modules/sockjs/node_modules/faye-websocket/lib/faye/websocket/api.js create mode 100644 node_modules/coalesce/node_modules/sockjs/node_modules/faye-websocket/lib/faye/websocket/api/event.js create mode 100644 node_modules/coalesce/node_modules/sockjs/node_modules/faye-websocket/lib/faye/websocket/api/event_target.js create mode 100644 node_modules/coalesce/node_modules/sockjs/node_modules/faye-websocket/lib/faye/websocket/client.js create mode 100644 node_modules/coalesce/node_modules/sockjs/node_modules/faye-websocket/node_modules/websocket-driver/CHANGELOG.md create mode 100644 node_modules/coalesce/node_modules/sockjs/node_modules/faye-websocket/node_modules/websocket-driver/README.md create mode 100644 node_modules/coalesce/node_modules/sockjs/node_modules/faye-websocket/node_modules/websocket-driver/examples/tcp_server.js create mode 100644 node_modules/coalesce/node_modules/sockjs/node_modules/faye-websocket/node_modules/websocket-driver/lib/websocket/driver.js create mode 100644 node_modules/coalesce/node_modules/sockjs/node_modules/faye-websocket/node_modules/websocket-driver/lib/websocket/driver/base.js create mode 100644 node_modules/coalesce/node_modules/sockjs/node_modules/faye-websocket/node_modules/websocket-driver/lib/websocket/driver/client.js create mode 100644 node_modules/coalesce/node_modules/sockjs/node_modules/faye-websocket/node_modules/websocket-driver/lib/websocket/driver/draft75.js create mode 100644 node_modules/coalesce/node_modules/sockjs/node_modules/faye-websocket/node_modules/websocket-driver/lib/websocket/driver/draft76.js create mode 100644 node_modules/coalesce/node_modules/sockjs/node_modules/faye-websocket/node_modules/websocket-driver/lib/websocket/driver/headers.js create mode 100644 node_modules/coalesce/node_modules/sockjs/node_modules/faye-websocket/node_modules/websocket-driver/lib/websocket/driver/http_parser.js create mode 100644 node_modules/coalesce/node_modules/sockjs/node_modules/faye-websocket/node_modules/websocket-driver/lib/websocket/driver/hybi.js create mode 100644 node_modules/coalesce/node_modules/sockjs/node_modules/faye-websocket/node_modules/websocket-driver/lib/websocket/driver/hybi/stream_reader.js create mode 100644 node_modules/coalesce/node_modules/sockjs/node_modules/faye-websocket/node_modules/websocket-driver/lib/websocket/driver/server.js create mode 100644 node_modules/coalesce/node_modules/sockjs/node_modules/faye-websocket/node_modules/websocket-driver/lib/websocket/streams.js create mode 100644 node_modules/coalesce/node_modules/sockjs/node_modules/faye-websocket/node_modules/websocket-driver/package.json create mode 100644 node_modules/coalesce/node_modules/sockjs/node_modules/faye-websocket/package.json create mode 100644 node_modules/coalesce/node_modules/sockjs/node_modules/node-uuid/.npmignore create mode 100644 node_modules/coalesce/node_modules/sockjs/node_modules/node-uuid/LICENSE.md create mode 100644 node_modules/coalesce/node_modules/sockjs/node_modules/node-uuid/README.md create mode 100644 node_modules/coalesce/node_modules/sockjs/node_modules/node-uuid/benchmark/README.md create mode 100644 node_modules/coalesce/node_modules/sockjs/node_modules/node-uuid/benchmark/bench.gnu create mode 100644 node_modules/coalesce/node_modules/sockjs/node_modules/node-uuid/benchmark/bench.sh create mode 100644 node_modules/coalesce/node_modules/sockjs/node_modules/node-uuid/benchmark/benchmark-native.c create mode 100644 node_modules/coalesce/node_modules/sockjs/node_modules/node-uuid/benchmark/benchmark.js create mode 100644 node_modules/coalesce/node_modules/sockjs/node_modules/node-uuid/package.json create mode 100644 node_modules/coalesce/node_modules/sockjs/node_modules/node-uuid/test/compare_v1.js create mode 100644 node_modules/coalesce/node_modules/sockjs/node_modules/node-uuid/test/test.html create mode 100644 node_modules/coalesce/node_modules/sockjs/node_modules/node-uuid/test/test.js create mode 100644 node_modules/coalesce/node_modules/sockjs/node_modules/node-uuid/uuid.js create mode 100644 node_modules/coalesce/node_modules/sockjs/package.json create mode 100644 node_modules/coalesce/package.json create mode 100644 node_modules/coalesce/test/initA.js create mode 100644 node_modules/coalesce/test/initB.js create mode 100644 node_modules/coalesce/test/serverA.js create mode 100644 node_modules/coalesce/test/serverB.js create mode 100644 node_modules/fakeredis/.npmignore create mode 100644 node_modules/fakeredis/.travis.yml create mode 100644 node_modules/fakeredis/README.md create mode 100644 node_modules/fakeredis/lib/backend.js create mode 100644 node_modules/fakeredis/lib/connection.js create mode 100644 node_modules/fakeredis/lib/helpers.js create mode 100644 node_modules/fakeredis/main.js create mode 100644 node_modules/fakeredis/package.json create mode 100644 node_modules/fakeredis/test.js create mode 100644 node_modules/hiredis/COPYING create mode 100644 node_modules/hiredis/README.md create mode 100644 node_modules/hiredis/bench.js create mode 100644 node_modules/hiredis/binding.gyp create mode 100644 node_modules/hiredis/build/Makefile create mode 100644 node_modules/hiredis/build/Release/.deps/Release/hiredis.a.d create mode 100644 node_modules/hiredis/build/Release/.deps/Release/hiredis.node.d create mode 100644 node_modules/hiredis/build/Release/.deps/Release/obj.target/deps/hiredis.a.d create mode 100644 node_modules/hiredis/build/Release/.deps/Release/obj.target/hiredis.node.d create mode 100644 node_modules/hiredis/build/Release/.deps/Release/obj.target/hiredis/deps/hiredis/async.o.d create mode 100644 node_modules/hiredis/build/Release/.deps/Release/obj.target/hiredis/deps/hiredis/hiredis.o.d create mode 100644 node_modules/hiredis/build/Release/.deps/Release/obj.target/hiredis/deps/hiredis/net.o.d create mode 100644 node_modules/hiredis/build/Release/.deps/Release/obj.target/hiredis/deps/hiredis/sds.o.d create mode 100644 node_modules/hiredis/build/Release/.deps/Release/obj.target/hiredis/src/hiredis.o.d create mode 100644 node_modules/hiredis/build/Release/.deps/Release/obj.target/hiredis/src/reader.o.d create mode 100644 node_modules/hiredis/build/Release/hiredis.a create mode 100644 node_modules/hiredis/build/Release/hiredis.node create mode 100644 node_modules/hiredis/build/Release/linker.lock create mode 100644 node_modules/hiredis/build/Release/obj.target/deps/hiredis.a create mode 100644 node_modules/hiredis/build/Release/obj.target/hiredis.node create mode 100644 node_modules/hiredis/build/Release/obj.target/hiredis/deps/hiredis/async.o create mode 100644 node_modules/hiredis/build/Release/obj.target/hiredis/deps/hiredis/hiredis.o create mode 100644 node_modules/hiredis/build/Release/obj.target/hiredis/deps/hiredis/net.o create mode 100644 node_modules/hiredis/build/Release/obj.target/hiredis/deps/hiredis/sds.o create mode 100644 node_modules/hiredis/build/Release/obj.target/hiredis/src/hiredis.o create mode 100644 node_modules/hiredis/build/Release/obj.target/hiredis/src/reader.o create mode 100644 node_modules/hiredis/build/binding.Makefile create mode 100644 node_modules/hiredis/build/config.gypi create mode 100644 node_modules/hiredis/build/deps/hiredis.Makefile create mode 100644 node_modules/hiredis/build/deps/hiredis.target.mk create mode 100644 node_modules/hiredis/build/hiredis.target.mk create mode 100644 node_modules/hiredis/deps/hiredis.gyp create mode 100644 node_modules/hiredis/deps/hiredis/CHANGELOG.md create mode 100644 node_modules/hiredis/deps/hiredis/COPYING create mode 100644 node_modules/hiredis/deps/hiredis/Makefile create mode 100644 node_modules/hiredis/deps/hiredis/README.md create mode 100644 node_modules/hiredis/deps/hiredis/adapters/ae.h create mode 100644 node_modules/hiredis/deps/hiredis/adapters/libev.h create mode 100644 node_modules/hiredis/deps/hiredis/adapters/libevent.h create mode 100644 node_modules/hiredis/deps/hiredis/async.c create mode 100644 node_modules/hiredis/deps/hiredis/async.h create mode 100644 node_modules/hiredis/deps/hiredis/dict.c create mode 100644 node_modules/hiredis/deps/hiredis/dict.h create mode 100644 node_modules/hiredis/deps/hiredis/example-ae.c create mode 100644 node_modules/hiredis/deps/hiredis/example-libev.c create mode 100644 node_modules/hiredis/deps/hiredis/example-libevent.c create mode 100644 node_modules/hiredis/deps/hiredis/example.c create mode 100644 node_modules/hiredis/deps/hiredis/fmacros.h create mode 100644 node_modules/hiredis/deps/hiredis/hiredis.c create mode 100644 node_modules/hiredis/deps/hiredis/hiredis.h create mode 100644 node_modules/hiredis/deps/hiredis/net.c create mode 100644 node_modules/hiredis/deps/hiredis/net.h create mode 100644 node_modules/hiredis/deps/hiredis/sds.c create mode 100644 node_modules/hiredis/deps/hiredis/sds.h create mode 100644 node_modules/hiredis/deps/hiredis/test.c create mode 100644 node_modules/hiredis/hiredis.js create mode 100644 node_modules/hiredis/node_modules/bindings/README.md create mode 100644 node_modules/hiredis/node_modules/bindings/bindings.js create mode 100644 node_modules/hiredis/node_modules/bindings/package.json create mode 100644 node_modules/hiredis/package.json create mode 100644 node_modules/hiredis/src/hiredis.cc create mode 100644 node_modules/hiredis/src/reader.cc create mode 100644 node_modules/hiredis/src/reader.h create mode 100644 node_modules/hiredis/test/reader.js create mode 100644 node_modules/mime/LICENSE create mode 100644 node_modules/mime/README.md create mode 100644 node_modules/mime/mime.js create mode 100644 node_modules/mime/package.json create mode 100644 node_modules/mime/test.js create mode 100644 node_modules/mime/types/mime.types create mode 100644 node_modules/mime/types/node.types create mode 100644 node_modules/redis/.npmignore create mode 100644 node_modules/redis/README.md create mode 100644 node_modules/redis/benches/buffer_bench.js create mode 100644 node_modules/redis/benches/hiredis_parser.js create mode 100644 node_modules/redis/benches/re_sub_test.js create mode 100644 node_modules/redis/benches/reconnect_test.js create mode 100644 node_modules/redis/benches/stress/codec.js create mode 100644 node_modules/redis/benches/stress/pubsub/pub.js create mode 100644 node_modules/redis/benches/stress/pubsub/run create mode 100644 node_modules/redis/benches/stress/pubsub/server.js create mode 100644 node_modules/redis/benches/stress/rpushblpop/pub.js create mode 100644 node_modules/redis/benches/stress/rpushblpop/run create mode 100644 node_modules/redis/benches/stress/rpushblpop/server.js create mode 100644 node_modules/redis/benches/stress/speed/00 create mode 100644 node_modules/redis/benches/stress/speed/plot create mode 100644 node_modules/redis/benches/stress/speed/size-rate.png create mode 100644 node_modules/redis/benches/stress/speed/speed.js create mode 100644 node_modules/redis/benches/sub_quit_test.js create mode 100644 node_modules/redis/changelog.md create mode 100644 node_modules/redis/diff_multi_bench_output.js create mode 100644 node_modules/redis/examples/auth.js create mode 100644 node_modules/redis/examples/backpressure_drain.js create mode 100644 node_modules/redis/examples/eval.js create mode 100644 node_modules/redis/examples/extend.js create mode 100644 node_modules/redis/examples/file.js create mode 100644 node_modules/redis/examples/mget.js create mode 100644 node_modules/redis/examples/monitor.js create mode 100644 node_modules/redis/examples/multi.js create mode 100644 node_modules/redis/examples/multi2.js create mode 100644 node_modules/redis/examples/psubscribe.js create mode 100644 node_modules/redis/examples/pub_sub.js create mode 100644 node_modules/redis/examples/simple.js create mode 100644 node_modules/redis/examples/sort.js create mode 100644 node_modules/redis/examples/subqueries.js create mode 100644 node_modules/redis/examples/subquery.js create mode 100644 node_modules/redis/examples/unix_socket.js create mode 100644 node_modules/redis/examples/web_server.js create mode 100644 node_modules/redis/generate_commands.js create mode 100644 node_modules/redis/index.js create mode 100644 node_modules/redis/lib/commands.js create mode 100644 node_modules/redis/lib/parser/hiredis.js create mode 100644 node_modules/redis/lib/parser/javascript.js create mode 100644 node_modules/redis/lib/queue.js create mode 100644 node_modules/redis/lib/to_array.js create mode 100644 node_modules/redis/lib/util.js create mode 100644 node_modules/redis/multi_bench.js create mode 100644 node_modules/redis/package.json create mode 100644 node_modules/redis/test-unref.js create mode 100644 node_modules/redis/test.js create mode 100644 node_modules/theory/README.md create mode 100644 node_modules/theory/package.json create mode 100644 node_modules/theory/test/a.js create mode 100644 node_modules/theory/test/all.js create mode 100644 node_modules/theory/test/amd.html create mode 100644 node_modules/theory/test/array_is.js create mode 100644 node_modules/theory/test/array_util.js create mode 100644 node_modules/theory/test/arrays.js create mode 100644 node_modules/theory/test/b.js create mode 100644 node_modules/theory/test/binary.js create mode 100644 node_modules/theory/test/common.js create mode 100644 node_modules/theory/test/d.js create mode 100644 node_modules/theory/test/dep.js create mode 100644 node_modules/theory/test/events.js create mode 100644 node_modules/theory/test/expect.js create mode 100644 node_modules/theory/test/functions.js create mode 100644 node_modules/theory/test/mocha.css create mode 100644 node_modules/theory/test/mocha.html create mode 100644 node_modules/theory/test/mocha.js create mode 100644 node_modules/theory/test/numbers.js create mode 100644 node_modules/theory/test/objects.js create mode 100644 node_modules/theory/test/one.js create mode 100644 node_modules/theory/test/ready.js create mode 100644 node_modules/theory/test/strings.js create mode 100644 node_modules/theory/test/sub.js create mode 100644 node_modules/theory/test/sub/add.js create mode 100644 node_modules/theory/test/sub/c.js create mode 100644 node_modules/theory/test/sub/e.js create mode 100644 node_modules/theory/test/sub/four.js create mode 100644 node_modules/theory/test/sub/object_copy.js create mode 100644 node_modules/theory/test/sub/object_get.js create mode 100644 node_modules/theory/test/sub/object_has.js create mode 100644 node_modules/theory/test/sub/object_is.js create mode 100644 node_modules/theory/test/sub/object_union.js create mode 100644 node_modules/theory/test/sub/object_util.js create mode 100644 node_modules/theory/test/sub/three.js create mode 100644 node_modules/theory/test/sub/z.js create mode 100644 node_modules/theory/test/time.js create mode 100644 node_modules/theory/theory.js diff --git a/gun.js b/gun.js index c75c28cf..ec86339e 100644 --- a/gun.js +++ b/gun.js @@ -34,6 +34,7 @@ module.exports = require('theory') return; } ref.id = ref.node._.$ +'.'+ ref.path; if(a.gun.ham && a.gun.ham.call(g,n,p,v,w,val)){ + console.log("HAM REJECTION", p, v, val); return; } if(ref.at){ diff --git a/init.js b/init.js index 7249f313..724edacf 100644 --- a/init.js +++ b/init.js @@ -1,8 +1,8 @@ process.env.rootdir = __dirname; -var LIVE = process.env.LIVE || (process.env.NODE_ENV === 'production') || process.env.PORT -, web = require(process.env.COALESCEPATH = LIVE?'coalesce':process.env.rootdir+'/../coalesce/coalesce') +var LIVE = process.env.LIVE || (process.env.NODE_ENV === 'production') +, web = require('coalesce') , opt = {}; -opt.port = !LIVE? 8888 : process.env.PORT? process.env.PORT : 80; +opt.port = process.env.PORT || process.env.OPENSHIFT_NODEJS_POR || process.env.VCAP_APP_PORT || 8888; process.env.domain = LIVE? 'http://gunjs.herokuapp.com' : (function(){require('child_process').exec('ifconfig',function(e,r){ console.log('on',process.env.domain='http://'+ r.match(/[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/)[0] +':'+opt.port) diff --git a/manifest.yml b/manifest.yml new file mode 100644 index 00000000..01b14dea --- /dev/null +++ b/manifest.yml @@ -0,0 +1,16 @@ +--- +applications: + ".": + name: gunjs + framework: + name: standalone + info: + mem: 64M + description: Standalone Application + exec: + runtime: node10 + command: node init.js + infra: aws + url: http://gunjs.aws.af.cm + mem: 64M + instances: 1 diff --git a/node_modules/aws-sdk/.eslintrc b/node_modules/aws-sdk/.eslintrc new file mode 100644 index 00000000..b069ba67 --- /dev/null +++ b/node_modules/aws-sdk/.eslintrc @@ -0,0 +1,19 @@ +{ + "env": { + "browser": true, + "node": true + }, + "globals": { + "Buffer": true, + "escape": true + }, + "rules": { + "quotes": [2, "single"], + "strict": 0, + "curly": 0, + "no-underscore-dangle": 0, + "new-cap": 0, + "dot-notation": 0, + "no-require-in-service": 2 + } +} diff --git a/node_modules/aws-sdk/.npmignore b/node_modules/aws-sdk/.npmignore new file mode 100644 index 00000000..4b6a7bca --- /dev/null +++ b/node_modules/aws-sdk/.npmignore @@ -0,0 +1,17 @@ +.yard* +.jshintrc +.travis.yml +apis/source +configuration +configuration.sample +dist +dist-tools +doc +doc-src +Gemfile +Gemfile.lock +features +Rakefile +test +tasks +vendor diff --git a/node_modules/aws-sdk/LICENSE.txt b/node_modules/aws-sdk/LICENSE.txt new file mode 100644 index 00000000..ab7da479 --- /dev/null +++ b/node_modules/aws-sdk/LICENSE.txt @@ -0,0 +1,12 @@ +Copyright 2012-2014 Amazon.com, Inc. or its affiliates. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"). You +may not use this file except in compliance with the License. A copy of +the License is located at + + http://aws.amazon.com/apache2.0/ + +or in the "license" file accompanying this file. This file is +distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +ANY KIND, either express or implied. See the License for the specific +language governing permissions and limitations under the License. diff --git a/node_modules/aws-sdk/README.md b/node_modules/aws-sdk/README.md new file mode 100644 index 00000000..93172aef --- /dev/null +++ b/node_modules/aws-sdk/README.md @@ -0,0 +1,113 @@ +# AWS SDK for JavaScript [![Version](https://badge.fury.io/js/aws-sdk.png)](http://badge.fury.io/js/aws-sdk) [![Build Status](https://travis-ci.org/aws/aws-sdk-js.png?branch=master)](https://travis-ci.org/aws/aws-sdk-js) + +The official AWS SDK for JavaScript, available for browsers and mobile devices, +or Node.js backends + +Release notes can be found at http://aws.amazon.com/releasenotes/SDK/JavaScript + +## Installing + +### In the Browser + +To use the SDK in the browser, simply add the following script tag to your +HTML pages: + + + +### In Node.js + +The preferred way to install the AWS SDK for Node.js is to use the +[npm](http://npmjs.org) package manager for Node.js. Simply type the following +into a terminal window: + +```sh +npm install aws-sdk +``` + +## Usage and Getting Started + +You can find a getting started guide at: + +http://docs.aws.amazon.com/AWSJavaScriptSDK/guide/ + +## Supported Services + +

Note: +Although all services are supported in the browser version of the SDK, +not all of the services are available in the default hosted build (using the +script tag provided above). A list of services in the hosted build are provided +in the "Working With Services" +section of the browser SDK guide, including instructions on how to build a +custom version of the SDK with extra services. +

+ +The SDK currently supports the following services: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Service NameClass NameAPI Version
Amazon CloudFrontAWS.CloudFront2012-05-05
2013-11-11
Amazon CloudSearchAWS.CloudSearch2011-02-01
2013-01-01
Amazon CloudWatchAWS.CloudWatch2010-08-01
Amazon DynamoDBAWS.DynamoDB2011-12-05
2012-08-10
Amazon Elastic Compute CloudAWS.EC22014-02-01
Amazon Elastic MapReduceAWS.EMR2009-03-31
Amazon Elastic TranscoderAWS.ElasticTranscoder2012-09-25
Amazon ElastiCacheAWS.ElastiCache2013-06-15
Amazon GlacierAWS.Glacier2012-06-01
Amazon KinesisAWS.Kinesis2013-12-02
Amazon RedshiftAWS.Redshift2012-12-01
Amazon Relational Database ServiceAWS.RDS2013-01-10
2013-02-12
2013-09-09
Amazon Route 53AWS.Route532013-04-01
Amazon Simple Email ServiceAWS.SES2010-12-01
Amazon Simple Notification ServiceAWS.SNS2010-03-31
Amazon Simple Queue ServiceAWS.SQS2012-11-05
Amazon Simple Storage ServiceAWS.S32006-03-01
Amazon Simple Workflow ServiceAWS.SimpleWorkflow2012-01-25
Amazon SimpleDBAWS.SimpleDB2009-04-15
Auto ScalingAWS.AutoScaling2011-01-01
AWS CloudFormationAWS.CloudFormation2010-05-15
AWS CloudTrailAWS.CloudTrail2013-11-01
AWS Data PipelineAWS.DataPipeline2012-10-29
AWS Direct ConnectAWS.DirectConnect2012-10-25
AWS Elastic BeanstalkAWS.ElasticBeanstalk2010-12-01
AWS Identity and Access ManagementAWS.IAM2010-05-08
AWS Import/ExportAWS.ImportExport2010-06-01
AWS OpsWorksAWS.OpsWorks2013-02-18
AWS Security Token ServiceAWS.STS2011-06-15
AWS Storage GatewayAWS.StorageGateway2012-06-30
2013-06-30
AWS SupportAWS.Support2013-04-15
Elastic Load BalancingAWS.ELB2012-06-01
+ +## License + +This SDK is distributed under the +[Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0). + +```no-highlight +Copyright 2012-2014. Amazon Web Services, Inc. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +``` diff --git a/node_modules/aws-sdk/bower.json b/node_modules/aws-sdk/bower.json new file mode 100644 index 00000000..42e4c950 --- /dev/null +++ b/node_modules/aws-sdk/bower.json @@ -0,0 +1,8 @@ +{ + "name": "aws-sdk", + "ignore": [ + "doc-src", "features", "lib", "scripts", "tasks", "test", + "Gemfile*", "configuration*", "Rakefile", "*.json", ".*" + ], + "main": "dist/aws-sdk.js" +} diff --git a/node_modules/aws-sdk/eslint-rules/no-require-in-service.js b/node_modules/aws-sdk/eslint-rules/no-require-in-service.js new file mode 100644 index 00000000..c88f988c --- /dev/null +++ b/node_modules/aws-sdk/eslint-rules/no-require-in-service.js @@ -0,0 +1,10 @@ +module.exports = function(context) { + return { + CallExpression: function(node) { + if (!context.getFilename().match(/^lib\/services\//)) return; + if (node.callee.name === 'require' && node.arguments[0].value !== '../core') { + context.report(node, 'require() is disallowed in service files'); + } + } + }; +}; diff --git a/node_modules/aws-sdk/lib/aws.js b/node_modules/aws-sdk/lib/aws.js new file mode 100644 index 00000000..31238807 --- /dev/null +++ b/node_modules/aws-sdk/lib/aws.js @@ -0,0 +1,46 @@ +var AWS = require('./core'); +module.exports = AWS; + +// Load the xml2js XML parser +require('./xml/node_parser'); + +// Load Node HTTP client +require('./http/node'); + +// Load all service classes +require('./services'); + +// Load custom credential providers +require('./credentials/ec2_metadata_credentials'); +require('./credentials/environment_credentials'); +require('./credentials/file_system_credentials'); + +// Setup default chain providers +AWS.CredentialProviderChain.defaultProviders = [ + function () { return new AWS.EnvironmentCredentials('AWS'); }, + function () { return new AWS.EnvironmentCredentials('AMAZON'); }, + function () { return new AWS.EC2MetadataCredentials(); } +]; + +// Update configuration keys +AWS.util.update(AWS.Config.prototype.keys, { + credentials: function () { + var credentials = null; + new AWS.CredentialProviderChain([ + function () { return new AWS.EnvironmentCredentials('AWS'); }, + function () { return new AWS.EnvironmentCredentials('AMAZON'); } + ]).resolve(function(err, creds) { + if (!err) credentials = creds; + }); + return credentials; + }, + credentialProvider: function() { + return new AWS.CredentialProviderChain(); + }, + region: function() { + return process.env.AWS_REGION || process.env.AMAZON_REGION; + } +}); + +// Reset configuration +AWS.config = new AWS.Config(); diff --git a/node_modules/aws-sdk/lib/browser.js b/node_modules/aws-sdk/lib/browser.js new file mode 100644 index 00000000..c7d904e0 --- /dev/null +++ b/node_modules/aws-sdk/lib/browser.js @@ -0,0 +1,7 @@ +window.AWS = module.exports = require('./core'); + +// Load the DOMParser XML parser +require('./xml/browser_parser'); + +// Load the XHR HttpClient +require('./http/xhr'); diff --git a/node_modules/aws-sdk/lib/config.js b/node_modules/aws-sdk/lib/config.js new file mode 100644 index 00000000..6436953b --- /dev/null +++ b/node_modules/aws-sdk/lib/config.js @@ -0,0 +1,346 @@ +var AWS = require('./core'); +require('./credentials'); +require('./credentials/credential_provider_chain'); + +/** + * The main configuration class used by all service objects to set + * the region, credentials, and other options for requests. + * + * By default, credentials and region settings are left unconfigured. + * This should be configured by the application before using any + * AWS service APIs. + * + * In order to set global configuration options, properties should + * be assigned to the global {AWS.config} object. + * + * @see AWS.config + * + * @!attribute credentials + * @return [AWS.Credentials] the AWS credentials to sign requests with. + * + * @!attribute region + * @example Set the global region setting to us-west-2 + * AWS.config.update({region: 'us-west-2'}); + * @return [AWS.Credentials] The region to send service requests to. + * @see http://docs.amazonwebservices.com/general/latest/gr/rande.html + * A list of available endpoints for each AWS service + * + * @!attribute maxRetries + * @return [Integer] the maximum amount of retries to perform for a + * service request. By default this value is calculated by the specific + * service object that the request is being made to. + * + * @!attribute maxRedirects + * @return [Integer] the maximum amount of redirects to follow for a + * service request. Defaults to 10. + * + * @!attribute paramValidation + * @return [Boolean] whether input parameters should be validated against + * the operation description before sending the request. Defaults to true. + * + * @!attribute computeChecksums + * @return [Boolean] whether to compute checksums for payload bodies when + * the service accepts it (currently supported in S3 only). + * + * @!attribute sslEnabled + * @return [Boolean] whether SSL is enabled for requests + * + * @!attribute s3ForcePathStyle + * @return [Boolean] whether to force path style URLs for S3 objects + * + * @!attribute httpOptions + * @return [map] A set of options to pass to the low-level HTTP request. + * Currently supported options are: + * + * * **proxy** [String] — the URL to proxy requests through + * * **agent** [http.Agent, https.Agent] — the Agent object to perform + * HTTP requests with. Used for connection pooling. Defaults to the global + * agent (`http.globalAgent`) for non-SSL connections. Note that for + * SSL connections, a special Agent object is used in order to enable + * peer certificate verification. This feature is only supported in the + * Node.js environment. + * * **timeout** [Integer] — The number of milliseconds to wait before + * giving up on a connection attempt. Defaults to no timeout. + * + * @!attribute logger + * @return [#write,#log] an object that responds to .write() (like a stream) + * or .log() (like the console object) in order to log information about + * requests + * + * @!attribute signatureVersion + * @return [String] the signature version to sign requests with (overriding + * the API configuration). Possible values are: 'v2', 'v3', 'v4'. + */ +AWS.Config = AWS.util.inherit({ + + /** + * Creates a new configuration object. This is the object that passes + * option data along to service requests, including credentials, security, + * region information, and some service specific settings. + * + * @example Creating a new configuration object with credentials and region + * var config = new AWS.Config({ + * accessKeyId: 'AKID', secretAccessKey: 'SECRET', region: 'us-west-2' + * }); + * @option options accessKeyId [String] your AWS access key ID. + * @option options secretAccessKey [String] your AWS secret access key. + * @option options sessionToken [AWS.Credentials] the optional AWS + * session token to sign requests with. + * @option options credentials [AWS.Credentials] the AWS credentials + * to sign requests with. You can either specify this object, or + * specify the accessKeyId and secretAccessKey options directly. + * @option options credentialProvider [AWS.CredentialProviderChain] the + * provider chain used to resolve credentials if no static `credentials` + * property is set. + * @option options region [String] the region to send service requests to. + * See {region} for more information. + * @option options maxRetries [Integer] the maximum amount of retries to + * attempt with a request. See {maxRetries} for more information. + * @option options maxRedirects [Integer] the maximum amount of redirects to + * follow with a request. See {maxRedirects} for more information. + * @option options sslEnabled [Boolean] whether to enable SSL for + * requests. + * @option options paramValidation [Boolean] whether parameter validation + * is on. + * @option options computeChecksums [Boolean] whether to compute checksums + * for payload bodies when the service accepts it (currently supported + * in S3 only) + * @option options s3ForcePathStyle [Boolean] whether to force path + * style URLs for S3 objects. + * @option options httpOptions [map] A set of options to pass to the low-level + * HTTP request. Currently supported options are: + * + * * **proxy** [String] — the URL to proxy requests through + * * **agent** [http.Agent, https.Agent] — the Agent object to perform + * HTTP requests with. Used for connection pooling. Defaults to the global + * agent (`http.globalAgent`) for non-SSL connections. Note that for + * SSL connections, a special Agent object is used in order to enable + * peer certificate verification. This feature is only available in the + * Node.js environment. + * * **timeout** [Integer] — Sets the socket to timeout after timeout + * milliseconds of inactivity on the socket. Defaults to no timeout. + * @option options apiVersion [String, Date] a String in YYYY-MM-DD format + * (or a date) that represents the latest possible API version that can be + * used in all services (unless overridden by `apiVersions`). Specify + * 'latest' to use the latest possible version. + * @option options apiVersions [map] a map of service + * identifiers (the lowercase service class name) with the API version to + * use when instantiating a service. Specify 'latest' for each individual + * that can use the latest available version. + * @option options logger [#write,#log] an object that responds to .write() + * (like a stream) or .log() (like the console object) in order to log + * information about requests + * @option options signatureVersion [String] the signature version to sign + * requests with (overriding the API configuration). Possible values are: + * 'v2', 'v3', 'v4'. + */ + constructor: function Config(options) { + if (options === undefined) options = {}; + options = this.extractCredentials(options); + + AWS.util.each.call(this, this.keys, function (key, value) { + this.set(key, options[key], value); + }); + }, + + /** + * @overload update(options, allowUnknownKeys = false) + * Updates the current configuration object with new options. + * + * @example Update maxRetries property of a configuration object + * config.update({maxRetries: 10}); + * @param [Object] options a map of option keys and values. + * @param [Boolean] allowUnknownKeys whether unknown keys can be set on + * the configuration object. Defaults to `false`. + * @see constructor + */ + update: function update(options, allowUnknownKeys) { + allowUnknownKeys = allowUnknownKeys || false; + options = this.extractCredentials(options); + AWS.util.each.call(this, options, function (key, value) { + if (allowUnknownKeys || this.keys.hasOwnProperty(key)) this[key] = value; + }); + }, + + /** + * Loads credentials from the configuration object. This is used internally + * by the SDK to ensure that refreshable {Credentials} objects are properly + * refreshed and loaded when sending a request. If you want to ensure that + * your credentials are loaded prior to a request, you can use this method + * directly to provide accurate credential data stored in the object. + * + * @note If you configure the SDK with static or environment credentials, + * the credential data should already be present in {credentials} attribute. + * This method is primarily necessary to load credentials from asynchronous + * sources, or sources that can refresh credentials periodically. + * @example Getting your access key + * AWS.config.getCredentials(function(err) { + * if (err) console.log(err.stack); // credentials not loaded + * else console.log("Access Key:", AWS.config.credentials.accessKeyId); + * }) + * @callback callback function(err) + * Called when the {credentials} have been properly set on the configuration + * object. + * + * @param err [Error] if this is set, credentials were not successfuly + * loaded and this error provides information why. + * @see credentials + * @see Credentials + */ + getCredentials: function getCredentials(callback) { + var self = this; + + function finish(err) { + callback(err, err ? null : self.credentials); + } + + function credError(msg, err) { + return new AWS.util.error(err || new Error(), { + code: 'CredentialsError', message: msg + }); + } + + function getAsyncCredentials() { + self.credentials.get(function(err) { + if (err) { + var msg = 'Could not load credentials from ' + + self.credentials.constructor.name; + err = credError(msg, err); + } + finish(err); + }); + } + + function getStaticCredentials() { + var err = null; + if (!self.credentials.accessKeyId || !self.credentials.secretAccessKey) { + err = credError('Missing credentials'); + } + finish(err); + } + + if (self.credentials) { + if (typeof self.credentials.get === 'function') { + getAsyncCredentials(); + } else { // static credentials + getStaticCredentials(); + } + } else if (self.credentialProvider) { + self.credentialProvider.resolve(function(err, creds) { + if (err) { + err = credError('Could not load credentials from any providers', err); + } + self.credentials = creds; + finish(err); + }); + } else { + finish(credError('No credentials to load')); + } + }, + + /** + * Loads configuration data from a JSON file into this config object. + * @note Loading configuration will reset all existing configuration + * on the object. + * @!macro nobrowser + * @param path [String] the path to load configuration from + * @return [AWS.Config] the same configuration object + */ + loadFromPath: function loadFromPath(path) { + this.clear(); + + var options = JSON.parse(AWS.util.readFileSync(path)); + var fileSystemCreds = new AWS.FileSystemCredentials(path); + var chain = new AWS.CredentialProviderChain(); + chain.providers.unshift(fileSystemCreds); + chain.resolve(function (err, creds) { + if (err) throw err; + else options.credentials = creds; + }); + + this.constructor(options); + + return this; + }, + + /** + * Clears configuration data on this object + * + * @api private + */ + clear: function clear() { + /*jshint forin:false */ + AWS.util.each.call(this, this.keys, function (key) { + delete this[key]; + }); + + // reset credential provider + this.set('credentials', undefined); + this.set('credentialProvider', undefined); + }, + + /** + * Sets a property on the configuration object, allowing for a + * default value + * @api private + */ + set: function set(property, value, defaultValue) { + if (value === undefined) { + if (defaultValue === undefined) { + defaultValue = this.keys[property]; + } + if (typeof defaultValue === 'function') { + this[property] = defaultValue.call(this); + } else { + this[property] = defaultValue; + } + } else { + this[property] = value; + } + }, + + /** + * All of the keys with their default values. + * + * @constant + * @api private + */ + keys: { + credentials: null, + credentialProvider: null, + region: null, + logger: null, + apiVersions: {}, + apiVersion: null, + endpoint: undefined, + httpOptions: {}, + maxRetries: undefined, + maxRedirects: 10, + paramValidation: true, + sslEnabled: true, + s3ForcePathStyle: false, + computeChecksums: true, + dynamoDbCrc32: true + }, + + /** + * Extracts accessKeyId, secretAccessKey and sessionToken + * from a configuration hash. + * + * @api private + */ + extractCredentials: function extractCredentials(options) { + if (options.accessKeyId && options.secretAccessKey) { + options = AWS.util.copy(options); + options.credentials = new AWS.Credentials(options); + } + return options; + } +}); + +/** + * @return [AWS.Config] The global configuration object singleton instance + * @readonly + * @see AWS.Config + */ +AWS.config = new AWS.Config(); diff --git a/node_modules/aws-sdk/lib/core.js b/node_modules/aws-sdk/lib/core.js new file mode 100644 index 00000000..e960d695 --- /dev/null +++ b/node_modules/aws-sdk/lib/core.js @@ -0,0 +1,75 @@ +/** + * The main AWS namespace + */ +var AWS = {}; + +/** + * @api private + * @!macro [new] nobrowser + * @note This feature is not supported in the browser environment of the SDK. + */ +var _hidden = {}; _hidden = {}; // hack to parse macro + +module.exports = AWS; +require('./util'); + +AWS.util.update(AWS, { + + /** + * @constant + */ + VERSION: '2.0.0-rc13', + + /** + * @api private + */ + ServiceInterface: {}, + + /** + * @api private + */ + Signers: {}, + + /** + * @api private + */ + XML: {} + +}); + +require('./service'); + +require('./credentials'); +require('./credentials/credential_provider_chain'); +require('./credentials/temporary_credentials'); +require('./credentials/web_identity_credentials'); +require('./credentials/saml_credentials'); + +require('./config'); +require('./http'); +require('./sequential_executor'); +require('./event_listeners'); +require('./request'); +require('./response'); +require('./resource_waiter'); +require('./signers/request_signer'); +require('./param_validator'); + +/** + * @readonly + * @return [AWS.SequentialExecutor] a collection of global event listeners that + * are attached to every sent request. + * @see AWS.Request AWS.Request for a list of events to listen for + * @example Logging the time taken to send a request + * AWS.events.on('send', function startSend(resp) { + * resp.startTime = new Date().getTime(); + * }).on('complete', function calculateTime(resp) { + * var time = (new Date().getTime() - resp.startTime) / 1000; + * console.log('Request took ' + time + ' seconds'); + * }); + * + * new AWS.S3().listBuckets(); // prints 'Request took 0.285 seconds' + */ +AWS.events = new AWS.SequentialExecutor(); + +if (typeof window !== 'undefined') window.AWS = AWS; diff --git a/node_modules/aws-sdk/lib/credentials.js b/node_modules/aws-sdk/lib/credentials.js new file mode 100644 index 00000000..70a234f9 --- /dev/null +++ b/node_modules/aws-sdk/lib/credentials.js @@ -0,0 +1,150 @@ +var AWS = require('./core'); + +/** + * Represents your AWS security credentials, specifically the + * {accessKeyId}, {secretAccessKey}, and optional {sessionToken}. + * Creating a `Credentials` object allows you to pass around your + * security information to configuration and service objects. + * + * Note that this class typically does not need to be constructed manually, + * as the {AWS.Config} and {AWS.Service} classes both accept simple + * options hashes with the three keys. These structures will be converted + * into Credentials objects automatically. + * + * ## Expiring and Refreshing Credentials + * + * Occasionally credentials can expire in the middle of a long-running + * application. In this case, the SDK will automatically attempt to + * refresh the credentials from the storage location if the Credentials + * class implements the {refresh} method. + * + * If you are implementing a credential storage location, you + * will want to create a subclass of the `Credentials` class and + * override the {refresh} method. This method allows credentials to be + * retrieved from the backing store, be it a file system, database, or + * some network storage. The method should reset the credential attributes + * on the object. + * + * @!attribute expired + * @return [Boolean] whether the credentials have been expired and + * require a refresh. Used in conjunction with {expireTime}. + * @!attribute expireTime + * @return [Date] a time when credentials should be considered expired. Used + * in conjunction with {expired}. + * @!attribute accessKeyId + * @return [String] the AWS access key ID + * @!attribute secretAccessKey + * @return [String] the AWS secret access key + * @!attribute sessionToken + * @return [String] an optional AWS session token + */ +AWS.Credentials = AWS.util.inherit({ + /** + * A credentials object can be created using positional arguments or an options + * hash. + * + * @overload AWS.Credentials(accessKeyId, secretAccessKey, sessionToken=null) + * Creates a Credentials object with a given set of credential information + * as positional arguments. + * @param accessKeyId [String] the AWS access key ID + * @param secretAccessKey [String] the AWS secret access key + * @param sessionToken [String] the optional AWS session token + * @example Create a credentials object with AWS credentials + * var creds = new AWS.Credentials('akid', 'secret', 'session'); + * @overload AWS.Credentials(options) + * Creates a Credentials object with a given set of credential information + * as an options hash. + * @option options accessKeyId [String] the AWS access key ID + * @option options secretAccessKey [String] the AWS secret access key + * @option options sessionToken [String] the optional AWS session token + * @example Create a credentials object with AWS credentials + * var creds = new AWS.Credentials({ + * accessKeyId: 'akid', secretAccessKey: 'secret', sessionToken: 'session' + * }); + */ + constructor: function Credentials() { + // hide secretAccessKey from being displayed with util.inspect + AWS.util.hideProperties(this, ['secretAccessKey']); + + this.expired = false; + this.expireTime = null; + if (arguments.length === 1 && typeof arguments[0] === 'object') { + var creds = arguments[0].credentials || arguments[0]; + this.accessKeyId = creds.accessKeyId; + this.secretAccessKey = creds.secretAccessKey; + this.sessionToken = creds.sessionToken; + } else { + this.accessKeyId = arguments[0]; + this.secretAccessKey = arguments[1]; + this.sessionToken = arguments[2]; + } + }, + + /** + * @return [Integer] the window size in seconds to attempt refreshhing of + * credentials before the expireTime occurs. + */ + expiryWindow: 15, + + /** + * @return [Boolean] whether the credentials object should call {refresh} + * @note Subclasses should override this method to provide custom refresh + * logic. + */ + needsRefresh: function needsRefresh() { + var currentTime = AWS.util.date.getDate().getTime(); + var adjustedTime = new Date(currentTime + this.expiryWindow * 1000); + + if (this.expireTime && adjustedTime > this.expireTime) { + return true; + } else { + return this.expired || !this.accessKeyId || !this.secretAccessKey; + } + }, + + /** + * Gets the existing credentials, refreshing them if they are not yet loaded + * or have expired. Users should call this method before using {refresh}, + * as this will not attempt to reload credentials when they are already + * loaded into the object. + * + * @callback callback function(err) + * Called when the instance metadata service responds (or fails). When + * this callback is called with no error, it means that the credentials + * information has been loaded into the object (as the `accessKeyId`, + * `secretAccessKey`, and `sessionToken` properties). + * @param err [Error] if an error occurred, this value will be filled + */ + get: function get(callback) { + var self = this; + if (this.needsRefresh()) { + this.refresh(function(err) { + if (!err) self.expired = false; // reset expired flag + if (callback) callback(err); + }); + } else if (callback) { + callback(); + } + }, + + /** + * Refreshes the credentials. Users should call {get} before attempting + * to forcibly refresh credentials. + * + * @callback callback function(err) + * Called when the instance metadata service responds (or fails). When + * this callback is called with no error, it means that the credentials + * information has been loaded into the object (as the `accessKeyId`, + * `secretAccessKey`, and `sessionToken` properties). + * @param err [Error] if an error occurred, this value will be filled + * @note Subclasses should override this class to reset the + * {accessKeyId}, {secretAccessKey} and optional {sessionToken} + * on the credentials object and then call the callback with + * any error information. + * @see get + */ + refresh: function refresh(callback) { + this.expired = false; + callback(); + } +}); diff --git a/node_modules/aws-sdk/lib/credentials/credential_provider_chain.js b/node_modules/aws-sdk/lib/credentials/credential_provider_chain.js new file mode 100644 index 00000000..a67d625b --- /dev/null +++ b/node_modules/aws-sdk/lib/credentials/credential_provider_chain.js @@ -0,0 +1,113 @@ +var AWS = require('../core'); + +/** + * Creates a credential provider chain that searches for AWS credentials + * in a list of credential providers specified by the {providers} property. + * + * By default, the chain will use the {defaultProviders} to resolve credentials. + * These providers will look in the environment using the + * {AWS.EnvironmentCredentials} class with the 'AWS' and 'AMAZON' prefixes. + * + * ## Setting Providers + * + * Each provider in the {providers} list should be a function that returns + * a {AWS.Credentials} object, or a hardcoded credentials object. The function + * form allows for delayed execution of the credential construction. + * + * ## Resolving Credentials from a Chain + * + * Call {resolve} to return the first valid credential object that can be + * loaded by the provider chain. + * + * For example, to resolve a chain with a custom provider that checks a file + * on disk after the set of {defaultProviders}: + * + * ```javascript + * var diskProvider = new AWS.FileSystemCredentials('./creds.json'); + * var chain = new AWS.CredentialProviderChain(); + * chain.providers.push(diskProvider); + * chain.resolve(); + * ``` + * + * The above code will return the `diskProvider` object if the + * file contains credentials and the `defaultProviders` do not contain + * any credential settings. + * + * @!attribute providers + * @return [Array] + * a list of credentials objects or functions that return credentials + * objects. If the provider is a function, the function will be + * executed lazily when the provider needs to be checked for valid + * credentials. By default, this object will be set to the + * {defaultProviders}. + * @see defaultProviders + */ +AWS.CredentialProviderChain = AWS.util.inherit(AWS.Credentials, { + + /** + * Creates a new CredentialProviderChain with a default set of providers + * specified by {defaultProviders}. + */ + constructor: function CredentialProviderChain(providers) { + if (providers) { + this.providers = providers; + } else { + this.providers = AWS.CredentialProviderChain.defaultProviders.slice(0); + } + }, + + /** + * Resolves the provider chain by searching for the first set of + * credentials in {providers}. + * + * @callback callback function(err, credentials) + * Called when the provider resolves the chain to a credentials object + * or null if no credentials can be found. + * + * @param err [Error] the error object returned if no credentials are + * found. + * @param credentials [AWS.Credentials] the credentials object resolved + * by the provider chain. + * @return [AWS.CredentialProviderChain] the provider, for chaining. + */ + resolve: function resolve(callback) { + if (this.providers.length === 0) { + callback(new Error('No providers')); + return this; + } + + var index = 0; + var providers = this.providers.slice(0); + + function resolveNext(err, creds) { + if ((!err && creds) || index === providers.length) { + callback(err, creds); + return; + } + + var provider = providers[index++]; + if (typeof provider === 'function') { + creds = provider.call(); + } else { + creds = provider; + } + + if (creds.get) { + creds.get(function(err) { + resolveNext(err, err ? null : creds); + }); + } else { + resolveNext(null, creds); + } + } + + resolveNext(); + return this; + } + +}); + +/** + * The default set of providers used by a vanilla CredentialProviderChain. + */ +AWS.CredentialProviderChain.defaultProviders = []; diff --git a/node_modules/aws-sdk/lib/credentials/ec2_metadata_credentials.js b/node_modules/aws-sdk/lib/credentials/ec2_metadata_credentials.js new file mode 100644 index 00000000..1f743c4f --- /dev/null +++ b/node_modules/aws-sdk/lib/credentials/ec2_metadata_credentials.js @@ -0,0 +1,48 @@ +var AWS = require('../core'); +require('../metadata_service'); + +/** + * Represents credentials recieved from the metadata service on an EC2 instance. + * + * By default, this class will connect to the metadata service using + * {AWS.MetadataService} and attempt to load any available credentials. If it + * can connect, and credentials are available, these will be used with zero + * configuration. + * + * @!macro nobrowser + */ +AWS.EC2MetadataCredentials = AWS.util.inherit(AWS.Credentials, { + constructor: function EC2MetadataCredentials(options) { + AWS.Credentials.call(this); + this.metadataService = new AWS.MetadataService(options); + this.metadata = {}; + }, + + /** + * Loads the credentials from the instance metadata service + * + * @callback callback function(err) + * Called when the instance metadata service responds (or fails). When + * this callback is called with no error, it means that the credentials + * information has been loaded into the object (as the `accessKeyId`, + * `secretAccessKey`, and `sessionToken` properties). + * @param err [Error] if an error occurred, this value will be filled + * @see get + */ + refresh: function refresh(callback) { + var self = this; + if (!callback) callback = function(err) { if (err) throw err; }; + + self.metadataService.loadCredentials(function (err, creds) { + if (!err) { + self.expired = false; + self.metadata = creds; + self.accessKeyId = creds.AccessKeyId; + self.secretAccessKey = creds.SecretAccessKey; + self.sessionToken = creds.Token; + self.expireTime = new Date(creds.Expiration); + } + callback(err); + }); + } +}); diff --git a/node_modules/aws-sdk/lib/credentials/environment_credentials.js b/node_modules/aws-sdk/lib/credentials/environment_credentials.js new file mode 100644 index 00000000..b8534f54 --- /dev/null +++ b/node_modules/aws-sdk/lib/credentials/environment_credentials.js @@ -0,0 +1,84 @@ +var AWS = require('../core'); + +/** + * Represents credentials from the environment. + * + * By default, this class will look for the matching environment variables + * prefixed by a given {envPrefix}. The un-prefixed environment variable names + * for each credential value is listed below: + * + * ```javascript + * accessKeyId: ACCESS_KEY_ID + * secretAccessKey: SECRET_ACCESS_KEY + * sessionToken: SESSION_TOKEN + * ``` + * + * With the default prefix of 'AWS', the environment variables would be: + * + * AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN + * + * @!attribute envPrefix + * @readonly + * @return [String] the prefix for the environment variable names excluding + * the separating underscore ('_'). + */ +AWS.EnvironmentCredentials = AWS.util.inherit(AWS.Credentials, { + + /** + * Creates a new EnvironmentCredentials class with a given variable + * prefix {envPrefix}. For example, to load credentials using the 'AWS' + * prefix: + * + * ```javascript + * var creds = new AWS.EnvironmentCredentials('AWS'); + * creds.accessKeyId == 'AKID' // from AWS_ACCESS_KEY_ID env var + * ``` + * + * @param envPrefix [String] the prefix to use (e.g., 'AWS') for environment + * variables. Do not include the separating underscore. + */ + constructor: function EnvironmentCredentials(envPrefix) { + AWS.Credentials.call(this); + this.envPrefix = envPrefix; + this.get(function() {}); + }, + + /** + * Loads credentials from the environment using the prefixed + * environment variables. + * + * @callback callback function(err) + * Called when the instance metadata service responds (or fails). When + * this callback is called with no error, it means that the credentials + * information has been loaded into the object (as the `accessKeyId`, + * `secretAccessKey`, and `sessionToken` properties). + * @param err [Error] if an error occurred, this value will be filled + * @see get + */ + refresh: function refresh(callback) { + if (!callback) callback = function(err) { if (err) throw err; }; + + if (process === undefined) { + callback(new Error('No process info available')); + return; + } + + var keys = ['ACCESS_KEY_ID', 'SECRET_ACCESS_KEY', 'SESSION_TOKEN']; + var values = []; + + for (var i = 0; i < keys.length; i++) { + var prefix = ''; + if (this.envPrefix) prefix = this.envPrefix + '_'; + values[i] = process.env[prefix + keys[i]]; + if (!values[i] && keys[i] !== 'SESSION_TOKEN') { + callback(new Error('Variable ' + prefix + keys[i] + ' not set.')); + return; + } + } + + this.expired = false; + AWS.Credentials.apply(this, values); + callback(); + } + +}); diff --git a/node_modules/aws-sdk/lib/credentials/file_system_credentials.js b/node_modules/aws-sdk/lib/credentials/file_system_credentials.js new file mode 100644 index 00000000..78a93c97 --- /dev/null +++ b/node_modules/aws-sdk/lib/credentials/file_system_credentials.js @@ -0,0 +1,65 @@ +var AWS = require('../core'); + +/** + * Represents credentials from a JSON file on disk. + * If the credentials expire, the SDK can {refresh} the credentials + * from the file. + * + * The format of the file should be similar to the options passed to + * {AWS.Config}: + * + * ```javascript + * {accessKeyId: 'akid', secretAccessKey: 'secret', sessionToken: 'optional'} + * ``` + * + * @example Loading credentials from disk + * var creds = new AWS.FileSystemCredentials('./configuration.json'); + * creds.accessKeyId == 'AKID' + * + * @!attribute filename + * @readonly + * @return [String] the path to the JSON file on disk containing the + * credentials. + * @!macro nobrowser + */ +AWS.FileSystemCredentials = AWS.util.inherit(AWS.Credentials, { + + /** + * @overload AWS.FileSystemCredentials(filename) + * Creates a new FileSystemCredentials object from a filename + * + * @param filename [String] the path on disk to the JSON file to load. + */ + constructor: function FileSystemCredentials(filename) { + AWS.Credentials.call(this); + this.filename = filename; + this.get(function() {}); + }, + + /** + * Loads the credentials from the {filename} on disk. + * + * @callback callback function(err) + * Called when the instance metadata service responds (or fails). When + * this callback is called with no error, it means that the credentials + * information has been loaded into the object (as the `accessKeyId`, + * `secretAccessKey`, and `sessionToken` properties). + * @param err [Error] if an error occurred, this value will be filled + * @see get + */ + refresh: function refresh(callback) { + if (!callback) callback = function(err) { if (err) throw err; }; + try { + var creds = JSON.parse(AWS.util.readFileSync(this.filename)); + AWS.Credentials.call(this, creds); + if (!this.accessKeyId || !this.secretAccessKey) { + throw new Error('Credentials not set in ' + this.filename); + } + this.expired = false; + callback(); + } catch (err) { + callback(err); + } + } + +}); diff --git a/node_modules/aws-sdk/lib/credentials/saml_credentials.js b/node_modules/aws-sdk/lib/credentials/saml_credentials.js new file mode 100644 index 00000000..6743312f --- /dev/null +++ b/node_modules/aws-sdk/lib/credentials/saml_credentials.js @@ -0,0 +1,80 @@ +var AWS = require('../core'); + +/** + * Represents credentials retrieved from STS SAML support. + * + * By default this provider gets credentials using the + * {AWS.STS.assumeRoleWithSAML} service operation. This operation + * requires a `RoleArn` containing the ARN of the IAM trust policy for the + * application for which credentials will be given, as well as a `PrincipalArn` + * representing the ARN for the SAML identity provider. In addition, the + * `SAMLAssertion` must be set to the token provided by the identity + * provider. See {constructor} for an example on creating a credentials + * object with proper `RoleArn`, `PrincipalArn`, and `SAMLAssertion` values. + * + * ## Refreshing Credentials from Identity Service + * + * In addition to AWS credentials expiring after a given amount of time, the + * login token from the identity provider will also expire. Once this token + * expires, it will not be usable to refresh AWS credentials, and another + * token will be needed. The SDK does not manage refreshing of the token value, + * but this can be done through a "refresh token" supported by most identity + * providers. Consult the documentation for the identity provider for refreshing + * tokens. Once the refreshed token is acquired, you should make sure to update + * this new token in the credentials object's {params} property. The following + * code will update the SAMLAssertion, assuming you have retrieved an updated + * token from the identity provider: + * + * ```javascript + * AWS.config.credentials.params.SAMLAssertion = updatedToken; + * ``` + * + * Future calls to `credentials.refresh()` will now use the new token. + * + * @!attribute params + * @return [map] the map of params passed to + * {AWS.STS.assumeRoleWithSAML}. To update the token, set the + * `params.SAMLAssertion` property. + */ +AWS.SAMLCredentials = AWS.util.inherit(AWS.Credentials, { + /** + * Creates a new credentials object. + * @param (see AWS.STS.assumeRoleWithSAML) + * @example Creating a new credentials object + * AWS.config.credentials = new AWS.SAMLCredentials({ + * RoleArn: 'arn:aws:iam::1234567890:role/SAMLRole', + * PrincipalArn: 'arn:aws:iam::1234567890:role/SAMLPrincipal', + * SAMLAssertion: 'base64-token', // base64-encoded token from IdP + * }); + * @see AWS.STS.assumeRoleWithSAML + */ + constructor: function SAMLCredentials(params) { + AWS.Credentials.call(this); + this.expired = true; + this.service = new AWS.STS(); + this.params = params; + }, + + /** + * Refreshes credentials using {AWS.STS.assumeRoleWithSAML} + * + * @callback callback function(err) + * Called when the STS service responds (or fails). When + * this callback is called with no error, it means that the credentials + * information has been loaded into the object (as the `accessKeyId`, + * `secretAccessKey`, and `sessionToken` properties). + * @param err [Error] if an error occurred, this value will be filled + * @see get + */ + refresh: function refresh(callback) { + var self = this; + if (!callback) callback = function(err) { if (err) throw err; }; + + self.service.assumeRoleWithSAML(self.params, function (err, data) { + if (!err) { + self.service.credentialsFrom(data, self); + } + callback(err); + }); + } +}); diff --git a/node_modules/aws-sdk/lib/credentials/temporary_credentials.js b/node_modules/aws-sdk/lib/credentials/temporary_credentials.js new file mode 100644 index 00000000..6c9bd776 --- /dev/null +++ b/node_modules/aws-sdk/lib/credentials/temporary_credentials.js @@ -0,0 +1,103 @@ +var AWS = require('../core'); + +/** + * Represents temporary credentials retrieved from {AWS.STS}. Without any + * extra parameters, credentials will be fetched from the + * {AWS.STS.getSessionToken} operation. If an IAM role is provided, the + * {AWS.STS.assumeRole} operation will be used to fetch credentials for the + * role instead. + * + * To setup temporary credentials, configure a set of master credentials + * using the standard credentials providers (environment, EC2 instance metadata, + * or from the filesystem), then set the global credentials to a new + * temporary credentials object: + * + * ```javascript + * // Note that environment credentials are loaded by default, + * // the following line is shown for clarity: + * AWS.config.credentials = new AWS.EnvironmentCredentials('AWS'); + * + * // Now set temporary credentials seeded from the master credentials + * AWS.config.credentials = new AWS.TemporaryCredentials(); + * + * // subsequent requests will now use temporary credentials from AWS STS. + * new AWS.S3().listBucket(function(err, data) { ... }); + * ``` + * + * @!attribute masterCredentials + * @return [AWS.Credentials] the master (non-temporary) credentials used to + * get and refresh temporary credentials from AWS STS. + * @note (see constructor) + */ +AWS.TemporaryCredentials = AWS.util.inherit(AWS.Credentials, { + /** + * Creates a new temporary credentials object. + * + * @note In order to create temporary credentials, you first need to have + * "master" credentials configured in {AWS.Config.credentials}. These + * master credentials are necessary to retrieve the temporary credentials, + * as well as refresh the credentials when they expire. + * @param params [map] a map of options that are passed to the + * {AWS.STS.assumeRole} or {AWS.STS.getSessionToken} operations. + * If a `RoleArn` parameter is passed in, credentials will be based on the + * IAM role. + * @example Creating a new credenials object for generic temporary credentials + * AWS.config.credentials = new AWS.TemporaryCredentials(); + * @example Creating a new credentials object for an IAM role + * AWS.config.credentials = new AWS.TemporaryCredentials({ + * RoleArn: 'arn:aws:iam::1234567890:role/TemporaryCredentials', + * }); + * @see AWS.STS.assumeRole + * @see AWS.STS.getSessionToken + */ + constructor: function TemporaryCredentials(params) { + AWS.Credentials.call(this); + this.loadMasterCredentials(); + this.service = new AWS.STS(); + this.expired = true; + + this.params = params || {}; + if (this.params.RoleArn) { + this.params.RoleSessionName = + this.params.RoleSessionName || 'temporary-credentials'; + } + }, + + /** + * Refreshes credentials using {AWS.STS.assumeRole} or + * {AWS.STS.getSessionToken}, depending on whether an IAM role ARN was passed + * to the credentials {constructor}. + * + * @callback callback function(err) + * Called when the STS service responds (or fails). When + * this callback is called with no error, it means that the credentials + * information has been loaded into the object (as the `accessKeyId`, + * `secretAccessKey`, and `sessionToken` properties). + * @param err [Error] if an error occurred, this value will be filled + * @see get + */ + refresh: function refresh(callback) { + var self = this; + if (!callback) callback = function(err) { if (err) throw err; }; + + self.service.config.credentials = self.masterCredentials; + var operation = self.params.RoleArn ? + self.service.assumeRole : self.service.getSessionToken; + operation.call(self.service, self.params, function (err, data) { + if (!err) { + self.service.credentialsFrom(data, self); + } + callback(err); + }); + }, + + /** + * @api private + */ + loadMasterCredentials: function loadMasterCredentials() { + this.masterCredentials = AWS.config.credentials; + while (this.masterCredentials.masterCredentials) { + this.masterCredentials = this.masterCredentials.masterCredentials; + } + } +}); diff --git a/node_modules/aws-sdk/lib/credentials/web_identity_credentials.js b/node_modules/aws-sdk/lib/credentials/web_identity_credentials.js new file mode 100644 index 00000000..3e5e1858 --- /dev/null +++ b/node_modules/aws-sdk/lib/credentials/web_identity_credentials.js @@ -0,0 +1,80 @@ +var AWS = require('../core'); + +/** + * Represents credentials retrieved from STS Web Identity Federation support. + * + * By default this provider gets credentials using the + * {AWS.STS.assumeRoleWithWebIdentity} service operation. This operation + * requires a `RoleArn` containing the ARN of the IAM trust policy for the + * application for which credentials will be given. In addition, the + * `WebIdentityToken` must be set to the token provided by the identity + * provider. See {constructor} for an example on creating a credentials + * object with proper `RoleArn` and `WebIdentityToken` values. + * + * ## Refreshing Credentials from Identity Service + * + * In addition to AWS credentials expiring after a given amount of time, the + * login token from the identity provider will also expire. Once this token + * expires, it will not be usable to refresh AWS credentials, and another + * token will be needed. The SDK does not manage refreshing of the token value, + * but this can be done through a "refresh token" supported by most identity + * providers. Consult the documentation for the identity provider for refreshing + * tokens. Once the refreshed token is acquired, you should make sure to update + * this new token in the credentials object's {params} property. The following + * code will update the WebIdentityToken, assuming you have retrieved an updated + * token from the identity provider: + * + * ```javascript + * AWS.config.credentials.params.WebIdentityToken = updatedToken; + * ``` + * + * Future calls to `credentials.refresh()` will now use the new token. + * + * @!attribute params + * @return [map] the map of params passed to + * {AWS.STS.assumeRoleWithWebIdentity}. To update the token, set the + * `params.WebIdentityToken` property. + */ +AWS.WebIdentityCredentials = AWS.util.inherit(AWS.Credentials, { + /** + * Creates a new credentials object. + * @param (see AWS.STS.assumeRoleWithWebIdentity) + * @example Creating a new credentials object + * AWS.config.credentials = new AWS.WebIdentityCredentials({ + * RoleArn: 'arn:aws:iam::1234567890:role/WebIdentity', + * WebIdentityToken: 'ABCDEFGHIJKLMNOP', // token from identity service + * RoleSessionName: 'web' // optional name, defaults to web-identity + * }); + * @see AWS.STS.assumeRoleWithWebIdentity + */ + constructor: function WebIdentityCredentials(params) { + AWS.Credentials.call(this); + this.expired = true; + this.service = new AWS.STS(); + this.params = params; + this.params.RoleSessionName = this.params.RoleSessionName || 'web-identity'; + }, + + /** + * Refreshes credentials using {AWS.STS.assumeRoleWithWebIdentity} + * + * @callback callback function(err) + * Called when the STS service responds (or fails). When + * this callback is called with no error, it means that the credentials + * information has been loaded into the object (as the `accessKeyId`, + * `secretAccessKey`, and `sessionToken` properties). + * @param err [Error] if an error occurred, this value will be filled + * @see get + */ + refresh: function refresh(callback) { + var self = this; + if (!callback) callback = function(err) { if (err) throw err; }; + + self.service.assumeRoleWithWebIdentity(self.params, function (err, data) { + if (!err) { + self.service.credentialsFrom(data, self); + } + callback(err); + }); + } +}); diff --git a/node_modules/aws-sdk/lib/event_listeners.js b/node_modules/aws-sdk/lib/event_listeners.js new file mode 100644 index 00000000..8c76cb45 --- /dev/null +++ b/node_modules/aws-sdk/lib/event_listeners.js @@ -0,0 +1,385 @@ +var AWS = require('./core'); +require('./sequential_executor'); +require('./service_interface/json'); +require('./service_interface/query'); +require('./service_interface/rest'); +require('./service_interface/rest_json'); +require('./service_interface/rest_xml'); + +/** + * The namespace used to register global event listeners for request building + * and sending. + */ +AWS.EventListeners = { + /** + * @!attribute VALIDATE_CREDENTIALS + * A request listener that validates whether the request is being + * sent with credentials. + * Handles the {AWS.Request~validate 'validate' Request event} + * @example Sending a request without validating credentials + * var listener = AWS.EventListeners.Core.VALIDATE_CREDENTIALS; + * request.removeListener('validate', listener); + * @readonly + * @return [Function] + * @!attribute VALIDATE_REGION + * A request listener that validates whether the region is set + * for a request. + * Handles the {AWS.Request~validate 'validate' Request event} + * @example Sending a request without validating region configuration + * var listener = AWS.EventListeners.Core.VALIDATE_REGION; + * request.removeListener('validate', listener); + * @readonly + * @return [Function] + * @!attribute VALIDATE_PARAMETERS + * A request listener that validates input parameters in a request. + * Handles the {AWS.Request~validate 'validate' Request event} + * @example Sending a request without validating parameters + * var listener = AWS.EventListeners.Core.VALIDATE_PARAMETERS; + * request.removeListener('validate', listener); + * @example Disable parameter validation globally + * AWS.EventListeners.Core.removeListener('validate', + * AWS.EventListeners.Core.VALIDATE_REGION); + * @readonly + * @return [Function] + * @!attribute SEND + * A request listener that initiates the HTTP connection for a + * request being sent. Handles the {AWS.Request~send 'send' Request event} + * @example Replacing the HTTP handler + * var listener = AWS.EventListeners.Core.SEND; + * request.removeListener('send', listener); + * request.on('send', function(response) { + * customHandler.send(response); + * }); + * @return [Function] + * @readonly + * @!attribute HTTP_DATA + * A request listener that reads data from the HTTP connection in order + * to build the response data. + * Handles the {AWS.Request~httpData 'httpData' Request event}. + * Remove this handler if you are overriding the 'httpData' event and + * do not want extra data processing and buffering overhead. + * @example Disabling default data processing + * var listener = AWS.EventListeners.Core.HTTP_DATA; + * request.removeListener('httpData', listener); + * @return [Function] + * @readonly + */ + Core: {} /* doc hack */ +}; + +AWS.EventListeners = { + Core: new AWS.SequentialExecutor().addNamedListeners(function(add, addAsync) { + addAsync('VALIDATE_CREDENTIALS', 'validate', + function VALIDATE_CREDENTIALS(req, done) { + req.service.config.getCredentials(function(err) { + if (err) { + req.response.err = AWS.util.error(err, + {code: 'SigningError', message: 'Missing credentials in config'}); + } + done(); + }); + }); + + add('VALIDATE_REGION', 'validate', function VALIDATE_REGION(req) { + if (!req.service.config.region && !req.service.hasGlobalEndpoint()) { + req.response.error = AWS.util.error(new Error(), + {code: 'SigningError', message: 'Missing region in config'}); + } + }); + + add('VALIDATE_PARAMETERS', 'validate', function VALIDATE_PARAMETERS(req) { + var rules = req.service.api.operations[req.operation].input; + new AWS.ParamValidator().validate(rules, req.params); + }); + + add('SET_CONTENT_LENGTH', 'afterBuild', function SET_CONTENT_LENGTH(req) { + if (req.httpRequest.headers['Content-Length'] === undefined) { + var length = AWS.util.string.byteLength(req.httpRequest.body); + req.httpRequest.headers['Content-Length'] = length; + } + }); + + add('SET_HTTP_HOST', 'afterBuild', function SET_HTTP_HOST(req) { + req.httpRequest.headers['Host'] = req.httpRequest.endpoint.host; + }); + + addAsync('SIGN', 'sign', function SIGN(req, done) { + if (!req.service.api.signatureVersion) return done(); // none + + req.service.config.getCredentials(function (err, credentials) { + if (err) { + req.response.error = err; + return done(); + } + + try { + var date = AWS.util.date.getDate(); + var SignerClass = req.service.getSignerClass(req); + var signer = new SignerClass(req.httpRequest, + req.service.api.signingName || req.service.api.endpointPrefix); + + // clear old authorization headers + delete req.httpRequest.headers['Authorization']; + delete req.httpRequest.headers['Date']; + delete req.httpRequest.headers['X-Amz-Date']; + + // add new authorization + signer.addAuthorization(credentials, date); + req.signedAt = date; + } catch (e) { + req.response.error = e; + } + done(); + }); + }); + + add('VALIDATE_RESPONSE', 'validateResponse', function VALIDATE_RESPONSE(resp) { + if (this.service.successfulResponse(resp, this)) { + resp.data = {}; + resp.error = null; + } else { + resp.data = null; + resp.error = AWS.util.error(new Error(), + {code: 'UnknownError', message: 'An unknown error occurred.'}); + } + }); + + addAsync('SEND', 'send', function SEND(resp, done) { + resp.httpResponse._abortCallback = done; + resp.error = null; + resp.data = null; + + function callback(httpResp) { + resp.httpResponse.stream = httpResp; + + httpResp.on('headers', function onHeaders(statusCode, headers) { + resp.request.emit('httpHeaders', [statusCode, headers, resp]); + + if (!resp.request.httpRequest._streaming) { + if (AWS.HttpClient.streamsApiVersion === 2) { // streams2 API check + httpResp.on('readable', function onReadable() { + var data = httpResp.read(); + if (data !== null) { + resp.request.emit('httpData', [data, resp]); + } + }); + } else { // legacy streams API + httpResp.on('data', function onData(data) { + resp.request.emit('httpData', [data, resp]); + }); + } + } + }); + + httpResp.on('end', function onEnd() { + resp.request.emit('httpDone'); + done(); + }); + } + + function progress(httpResp) { + httpResp.on('sendProgress', function onSendProgress(progress) { + resp.request.emit('httpUploadProgress', [progress, resp]); + }); + + httpResp.on('receiveProgress', function onReceiveProgress(progress) { + resp.request.emit('httpDownloadProgress', [progress, resp]); + }); + } + + function error(err) { + resp.error = AWS.util.error(err, { + code: 'NetworkingError', + region: resp.request.httpRequest.region, + hostname: resp.request.httpRequest.endpoint.hostname, + retryable: true + }); + resp.request.emit('httpError', [resp.error, resp], function() { + done(); + }); + } + + function executeSend() { + var http = AWS.HttpClient.getInstance(); + var httpOptions = resp.request.service.config.httpOptions || {}; + var stream = http.handleRequest(resp.request.httpRequest, httpOptions, + callback, error); + progress(stream); + } + + var timeDiff = (AWS.util.date.getDate() - this.signedAt) / 1000; + if (timeDiff >= 60 * 10) { // if we signed 10min ago, re-sign + this.emit('sign', [this], function(err) { + if (err) done(err); + else executeSend(); + }); + } else { + executeSend(); + } + }); + + add('HTTP_HEADERS', 'httpHeaders', + function HTTP_HEADERS(statusCode, headers, resp) { + resp.httpResponse.statusCode = statusCode; + resp.httpResponse.headers = headers; + resp.httpResponse.body = new AWS.util.Buffer(''); + resp.httpResponse.buffers = []; + resp.httpResponse.numBytes = 0; + }); + + add('HTTP_DATA', 'httpData', function HTTP_DATA(chunk, resp) { + if (chunk) { + if (AWS.util.isNode()) { + resp.httpResponse.numBytes += chunk.length; + + var total = resp.httpResponse.headers['content-length']; + var progress = { loaded: resp.httpResponse.numBytes, total: total }; + resp.request.emit('httpDownloadProgress', [progress, resp]); + } + + resp.httpResponse.buffers.push(new AWS.util.Buffer(chunk)); + } + }); + + add('HTTP_DONE', 'httpDone', function HTTP_DONE(resp) { + // convert buffers array into single buffer + if (resp.httpResponse.buffers && resp.httpResponse.buffers.length > 0) { + var body = AWS.util.buffer.concat(resp.httpResponse.buffers); + resp.httpResponse.body = body; + } + delete resp.httpResponse.numBytes; + delete resp.httpResponse.buffers; + }); + + add('FINALIZE_ERROR', 'retry', function FINALIZE_ERROR(resp) { + if (resp.httpResponse.statusCode) { + resp.error.statusCode = resp.httpResponse.statusCode; + if (resp.error.retryable === undefined) { + resp.error.retryable = this.service.retryableError(resp.error, this); + } + } + }); + + add('INVALIDATE_CREDENTIALS', 'retry', function INVALIDATE_CREDENTIALS(resp) { + switch (resp.error.code) { + case 'RequestExpired': // EC2 only + case 'ExpiredTokenException': + case 'ExpiredToken': + resp.error.retryable = true; + resp.request.service.config.credentials.expired = true; + } + }); + + add('REDIRECT', 'retry', function REDIRECT(resp) { + if (resp.error && resp.error.statusCode >= 300 && + resp.error.statusCode < 400 && resp.httpResponse.headers['location']) { + this.httpRequest.endpoint = + new AWS.Endpoint(resp.httpResponse.headers['location']); + resp.error.redirect = true; + resp.error.retryable = true; + } + }); + + add('RETRY_CHECK', 'retry', function RETRY_CHECK(resp) { + if (resp.error) { + if (resp.error.redirect && resp.redirectCount < resp.maxRedirects) { + resp.error.retryDelay = 0; + resp.redirectCount++; + resp.error._willRetry = true; + } else if (resp.error.retryable && resp.retryCount < resp.maxRetries) { + var delays = this.service.retryDelays(); + resp.error.retryDelay = delays[resp.retryCount] || 0; + resp.retryCount++; + resp.error._willRetry = true; + } else { + resp.error._willRetry = false; + } + } + }); + + addAsync('RESET_RETRY_STATE', 'afterRetry', function RESET_RETRY_STATE(resp, done) { + if (resp.error && resp.error._willRetry) { + var delay = resp.error.retryDelay || 0; + resp.error = null; + setTimeout(done, delay); + } else { + done(); + } + }); + + }), + + CorePost: new AWS.SequentialExecutor().addNamedListeners(function(add) { + add('EXTRACT_REQUEST_ID', 'extractData', function EXTRACT_REQUEST_ID(resp) { + resp.requestId = resp.httpResponse.headers['x-amz-request-id'] || + resp.httpResponse.headers['x-amzn-requestid']; + }); + }), + + Logger: new AWS.SequentialExecutor().addNamedListeners(function(add) { + add('LOG_REQUEST', 'complete', function LOG_REQUEST(resp) { + var req = resp.request; + var logger = req.service.config.logger; + if (!logger) return; + + function buildMessage() { + var time = AWS.util.date.getDate().getTime(); + var delta = (time - req.startTime.getTime()) / 1000; + var ansi = logger.isTTY ? true : false; + var status = resp.httpResponse.statusCode; + var params = require('util').inspect(req.params, true, true); + + var message = ''; + if (ansi) message += '\x1B[33m'; + message += '[AWS ' + req.service.serviceIdentifier + ' ' + status; + message += ' ' + delta.toString() + 's ' + resp.retryCount + ' retries]'; + if (ansi) message += '\x1B[0;1m'; + message += ' ' + req.operation + '(' + params + ')'; + if (ansi) message += '\x1B[0m'; + return message; + } + + var line = buildMessage(); + if (typeof logger.log === 'function') { + logger.log(line); + } else if (typeof logger.write === 'function') { + logger.write(line + '\n'); + } + }); + }), + + Json: new AWS.SequentialExecutor().addNamedListeners(function(add) { + var svc = AWS.ServiceInterface.Json; + add('BUILD', 'build', svc.buildRequest); + add('EXTRACT_DATA', 'extractData', svc.extractData); + add('EXTRACT_ERROR', 'extractError', svc.extractError); + }), + + Rest: new AWS.SequentialExecutor().addNamedListeners(function(add) { + var svc = AWS.ServiceInterface.Rest; + add('BUILD', 'build', svc.buildRequest); + add('EXTRACT_DATA', 'extractData', svc.extractData); + add('EXTRACT_ERROR', 'extractError', svc.extractError); + }), + + RestJson: new AWS.SequentialExecutor().addNamedListeners(function(add) { + var svc = AWS.ServiceInterface.RestJson; + add('BUILD', 'build', svc.buildRequest); + add('EXTRACT_DATA', 'extractData', svc.extractData); + add('EXTRACT_ERROR', 'extractError', svc.extractError); + }), + + RestXml: new AWS.SequentialExecutor().addNamedListeners(function(add) { + var svc = AWS.ServiceInterface.RestXml; + add('BUILD', 'build', svc.buildRequest); + add('EXTRACT_DATA', 'extractData', svc.extractData); + add('EXTRACT_ERROR', 'extractError', svc.extractError); + }), + + Query: new AWS.SequentialExecutor().addNamedListeners(function(add) { + var svc = AWS.ServiceInterface.Query; + add('BUILD', 'build', svc.buildRequest); + add('EXTRACT_DATA', 'extractData', svc.extractData); + add('EXTRACT_ERROR', 'extractError', svc.extractError); + }) +}; diff --git a/node_modules/aws-sdk/lib/http.js b/node_modules/aws-sdk/lib/http.js new file mode 100644 index 00000000..f7114d34 --- /dev/null +++ b/node_modules/aws-sdk/lib/http.js @@ -0,0 +1,166 @@ +var AWS = require('./core'); +var inherit = AWS.util.inherit; + +/** + * The endpoint that a service will talk to, for example, + * `'https://ec2.ap-southeast-1.amazonaws.com'`. If + * you need to override an endpoint for a service, you can + * set the endpoint on a service by passing the endpoint + * object with the `endpoint` option key: + * + * ```javascript + * var ep = new AWS.Endpoint('awsproxy.example.com'); + * var s3 = new AWS.S3({endpoint: ep}); + * s3.service.endpoint.hostname == 'awsproxy.example.com' + * ``` + * + * Note that if you do not specify a protocol, the protocol will + * be selected based on your current {AWS.config} configuration. + * + * @!attribute protocol + * @return [String] the protocol (http or https) of the endpoint + * URL + * @!attribute hostname + * @return [String] the host portion of the endpoint, e.g., + * example.com + * @!attribute host + * @return [String] the host portion of the endpoint including + * the port, e.g., example.com:80 + * @!attribute port + * @return [Integer] the port of the endpoint + * @!attribute href + * @return [String] the full URL of the endpoint + */ +AWS.Endpoint = inherit({ + + /** + * @overload Endpoint(endpoint) + * Constructs a new endpoint given an endpoint URL. If the + * URL omits a protocol (http or https), the default protocol + * set in the global {AWS.config} will be used. + * @param endpoint [String] the URL to construct an endpoint from + */ + constructor: function Endpoint(endpoint, config) { + AWS.util.hideProperties(this, ['slashes', 'auth', 'hash', 'search', 'query']); + + if (typeof endpoint === 'undefined' || endpoint === null) { + throw new Error('Invalid endpoint: ' + endpoint); + } else if (typeof endpoint !== 'string') { + return AWS.util.copy(endpoint); + } + + if (!endpoint.match(/^http/)) { + var useSSL = config && config.sslEnabled !== undefined ? + config.sslEnabled : AWS.config.sslEnabled; + endpoint = (useSSL ? 'https' : 'http') + '://' + endpoint; + } + + AWS.util.update(this, AWS.util.urlParse(endpoint)); + + // Ensure the port property is set as an integer + if (this.port) { + this.port = parseInt(this.port, 10); + } else { + this.port = this.protocol === 'https:' ? 443 : 80; + } + } + +}); + +/** + * The low level HTTP request object, encapsulating all HTTP header + * and body data sent by a service request. + * + * @!attribute method + * @return [String] the HTTP method of the request + * @!attribute path + * @return [String] the path portion of the URI, e.g., + * "/list/?start=5&num=10" + * @!attribute headers + * @return [map] + * a map of header keys and their respective values + * @!attribute body + * @return [String] the request body payload + * @!attribute endpoint + * @return [AWS.Endpoint] the endpoint for the request + * @!attribute region + * @api private + * @return [String] the region, for signing purposes only. + */ +AWS.HttpRequest = inherit({ + + /** + * @api private + */ + constructor: function HttpRequest(endpoint, region) { + endpoint = new AWS.Endpoint(endpoint); + this.method = 'POST'; + this.path = endpoint.path || '/'; + this.headers = {}; + this.body = ''; + this.endpoint = endpoint; + this.region = region; + this.setUserAgent(); + }, + + /** + * @api private + */ + setUserAgent: function setUserAgent() { + var prefix = AWS.util.isBrowser() ? 'X-Amz-' : ''; + this.headers[prefix + 'User-Agent'] = AWS.util.userAgent(); + }, + + /** + * @return [String] the part of the {path} excluding the + * query string + */ + pathname: function pathname() { + return this.path.split('?', 1)[0]; + }, + + /** + * @return [String] the query string portion of the {path} + */ + search: function search() { + return this.path.split('?', 2)[1] || ''; + } + +}); + +/** + * The low level HTTP response object, encapsulating all HTTP header + * and body data returned from the request. + * + * @!attribute statusCode + * @return [Integer] the HTTP status code of the response (e.g., 200, 404) + * @!attribute headers + * @return [map] + * a map of response header keys and their respective values + * @!attribute body + * @return [String] the response body payload + */ +AWS.HttpResponse = inherit({ + + /** + * @api private + */ + constructor: function HttpResponse() { + this.statusCode = undefined; + this.headers = {}; + this.body = undefined; + } +}); + + +AWS.HttpClient = inherit({}); + +/** + * @api private + */ +AWS.HttpClient.getInstance = function getInstance() { + if (this.singleton === undefined) { + this.singleton = new this(); + } + return this.singleton; +}; diff --git a/node_modules/aws-sdk/lib/http/node.js b/node_modules/aws-sdk/lib/http/node.js new file mode 100644 index 00000000..247a8f57 --- /dev/null +++ b/node_modules/aws-sdk/lib/http/node.js @@ -0,0 +1,147 @@ +var AWS = require('../core'); +var Stream = AWS.util.nodeRequire('stream').Stream; +var WritableStream = AWS.util.nodeRequire('stream').Writable; +var ReadableStream = AWS.util.nodeRequire('stream').Readable; +require('../http'); + +/** + * @api private + */ +AWS.NodeHttpClient = AWS.util.inherit({ + handleRequest: function handleRequest(httpRequest, httpOptions, callback, errCallback) { + var endpoint = httpRequest.endpoint; + var pathPrefix = ''; + if (!httpOptions) httpOptions = {}; + if (httpOptions.proxy) { + pathPrefix = endpoint.protocol + '//' + endpoint.hostname; + if (endpoint.port !== 80 && endpoint.port !== 443) { + pathPrefix += ':' + endpoint.port; + } + endpoint = new AWS.Endpoint(httpOptions.proxy); + } + + var useSSL = endpoint.protocol === 'https:'; + var http = useSSL ? require('https') : require('http'); + var options = { + host: endpoint.hostname, + port: endpoint.port, + method: httpRequest.method, + headers: httpRequest.headers, + path: pathPrefix + httpRequest.path + }; + + if (useSSL && !httpOptions.agent) { + options.agent = this.sslAgent(); + } + + AWS.util.update(options, httpOptions); + delete options.proxy; // proxy isn't an HTTP option + delete options.timeout; // timeout isn't an HTTP option + + var stream = http.request(options, function (httpResp) { + callback(httpResp); + httpResp.emit('headers', httpResp.statusCode, httpResp.headers); + }); + httpRequest.stream = stream; // attach stream to httpRequest + + // timeout support + stream.setTimeout(httpOptions.timeout || 0); + stream.once('timeout', function() { + var msg = 'Connection timed out after ' + httpOptions.timeout + 'ms'; + errCallback(AWS.util.error(new Error(msg), {code: 'TimeoutError'})); + + // HACK - abort the connection without tripping our error handler + // since we already raised our TimeoutError. Otherwise the connection + // comes back with ECONNRESET, which is not a helpful error message + stream.removeListener('error', errCallback); + stream.on('error', function() { }); + stream.abort(); + }); + + stream.on('error', errCallback); + this.writeBody(stream, httpRequest); + return stream; + }, + + writeBody: function writeBody(stream, httpRequest) { + var body = httpRequest.body; + + if (body && WritableStream && ReadableStream) { // progress support + if (!(body instanceof Stream)) body = this.bufferToStream(body); + body.pipe(this.progressStream(stream, httpRequest)); + } + + if (body instanceof Stream) { + body.pipe(stream); + } else if (body) { + stream.end(body); + } else { + stream.end(); + } + }, + + sslAgent: function sslAgent() { + var https = require('https'); + + if (!AWS.NodeHttpClient.sslAgent) { + AWS.NodeHttpClient.sslAgent = new https.Agent({rejectUnauthorized: true}); + AWS.NodeHttpClient.sslAgent.setMaxListeners(0); + + // delegate maxSockets to globalAgent + Object.defineProperty(AWS.NodeHttpClient.sslAgent, 'maxSockets', { + enumerable: true, + get: function() { return https.globalAgent.maxSockets; } + }); + } + return AWS.NodeHttpClient.sslAgent; + }, + + progressStream: function progressStream(stream, httpRequest) { + var numBytes = 0; + var totalBytes = httpRequest.headers['Content-Length']; + var writer = new WritableStream(); + writer._write = function(chunk, encoding, callback) { + if (chunk) { + numBytes += chunk.length; + stream.emit('sendProgress', { + loaded: numBytes, total: totalBytes + }); + } + callback(); + }; + return writer; + }, + + bufferToStream: function bufferToStream(buffer) { + if (!AWS.util.Buffer.isBuffer(buffer)) buffer = new AWS.util.Buffer(buffer); + + var readable = new ReadableStream(); + var pos = 0; + readable._read = function(size) { + if (pos >= buffer.length) return readable.push(null); + + var end = pos + size; + if (end > buffer.length) end = buffer.length; + readable.push(buffer.slice(pos, end)); + pos = end; + }; + + return readable; + }, + + emitter: null +}); + +/** + * @!ignore + */ + +/** + * @api private + */ +AWS.HttpClient.prototype = AWS.NodeHttpClient.prototype; + +/** + * @api private + */ +AWS.HttpClient.streamsApiVersion = ReadableStream ? 2 : 1; diff --git a/node_modules/aws-sdk/lib/http/xhr.js b/node_modules/aws-sdk/lib/http/xhr.js new file mode 100644 index 00000000..6005c8bd --- /dev/null +++ b/node_modules/aws-sdk/lib/http/xhr.js @@ -0,0 +1,112 @@ +var AWS = require('../core'); +var EventEmitter = require('events').EventEmitter; +require('../http'); + +/** + * @api private + */ +AWS.XHRClient = AWS.util.inherit({ + handleRequest: function handleRequest(httpRequest, httpOptions, callback, errCallback) { + var self = this; + var endpoint = httpRequest.endpoint; + var emitter = new EventEmitter(); + var href = endpoint.protocol + '//' + endpoint.hostname; + if (endpoint.port !== 80 && endpoint.port !== 443) { + href += ':' + endpoint.port; + } + href += httpRequest.path; + + var xhr = new XMLHttpRequest(); + httpRequest.stream = xhr; + + if (httpOptions.timeout) { + xhr.timeout = httpOptions.timeout; + } + + xhr.addEventListener('readystatechange', function() { + try { + if (xhr.status === 0) return; // 0 code is invalid + } catch (e) { return; } + + if (this.readyState === this.HEADERS_RECEIVED) { + try { xhr.responseType = 'arraybuffer'; } catch (e) {} + emitter.statusCode = xhr.status; + emitter.headers = self.parseHeaders(xhr.getAllResponseHeaders()); + emitter.emit('headers', emitter.statusCode, emitter.headers); + } else if (this.readyState === this.DONE) { + self.finishRequest(xhr, emitter); + } + }, false); + xhr.upload.addEventListener('progress', function (evt) { + emitter.emit('sendProgress', evt); + }); + xhr.addEventListener('progress', function (evt) { + emitter.emit('receiveProgress', evt); + }, false); + xhr.addEventListener('timeout', function () { + errCallback(AWS.util.error(new Error('Timeout'), {code: 'TimeoutError'})); + }, false); + xhr.addEventListener('error', function () { + errCallback(AWS.util.error(new Error('Network Failure'), { + code: 'NetworkingError' + })); + }, false); + + callback(emitter); + xhr.open(httpRequest.method, href, true); + AWS.util.each(httpRequest.headers, function (key, value) { + if (key !== 'Content-Length' && key !== 'User-Agent' && key !== 'Host') { + xhr.setRequestHeader(key, value); + } + }); + + if (httpRequest.body && typeof httpRequest.body.buffer === 'object') { + xhr.send(httpRequest.body.buffer); // typed arrays sent as ArrayBuffer + } else { + xhr.send(httpRequest.body); + } + + return emitter; + }, + + parseHeaders: function parseHeaders(rawHeaders) { + var headers = {}; + AWS.util.arrayEach(rawHeaders.split(/\r?\n/), function (line) { + var key = line.split(':', 1)[0]; + var value = line.substring(key.length + 2); + if (key.length > 0) headers[key] = value; + }); + return headers; + }, + + finishRequest: function finishRequest(xhr, emitter) { + var buffer; + if (xhr.responseType === 'arraybuffer' && xhr.response) { + var ab = xhr.response; + buffer = new AWS.util.Buffer(ab.byteLength); + var view = new Uint8Array(ab); + for (var i = 0; i < buffer.length; ++i) { + buffer[i] = view[i]; + } + } + + try { + if (!buffer && typeof xhr.responseText === 'string') { + buffer = new AWS.util.Buffer(xhr.responseText); + } + } catch (e) {} + + if (buffer) emitter.emit('data', buffer); + emitter.emit('end'); + } +}); + +/** + * @api private + */ +AWS.HttpClient.prototype = AWS.XHRClient.prototype; + +/** + * @api private + */ +AWS.HttpClient.streamsApiVersion = 1; diff --git a/node_modules/aws-sdk/lib/json/builder.js b/node_modules/aws-sdk/lib/json/builder.js new file mode 100644 index 00000000..e9b09562 --- /dev/null +++ b/node_modules/aws-sdk/lib/json/builder.js @@ -0,0 +1,76 @@ +var AWS = require('../core'); +var inherit = AWS.util.inherit; + +/** + * @api private + */ +AWS.JSON = {}; + +/** + * @api private + */ +AWS.JSON.Builder = inherit({ + + constructor: function JSONBuilder(rules, options) { + this.rules = rules; + this.timestampFormat = options.timestampFormat; + }, + + build: function build(params) { + return JSON.stringify(this.translate(this.rules, params)); + }, + + translate: function translate(rules, value) { + if (value === null || value === undefined) return undefined; + + if (rules.type === 'structure') { + + // translate structures (hashes with pre-defined keys) + var struct = {}; + AWS.util.each.call(this, value, function (memberName, memberValue) { + var memberRules = rules.members[memberName] || {}; + var result = this.translate(memberRules, memberValue); + if (result !== undefined) struct[memberName] = result; + }); + return struct; + + } else if (rules.type === 'list') { + + // translate each member of the list + var list = []; + AWS.util.arrayEach.call(this, value, function (memberValue) { + var memberRules = rules.members || {}; + var result = this.translate(memberRules, memberValue); + if (result !== undefined) list.push(result); + }); + return list; + + } else if (rules.type === 'map') { + + // translate maps (hashes with user supplied keys) + var map = {}; + AWS.util.each.call(this, value, function (memberName, memberValue) { + var memberRules = rules.members || {}; + var result = this.translate(memberRules, memberValue); + if (result !== undefined) map[memberName] = result; + }); + return map; + + } else if (rules.type === 'timestamp') { + + var timestampFormat = rules.format || this.timestampFormat; + return AWS.util.date.format(value, timestampFormat); + + } else if (rules.type === 'integer') { + return parseInt(value, 10); + } else if (rules.type === 'float') { + return parseFloat(value); + } else { + + // all other shapes + return value; + + } + } + +}); diff --git a/node_modules/aws-sdk/lib/metadata_service.js b/node_modules/aws-sdk/lib/metadata_service.js new file mode 100644 index 00000000..169b4dfe --- /dev/null +++ b/node_modules/aws-sdk/lib/metadata_service.js @@ -0,0 +1,98 @@ +var AWS = require('./core'); +require('./http'); +var inherit = AWS.util.inherit; + +/** + * Represents a metadata service available on EC2 instances. Using the + * {request} method, you can receieve metadata about any available resource + * on the metadata service. + * + * @!attribute [r] httpOptions + * @return [map] a map of options to pass to the underlying HTTP request + * @!macro nobrowser + */ +AWS.MetadataService = inherit({ + /** + * @return [String] the hostname of the instance metadata service + */ + host: '169.254.169.254', + + /** + * @!ignore + */ + + /** + * Options + */ + httpOptions: { timeout: 1000 }, + + /** + * Creates a new MetadataService object with a given set of options. + * + * @option options host [String] the hostname of the instance metadata + * service + * @option options httpOptions [map] a map of options to pass to the + * underlying HTTP request + */ + constructor: function MetadataService(options) { + AWS.util.update(this, options); + }, + + /** + * Sends a request to the instance metadata service for a given resource. + * + * @param path [String] the path of the resource to get + * @callback callback function(err, data) + * Called when a response is available from the service. + * @param err [Error, null] if an error occurred, this value will be set + * @param data [String, null] if the request was successful, the body of + * the response + */ + request: function request(path, callback) { + path = path || '/'; + + var data = ''; + var http = AWS.HttpClient.getInstance(); + var httpRequest = new AWS.HttpRequest('http://' + this.host + path); + httpRequest.method = 'GET'; + + http.handleRequest(httpRequest, this.httpOptions, function(httpResponse) { + httpResponse.on('data', function(chunk) { data += chunk.toString(); }); + httpResponse.on('end', function() { callback(null, data); }); + }, callback); + }, + + /** + * Loads a set of credentials stored in the instance metadata service + * + * @api private + * @callback callback function(err, credentials) + * Called when credentials are loaded from the resource + * @param err [Error] if an error occurred, this value will be set + * @param credentials [Object] the raw JSON object containing all + * metadata from the credentials resource + */ + loadCredentials: function loadCredentials(callback) { + var self = this; + var basePath = '/latest/meta-data/iam/security-credentials/'; + self.request(basePath, function (err, roleName) { + if (err) callback(err); + else { + roleName = roleName.split('\n')[0]; // grab first (and only) role + self.request(basePath + roleName, function (credErr, credData) { + if (credErr) callback(credErr); + else { + try { + var credentials = JSON.parse(credData); + callback(null, credentials); + } catch (parseError) { + callback(parseError); + } + } + }); + } + }); + } +}); + +module.exports = AWS.MetadataService; diff --git a/node_modules/aws-sdk/lib/param_validator.js b/node_modules/aws-sdk/lib/param_validator.js new file mode 100644 index 00000000..44cafc52 --- /dev/null +++ b/node_modules/aws-sdk/lib/param_validator.js @@ -0,0 +1,168 @@ +var AWS = require('./core'); + +/** + * @api private + */ +AWS.ParamValidator = AWS.util.inherit({ + validate: function validate(rules, params, context) { + var cRules = (rules || {}).members || {}; + var payload = rules ? rules.xml : null; + if (payload) { + cRules = AWS.util.merge(cRules, (cRules[payload] || {}).members || {}); + delete cRules[payload]; + } + + return this.validateStructure(cRules, params || {}, context || 'params'); + }, + + validateStructure: function validateStructure(rules, params, context) { + this.validateType(context, params, ['object'], 'structure'); + + for (var paramName in rules) { + if (!rules.hasOwnProperty(paramName)) continue; + var value = params[paramName]; + var notSet = value === undefined || value === null; + if (rules[paramName].required && notSet) { + this.fail('MissingRequiredParameter', + 'Missing required key \'' + paramName + '\' in ' + context); + } + } + + // validate hash members + for (paramName in params) { + if (!params.hasOwnProperty(paramName)) continue; + + var paramValue = params[paramName], + paramRules = rules[paramName]; + + if (paramRules !== undefined) { + var memberContext = [context, paramName].join('.'); + this.validateMember(paramRules, paramValue, memberContext); + } else { + this.fail('UnexpectedParameter', + 'Unexpected key \'' + paramName + '\' found in ' + context); + } + } + + return true; + }, + + validateMember: function validateMember(rules, param, context) { + var memberRules = rules.members || {}; + switch(rules.type) { + case 'structure': + return this.validateStructure(memberRules, param, context); + case 'list': + return this.validateList(memberRules, param, context); + case 'map': + return this.validateMap(memberRules, param, context); + default: + return this.validateScalar(rules, param, context); + } + }, + + validateList: function validateList(rules, params, context) { + this.validateType(context, params, [Array]); + + // validate array members + for (var i = 0; i < params.length; i++) { + this.validateMember(rules, params[i], context + '[' + i + ']'); + } + }, + + validateMap: function validateMap(rules, params, context) { + this.validateType(context, params, ['object'], 'map'); + + for (var param in params) { + if (!params.hasOwnProperty(param)) continue; + this.validateMember(rules, params[param], + context + '[\'' + param + '\']'); + } + }, + + validateScalar: function validateScalar(rules, value, context) { + switch (rules.type) { + case null: + case undefined: + case 'string': + return this.validateType(context, value, ['string']); + case 'base64': + case 'binary': + return this.validatePayload(context, value); + case 'integer': + case 'float': + return this.validateNumber(context, value); + case 'boolean': + return this.validateType(context, value, ['boolean']); + case 'timestamp': + return this.validateType(context, value, [Date, + /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?Z$/, 'number'], + 'Date object, ISO-8601 string, or a UNIX timestamp'); + default: + return this.fail('UnkownType', 'Unhandled type ' + + rules.type + ' for ' + context); + } + }, + + fail: function fail(code, message) { + throw AWS.util.error(new Error(message), {code: code}); + }, + + validateType: function validateType(context, value, acceptedTypes, type) { + if (value === null || value === undefined) return; + + var foundInvalidType = false; + for (var i = 0; i < acceptedTypes.length; i++) { + if (typeof acceptedTypes[i] === 'string') { + if (typeof value === acceptedTypes[i]) return; + } else if (acceptedTypes[i] instanceof RegExp) { + if ((value || '').toString().match(acceptedTypes[i])) return; + } else { + if (value instanceof acceptedTypes[i]) return; + if (AWS.util.isType(value, acceptedTypes[i])) return; + if (!type && !foundInvalidType) acceptedTypes = acceptedTypes.slice(); + acceptedTypes[i] = AWS.util.typeName(acceptedTypes[i]); + } + foundInvalidType = true; + } + + var acceptedType = type; + if (!acceptedType) { + acceptedType = acceptedTypes.join(', ').replace(/,([^,]+)$/, ', or$1'); + } + + var vowel = acceptedType.match(/^[aeiou]/i) ? 'n' : ''; + this.fail('InvalidParameterType', 'Expected ' + context + ' to be a' + + vowel + ' ' + acceptedType); + }, + + validateNumber: function validateNumber(context, value) { + if (value === null || value === undefined) return; + if (typeof value === 'string') { + var castedValue = parseFloat(value); + if (castedValue.toString() === value) value = castedValue; + } + this.validateType(context, value, ['number']); + }, + + validatePayload: function validatePayload(context, value) { + if (value === null || value === undefined) return; + if (typeof value === 'string') return; + if (value && typeof value.byteLength === 'number') return; // typed arrays + if (AWS.util.isNode()) { // special check for buffer/stream in Node.js + var Stream = AWS.util.nodeRequire('stream').Stream; + if (AWS.util.Buffer.isBuffer(value) || value instanceof Stream) return; + } + + var types = ['Buffer', 'Stream', 'File', 'Blob', 'ArrayBuffer', 'DataView']; + if (value) { + for (var i = 0; i < types.length; i++) { + if (AWS.util.isType(value, types[i])) return; + if (AWS.util.typeName(value.constructor) === types[i]) return; + } + } + + this.fail('InvalidParameterType', 'Expected ' + context + ' to be a ' + + 'string, Buffer, Stream, Blob, or typed array object'); + } +}); diff --git a/node_modules/aws-sdk/lib/request.js b/node_modules/aws-sdk/lib/request.js new file mode 100644 index 00000000..924e5980 --- /dev/null +++ b/node_modules/aws-sdk/lib/request.js @@ -0,0 +1,602 @@ +var AWS = require('./core'); +var AcceptorStateMachine = require('./state_machine'); +var inherit = AWS.util.inherit; + +var fsm = new AcceptorStateMachine(); +fsm.setupStates = function() { + var hardErrorStates = {success:1, error:1, complete:1}; + var transition = function transition(err, done) { + try { + var self = this; + var origError = self.response.error; + self.emit(self._asm.currentState, function() { + function isTerminalState() { + return hardErrorStates[self._asm.currentState] === 1; + } + + var nextError = self.response.error; + if (self.response.error && origError !== self.response.error) { + if (isTerminalState()) self._hardError = true; + } + + if (self.response.error && !self._hardError && isTerminalState()) { + // error did not change to complete, no need to pass this as an + // uncaughtException + nextError = null; + } + + done(nextError); + }); + + } catch (e) { + this.response.error = e; + if (this._hardError) { + throw e; + } + else if (hardErrorStates.indexOf(this._asm.currentState) >= 0) { + this._hardError = true; + } + done(e); + } + }; + + this.addState('validate', 'build', 'error', transition); + this.addState('restart', 'build', 'error', function(err, done) { + err = this.response.error; + if (!err) return done(); + if (!err.retryable) return done(err); + + if (this.response.retryCount < this.service.config.maxRetries) { + this.response.retryCount++; + done(); + } else { + done(err); + } + }); + this.addState('build', 'afterBuild', 'restart', transition); + this.addState('afterBuild', 'sign', 'restart', transition); + this.addState('sign', 'send', 'retry', transition); + this.addState('retry', 'afterRetry', 'afterRetry', transition); + this.addState('afterRetry', 'sign', 'error', transition); + this.addState('send', 'validateResponse', 'retry', transition); + this.addState('validateResponse', 'extractData', 'extractError', transition); + this.addState('extractError', 'extractData', 'retry', transition); + this.addState('extractData', 'success', 'retry', transition); + this.addState('success', 'complete', 'complete', transition); + this.addState('error', 'complete', 'complete', transition); + this.addState('complete', null, 'uncaughtException', transition); + this.addState('uncaughtException', function(err, done) { + try { + AWS.SequentialExecutor.prototype.unhandledErrorCallback.call(this, err); + } catch (e) { + if (this._hardError) { + e._hardError = true; + throw e; + } + } + done(err); + }); +}; +fsm.setupStates(); + +/** + * ## Asynchronous Requests + * + * All requests made through the SDK are asynchronous and use a + * callback interface. Each service method that kicks off a request + * returns an `AWS.Request` object that you can use to register + * callbacks. + * + * For example, the following service method returns the request + * object as "request", which can be used to register callbacks: + * + * ```javascript + * // request is an AWS.Request object + * var request = ec2.describeInstances(); + * + * // register callbacks on request to retrieve response data + * request.on('success', function(response) { + * console.log(response.data); + * }); + * ``` + * + * When a request is ready to be sent, the {send} method should + * be called: + * + * ```javascript + * request.send(); + * ``` + * + * ## Removing Default Listeners for Events + * + * Request objects are built with default listeners for the various events, + * depending on the service type. In some cases, you may want to remove + * some built-in listeners to customize behaviour. Doing this requires + * access to the built-in listener functions, which are exposed through + * the {AWS.EventListeners.Core} namespace. For instance, you may + * want to customize the HTTP handler used when sending a request. In this + * case, you can remove the built-in listener associated with the 'send' + * event, the {AWS.EventListeners.Core.SEND} listener and add your own. + * + * ## Multiple Callbacks and Chaining + * + * You can register multiple callbacks on any request object. The + * callbacks can be registered for different events, or all for the + * same event. In addition, you can chain callback registration, for + * example: + * + * ```javascript + * request. + * on('success', function(response) { + * console.log("Success!"); + * }). + * on('error', function(response) { + * console.log("Error!"); + * }). + * on('complete', function(response) { + * console.log("Always!"); + * }). + * send(); + * ``` + * + * The above example will print either "Success! Always!", or "Error! Always!", + * depending on whether the request succeeded or not. + * + * @!attribute httpRequest + * @readonly + * @!group HTTP Properties + * @return [AWS.HttpRequest] the raw HTTP request object + * containing request headers and body information + * sent by the service. + * + * @!attribute startTime + * @readonly + * @!group Operation Properties + * @return [Date] the time that the request started + * + * @!group Request Building Events + * + * @!event validate(request) + * Triggered when a request is being validated. Listeners + * should throw an error if the request should not be sent. + * @param request [Request] the request object being sent + * @see AWS.EventListeners.Core.VALIDATE_CREDENTIALS + * @see AWS.EventListeners.Core.VALIDATE_REGION + * + * @!event build(request) + * Triggered when the request payload is being built. Listeners + * should fill the necessary information to send the request + * over HTTP. + * @param (see AWS.Request~validate) + * + * @!event sign(request) + * Triggered when the request is being signed. Listeners should + * add the correct authentication headers and/or adjust the body, + * depending on the authentication mechanism being used. + * @param (see AWS.Request~validate) + * + * @!group Request Sending Events + * + * @!event send(response) + * Triggered when the request is ready to be sent. Listeners + * should call the underlying transport layer to initiate + * the sending of the request. + * @param response [Response] the response object + * @context [Request] the request object that was sent + * @see AWS.EventListeners.Core.SEND + * + * @!event retry(response) + * Triggered when a request failed and might need to be retried. + * Listeners are responsible for checking to see if the request + * is retryable, and if so, re-signing and re-sending the request. + * Information about the failure is set in the `response.error` + * property. + * + * If a listener decides that a request should not be retried, + * that listener should `throw` an error to cancel the event chain. + * Unsetting `response.error` will have no effect. + * + * @param (see AWS.Request~send) + * @context (see AWS.Request~send) + * + * @!group Data Parsing Events + * + * @!event extractError(response) + * Triggered on all non-2xx requests so that listeners can extract + * error details from the response body. Listeners to this event + * should set the `response.error` property. + * @param (see AWS.Request~send) + * @context (see AWS.Request~send) + * + * @!event extractData(response) + * Triggered in successful requests to allow listeners to + * de-serialize the response body into `response.data`. + * @param (see AWS.Request~send) + * @context (see AWS.Request~send) + * + * @!group Completion Events + * + * @!event success(response) + * Triggered when the request completed successfully. + * `response.data` will contain the response data and + * `response.error` will be null. + * @param (see AWS.Request~send) + * @context (see AWS.Request~send) + * + * @!event error(error, response) + * Triggered when an error occurs at any point during the + * request. `response.error` will contain details about the error + * that occurred. `response.data` will be null. + * @param error [Error] the error object containing details about + * the error that occurred. + * @param (see AWS.Request~send) + * @context (see AWS.Request~send) + * + * @!event complete(response) + * Triggered whenever a request cycle completes. `response.error` + * should be checked, since the request may have failed. + * @param (see AWS.Request~send) + * @context (see AWS.Request~send) + * + * @!group HTTP Events + * + * @!event httpHeaders(statusCode, headers, response) + * Triggered when headers are sent by the remote server + * @param statusCode [Integer] the HTTP response code + * @param headers [map] the response headers + * @param (see AWS.Request~send) + * @context (see AWS.Request~send) + * + * @!event httpData(chunk, response) + * Triggered when data is sent by the remote server + * @param chunk [Buffer] the buffer data containing the next data chunk + * from the server + * @param (see AWS.Request~send) + * @context (see AWS.Request~send) + * @see AWS.EventListeners.Core.HTTP_DATA + * + * @!event httpUploadProgress(progress, response) + * Triggered when the HTTP request has uploaded more data + * @param progress [map] An object containing the `loaded` and `total` bytes + * of the request. + * @param (see AWS.Request~send) + * @context (see AWS.Request~send) + * @note This event will not be emitted in Node.js 0.8.x. + * + * @!event httpDownloadProgress(progress, response) + * Triggered when the HTTP request has downloaded more data + * @param progress [map] An object containing the `loaded` and `total` bytes + * of the request. + * @param (see AWS.Request~send) + * @context (see AWS.Request~send) + * @note This event will not be emitted in Node.js 0.8.x. + * + * @!event httpError(error, response) + * Triggered when the HTTP request failed + * @param error [Error] the error object that was thrown + * @param (see AWS.Request~send) + * @context (see AWS.Request~send) + * + * @!event httpDone(response) + * Triggered when the server is finished sending data + * @param (see AWS.Request~send) + * @context (see AWS.Request~send) + * + * @see AWS.Response + */ +AWS.Request = inherit({ + + /** + * Creates a request for an operation on a given service with + * a set of input parameters. + * + * @param service [AWS.Service] the service to perform the operation on + * @param operation [String] the operation to perform on the service + * @param params [Object] parameters to send to the operation. + * See the operation's documentation for the format of the + * parameters. + */ + constructor: function Request(service, operation, params) { + var endpoint = service.endpoint; + var region = service.config.region; + + // global endpoints sign as us-east-1 + if (service.hasGlobalEndpoint()) region = 'us-east-1'; + + this.service = service; + this.operation = operation; + this.params = params || {}; + this.httpRequest = new AWS.HttpRequest(endpoint, region); + this.startTime = AWS.util.date.getDate(); + + this.response = new AWS.Response(this); + this.restartCount = 0; + this._asm = new AcceptorStateMachine(fsm.states, 'validate'); + + AWS.SequentialExecutor.call(this); + this.emit = this.emitEvent; + }, + + /** + * @!group Sending a Request + */ + + /** + * @overload send(callback = null) + * Sends the request object. + * + * @callback callback function(err, data) + * If a callback is supplied, it is called when a response is returned + * from the service. + * @param err [Error] the error object returned from the request. + * Set to `null` if the request is successful. + * @param data [Object] the de-serialized data returned from + * the request. Set to `null` if a request error occurs. + * @example Sending a request with a callback + * request = s3.putObject({Bucket: 'bucket', Key: 'key'}); + * request.send(function(err, data) { console.log(err, data); }); + * @example Sending a request with no callback (using event handlers) + * request = s3.putObject({Bucket: 'bucket', Key: 'key'}); + * request.on('complete', function(response) { ... }); // register a callback + * request.send(); + */ + send: function send(callback) { + if (callback) { + this.on('complete', function (resp) { + try { + callback.call(resp, resp.error, resp.data); + } catch (e) { + resp.request._hardError = true; + throw e; + } + }); + } + this.runTo(); + + return this.response; + }, + + build: function build(callback) { + this._hardError = callback ? false : true; + return this.runTo('send', callback); + }, + + runTo: function runTo(state, done) { + this._asm.runTo(state, done, this); + return this; + }, + + /** + * Aborts a request, emitting the error and complete events. + * + * @!macro nobrowser + * @example Aborting a request after sending + * var params = { + * Bucket: 'bucket', Key: 'key', + * Body: new Buffer(1024 * 1024 * 5) // 5MB payload + * }; + * var request = s3.putObject(params); + * request.send(function (err, data) { + * if (err) console.log("Error:", err.code, err.message); + * else console.log(data); + * }); + * + * // abort request in 1 second + * setTimeout(request.abort.bind(request), 1000); + * + * // prints "Error: RequestAbortedError Request aborted by user" + * @return [AWS.Request] the same request object, for chaining. + * @since v1.4.0 + */ + abort: function abort() { + this.removeAllListeners('validateResponse'); + this.removeAllListeners('extractError'); + this.on('validateResponse', function addAbortedError(resp) { + resp.error = AWS.util.error(new Error('Request aborted by user'), { + code: 'RequestAbortedError', retryable: false + }); + }); + + if (this.httpRequest.stream) { // abort HTTP stream + this.httpRequest.stream.abort(); + if (this.httpRequest._abortCallback) { + this.httpRequest._abortCallback(); + } else { + this.removeAllListeners('send'); // haven't sent yet, so let's not + } + } + + return this; + }, + + /** + * Iterates over each page of results given a pageable request, calling + * the provided callback with each page of data. After all pages have been + * retrieved, the callback is called with `null` data. + * + * @note This operation can generate multiple requests to a service. + * @example Iterating over multiple pages of objects in an S3 bucket + * var pages = 1; + * s3.listObjects().eachPage(function(err, data) { + * if (err) return; + * console.log("Page", pages++); + * console.log(data); + * }); + * @callback callback function(err, data) + * Called with each page of resulting data from the request. + * + * @param err [Error] an error object, if an error occurred. + * @param data [Object] a single page of response data. If there is no + * more data, this object will be `null`. + * @return [Boolean] if the callback returns `false`, pagination will + * stop. + * + * @api experimental + * @see AWS.Request.eachItem + * @see AWS.Response.nextPage + * @since v1.4.0 + */ + eachPage: function eachPage(callback) { + function wrappedCallback(response) { + var result = callback.call(response, response.error, response.data); + if (result === false) return; + + if (response.hasNextPage()) { + response.nextPage().on('complete', wrappedCallback).send(); + } else { + callback.call(response, null, null); + } + } + + this.on('complete', wrappedCallback).send(); + }, + + /** + * Enumerates over individual items of a request, paging the responses if + * necessary. + * + * @api experimental + * @since v1.4.0 + */ + eachItem: function eachItem(callback) { + function wrappedCallback(err, data) { + if (err) return callback(err, null); + if (data === null) return callback(null, null); + + var config = this.request.service.paginationConfig(this.request.operation); + var resultKey = config.resultKey; + if (Array.isArray(resultKey)) resultKey = resultKey[0]; + var results = AWS.util.jamespath.query(resultKey, data); + AWS.util.arrayEach(results, function(result) { + AWS.util.arrayEach(result, function(item) { callback(null, item); }); + }); + } + + this.eachPage(wrappedCallback); + }, + + /** + * @return [Boolean] whether the operation can return multiple pages of + * response data. + * @api experimental + * @see AWS.Response.eachPage + * @since v1.4.0 + */ + isPageable: function isPageable() { + return this.service.paginationConfig(this.operation) ? true : false; + }, + + /** + * Converts the request object into a readable stream that + * can be read from or piped into a writable stream. + * + * @note The data read from a readable stream contains only + * the raw HTTP body contents. + * @example Manually reading from a stream + * request.createReadStream().on('data', function(data) { + * console.log("Got data:", data.toString()); + * }); + * @example Piping a request body into a file + * var out = fs.createWriteStream('/path/to/outfile.jpg'); + * s3.service.getObject(params).createReadStream().pipe(out); + * @return [Stream] the readable stream object that can be piped + * or read from (by registering 'data' event listeners). + * @!macro nobrowser + */ + createReadStream: function createReadStream() { + var streams = AWS.util.nodeRequire('stream'); + var req = this; + var stream = null; + var legacyStreams = false; + + if (AWS.HttpClient.streamsApiVersion === 2) { + stream = new streams.Readable(); + stream._read = function() { stream.push(''); }; + } else { + stream = new streams.Stream(); + stream.readable = true; + } + + stream.sent = false; + stream.on('newListener', function(event) { + if (!stream.sent && (event === 'data' || event === 'readable')) { + if (event === 'data') legacyStreams = true; + stream.sent = true; + process.nextTick(function() { req.send(function() { }); }); + } + }); + + this.on('httpHeaders', function streamHeaders(statusCode, headers, resp) { + if (statusCode < 300) { + this.httpRequest._streaming = true; + + req.removeListener('httpData', AWS.EventListeners.Core.HTTP_DATA); + req.removeListener('httpError', AWS.EventListeners.Core.HTTP_ERROR); + req.on('httpError', function streamHttpError(error, resp) { + resp.error = error; + resp.error.retryable = false; + }); + + var httpStream = resp.httpResponse.stream; + stream.response = resp; + stream._read = function() { + var data; + do { + data = httpStream.read(); + if (data) stream.push(data); + } while (data); + stream.push(''); + }; + + var events = ['end', 'error', (legacyStreams ? 'data' : 'readable')]; + AWS.util.arrayEach(events, function(event) { + httpStream.on(event, function(arg) { + stream.emit(event, arg); + }); + }); + } + }); + + this.on('error', function(err) { + stream.emit('error', err); + }); + + return stream; + }, + + /** + * @param [Array,Response] args This should be the response object, + * or an array of args to send to the event. + * @api private + */ + emitEvent: function emit(eventName, args, done) { + if (typeof args === 'function') { done = args; args = null; } + if (!done) done = this.unhandledErrorCallback; + if (!args) args = this.eventParameters(eventName, this.response); + + var origEmit = AWS.SequentialExecutor.prototype.emit; + origEmit.call(this, eventName, args, function (err) { + if (err) this.response.error = err; + done.call(this, err); + }); + }, + + /** + * @api private + */ + eventParameters: function eventParameters(eventName) { + switch (eventName) { + case 'validate': + case 'sign': + case 'build': + case 'afterBuild': + return [this]; + case 'error': + return [this.response.error, this.response]; + default: + return [this.response]; + } + } +}); + +AWS.util.mixin(AWS.Request, AWS.SequentialExecutor); diff --git a/node_modules/aws-sdk/lib/resource_waiter.js b/node_modules/aws-sdk/lib/resource_waiter.js new file mode 100644 index 00000000..18bbe917 --- /dev/null +++ b/node_modules/aws-sdk/lib/resource_waiter.js @@ -0,0 +1,200 @@ +/** + * Copyright 2012-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You + * may not use this file except in compliance with the License. A copy of + * the License is located at + * + * http://aws.amazon.com/apache2.0/ + * + * or in the "license" file accompanying this file. This file is + * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific + * language governing permissions and limitations under the License. + */ + +var AWS = require('./core'); +var inherit = AWS.util.inherit; + +/** + * @api private + */ +AWS.ResourceWaiter = inherit({ + /** + * Waits for a given state on a service object + * @param service [Service] the service object to wait on + * @param state [String] the state (defined in waiter configuration) to wait + * for. + * @example Create a waiter for running EC2 instances + * var ec2 = new AWS.EC2; + * var waiter = new AWS.ResourceWaiter(ec2, 'instanceRunning'); + */ + constructor: function constructor(service, state) { + this.service = service; + this.state = state; + this.config = {}; + + if (typeof this.state === 'object') { + AWS.util.each.call(this, this.state, function (key, value) { + this.state = key; + this.expectedValue = value; + }); + } + + this.loadWaiterConfig(this.state); + if (!this.expectedValue) { + this.expectedValue = this.config.successValue; + } + this.config.operation = AWS.util.string.lowerFirst(this.config.operation); + }, + + service: null, + + state: null, + + expectedValue: null, + + config: null, + + waitDone: false, + + Listeners: { + retry: new AWS.SequentialExecutor().addNamedListeners(function(add) { + add('RETRY_CHECK', 'retry', function(resp) { + var waiter = resp.request._waiter; + if (resp.error && resp.error.code === 'ResourceNotReady') { + resp.error.retryDelay = waiter.config.interval * 1000; + } + }); + }), + + output: new AWS.SequentialExecutor().addNamedListeners(function(add) { + add('CHECK_OUT_ERROR', 'extractError', function CHECK_OUT_ERROR(resp) { + if (resp.error) { + resp.request._waiter.setError(resp, true); + } + }); + + add('CHECK_OUTPUT', 'extractData', function CHECK_OUTPUT(resp) { + var waiter = resp.request._waiter; + var success = waiter.checkSuccess(resp); + if (!success) { + waiter.setError(resp, success === null ? false : true); + } else { + resp.error = null; + } + }); + }), + + error: new AWS.SequentialExecutor().addNamedListeners(function(add) { + add('CHECK_ERROR', 'extractError', function CHECK_ERROR(resp) { + var waiter = resp.request._waiter; + var success = waiter.checkError(resp); + if (!success) { + waiter.setError(resp, success === null ? false : true); + } else { + resp.error = null; + resp.request.removeAllListeners('extractData'); + } + }); + + add('CHECK_ERR_OUTPUT', 'extractData', function CHECK_ERR_OUTPUT(resp) { + resp.request._waiter.setError(resp, true); + }); + }) + }, + + /** + * @return [AWS.Request] + */ + wait: function wait(params, callback) { + if (typeof params === 'function') { + callback = params; params = undefined; + } + + var request = this.service.makeRequest(this.config.operation, params); + var listeners = this.Listeners[this.config.successType]; + request._waiter = this; + request.response.maxRetries = this.config.maxAttempts; + request.addListeners(this.Listeners.retry); + if (listeners) request.addListeners(listeners); + + if (callback) request.send(callback); + return request; + }, + + setError: function setError(resp, retryable) { + resp.data = null; + resp.error = AWS.util.error(resp.error || new Error(), { + code: 'ResourceNotReady', + message: 'Resource is not in the state ' + this.state, + retryable: retryable + }); + }, + + /** + * Checks if the terminal expected success state has been met + * @return [Boolean] + */ + checkSuccess: function checkSuccess(resp) { + if (!this.config.successPath) { + return resp.httpResponse.statusCode < 300; + } + + var r = AWS.util.jamespath.find(this.config.successPath, resp.data); + + if (this.config.failureValue && + this.config.failureValue.indexOf(r) >= 0) { + return null; // fast fail + } + + if (this.expectedValue) { + return r === this.expectedValue; + } else { + return r ? true : false; + } + }, + + /** + * Checks if the terminal expected error state has been met + * @return [Boolean] + */ + checkError: function checkError(resp) { + return resp.httpResponse.statusCode === this.config.successValue; + }, + + /** + * Loads waiter configuration from API configuration and deals with inherited + * properties. + * + * @api private + */ + loadWaiterConfig: function loadWaiterConfig(state, noException) { + if (!this.service.api.waiters[state]) { + if (noException) return; + throw new AWS.util.error(new Error(), { + code: 'StateNotFoundError', + message: 'State ' + state + ' not found.' + }); + } + + if (state !== '__default__') { + var superState = this.service.api.waiters[state]['extends']; + superState = superState || '__default__'; + this.loadWaiterConfig(superState, true); + } + + var config = this.config; + AWS.util.update(config, this.service.api.waiters[state]); + + // inherit acceptor data + (function () { // anonymous function to avoid max complexity count + config.successType = config.successType || config.acceptorType; + config.successPath = config.successPath || config.acceptorPath; + config.successValue = config.successValue || config.acceptorValue; + config.failureType = config.failureType || config.acceptorType; + config.failurePath = config.failurePath || config.acceptorPath; + config.failureValue = config.failureValue || config.acceptorValue; + })(); + } +}); diff --git a/node_modules/aws-sdk/lib/response.js b/node_modules/aws-sdk/lib/response.js new file mode 100644 index 00000000..7ee84881 --- /dev/null +++ b/node_modules/aws-sdk/lib/response.js @@ -0,0 +1,195 @@ +var AWS = require('./core'); +var inherit = AWS.util.inherit; + +/** + * This class encapsulates the the response information + * from a service request operation sent through {AWS.Request}. + * The response object has two main properties for getting information + * back from a request: + * + * ## The `data` property + * + * The `response.data` property contains the serialized object data + * retrieved from the service request. For instance, for an + * Amazon DynamoDB `listTables` method call, the response data might + * look like: + * + * ``` + * > resp.data + * { TableNames: + * [ 'table1', 'table2', ... ] } + * ``` + * + * The `data` property can be null if an error occurs (see below). + * + * ## The `error` property + * + * In the event of a service error (or transfer error), the + * `response.error` property will be filled with the given + * error data in the form: + * + * ``` + * { code: 'SHORT_UNIQUE_ERROR_CODE', + * message: 'Some human readable error message' } + * ``` + * + * In the case of an error, the `data` property will be `null`. + * Note that if you handle events that can be in a failure state, + * you should always check whether `response.error` is set + * before attempting to access the `response.data` property. + * + * @!attribute data + * @readonly + * @!group Data Properties + * @note Inside of a {AWS.Request~httpData} event, this + * property contains a single raw packet instead of the + * full de-serialized service response. + * @return [Object] the de-serialized response data + * from the service. + * + * @!attribute error + * An structure containing information about a service + * or networking error. + * @readonly + * @!group Data Properties + * @note This attribute is only filled if a service or + * networking error occurs. + * @return [Object] + * * code [String] a unique short code representing the + * error that was emitted. + * * message [String] a longer human readable error message + * * retryable [Boolean] whether the error message is + * retryable. + * + * @!attribute requestId + * @readonly + * @!group Data Properties + * @return [String] the unique request ID associated with the response. + * Log this value when debugging requests for AWS support. + * + * @!attribute retryCount + * @readonly + * @!group Operation Properties + * @return [Integer] the number of retries that were + * attempted before the request was completed. + * + * @!attribute redirectCount + * @readonly + * @!group Operation Properties + * @return [Integer] the number of redirects that were + * followed before the request was completed. + * + * @!attribute httpResponse + * @readonly + * @!group HTTP Properties + * @return [AWS.HttpResponse] the raw HTTP response object + * containing the response headers and body information + * from the server. + * + * @see AWS.Request + */ +AWS.Response = inherit({ + + /** + * @api private + */ + constructor: function Response(request) { + this.request = request; + this.data = null; + this.error = null; + this.retryCount = 0; + this.redirectCount = 0; + this.httpResponse = new AWS.HttpResponse(); + if (request) { + this.maxRetries = request.service.numRetries(); + this.maxRedirects = request.service.config.maxRedirects; + } + }, + + /** + * Creates a new request for the next page of response data, calling the + * callback with the page data if a callback is provided. + * + * @callback callback function(err, data) + * Called when a page of data is returned from the next request. + * + * @param err [Error] an error object, if an error occurred in the request + * @param data [Object] the next page of data, or null, if there are no + * more pages left. + * @return [AWS.Request] the request object for the next page of data + * @return [null] if no callback is provided and there are no pages left + * to retrieve. + * @api experimental + * @since v1.4.0 + */ + nextPage: function nextPage(callback) { + var config; + var service = this.request.service; + var operation = this.request.operation; + try { + config = service.paginationConfig(operation, true); + } catch (e) { this.error = e; } + + if (!this.hasNextPage()) { + if (callback) callback(this.error, null); + else if (this.error) throw this.error; + return null; + } + + var params = AWS.util.copy(this.request.params); + if (!this.nextPageTokens) { + return callback ? callback(null, null) : null; + } else { + var inputTokens = config.inputToken; + if (typeof inputTokens === 'string') inputTokens = [inputTokens]; + for (var i = 0; i < inputTokens.length; i++) { + params[inputTokens[i]] = this.nextPageTokens[i]; + } + return service.makeRequest(this.request.operation, params, callback); + } + }, + + /** + * @return [Boolean] whether more pages of data can be returned by further + * requests + * @api experimental + * @since v1.4.0 + */ + hasNextPage: function hasNextPage() { + this.cacheNextPageTokens(); + if (this.nextPageTokens) return true; + if (this.nextPageTokens === undefined) return undefined; + else return false; + }, + + /** + * @api private + */ + cacheNextPageTokens: function cacheNextPageTokens() { + if (this.hasOwnProperty('nextPageTokens')) return this.nextPageTokens; + this.nextPageTokens = undefined; + + var config = this.request.service.paginationConfig(this.request.operation); + if (!config) return this.nextPageTokens; + + this.nextPageTokens = null; + if (config.moreResults) { + if (!AWS.util.jamespath.find(config.moreResults, this.data)) { + return this.nextPageTokens; + } + } + + var exprs = config.outputToken; + if (typeof exprs === 'string') exprs = [exprs]; + AWS.util.arrayEach.call(this, exprs, function (expr) { + var output = AWS.util.jamespath.find(expr, this.data); + if (output) { + this.nextPageTokens = this.nextPageTokens || []; + this.nextPageTokens.push(output); + } + }); + + return this.nextPageTokens; + } + +}); diff --git a/node_modules/aws-sdk/lib/sequential_executor.js b/node_modules/aws-sdk/lib/sequential_executor.js new file mode 100644 index 00000000..1c9e5d2c --- /dev/null +++ b/node_modules/aws-sdk/lib/sequential_executor.js @@ -0,0 +1,255 @@ +var AWS = require('./core'); +var domain = AWS.util.nodeRequire('domain'); + +/** + * @!method on(eventName, callback) + * Registers an event listener callback for the event given by `eventName`. + * Parameters passed to the callback function depend on the individual event + * being triggered. See the event documentation for those parameters. + * + * @param eventName [String] the event name to register the listener for + * @param callback [Function] the listener callback function + * @return [AWS.SequentialExecutor] the same object for chaining + */ +AWS.SequentialExecutor = AWS.util.inherit({ + + constructor: function SequentialExecutor() { + this.domain = domain && domain.active; + this._events = {}; + }, + + /** + * @api private + */ + listeners: function listeners(eventName) { + return this._events[eventName] ? this._events[eventName].slice(0) : []; + }, + + on: function on(eventName, listener) { + if (this._events[eventName]) { + this._events[eventName].push(listener); + } else { + this._events[eventName] = [listener]; + } + return this; + }, + + /** + * @api private + */ + onAsync: function onAsync(eventName, listener) { + listener._isAsync = true; + return this.on(eventName, listener); + }, + + removeListener: function removeListener(eventName, listener) { + var listeners = this._events[eventName]; + if (listeners) { + var length = listeners.length; + var position = -1; + for (var i = 0; i < length; ++i) { + if (listeners[i] === listener) { + position = i; + } + } + if (position > -1) { + listeners.splice(position, 1); + } + } + return this; + }, + + removeAllListeners: function removeAllListeners(eventName) { + if (eventName) { + delete this._events[eventName]; + } else { + this._events = {}; + } + return this; + }, + + /** + * @api private + */ + emit: function emit(eventName, eventArgs, doneCallback) { + if (!doneCallback) doneCallback = this.unhandledErrorCallback; + if (domain && this.domain instanceof domain.Domain) + this.domain.enter(); + + var listeners = this.listeners(eventName); + var count = listeners.length; + this.callListeners(listeners, eventArgs, doneCallback); + return count > 0; + }, + + /** + * @api private + */ + callListeners: function callListeners(listeners, args, doneCallback) { + if (listeners.length === 0) { + doneCallback.call(this); + if (domain && this.domain instanceof domain.Domain) + this.domain.exit(); + } else { + var listener = listeners.shift(); + if (listener._isAsync) { + + // asynchronous listener + var self = this; + var callNextListener = function(err) { + if (err) { + doneCallback.call(self, err); + if (domain && self.domain instanceof domain.Domain) + self.domain.exit(); + } else { + self.callListeners(listeners, args, doneCallback); + } + }; + listener.apply(this, args.concat([callNextListener])); + + } else { + + // synchronous listener + try { + listener.apply(this, args); + this.callListeners(listeners, args, doneCallback); + } catch (err) { + if (err._hardError) throw err; + + doneCallback.call(this, err); + if (domain && this.domain instanceof domain.Domain) + this.domain.exit(); + } + + } + } + }, + + /** + * Adds or copies a set of listeners from another list of + * listeners or SequentialExecutor object. + * + * @param listeners [map>, AWS.SequentialExecutor] + * a list of events and callbacks, or an event emitter object + * containing listeners to add to this emitter object. + * @return [AWS.SequentialExecutor] the emitter object, for chaining. + * @example Adding listeners from a map of listeners + * emitter.addListeners({ + * event1: [function() { ... }, function() { ... }], + * event2: [function() { ... }] + * }); + * emitter.emit('event1'); // emitter has event1 + * emitter.emit('event2'); // emitter has event2 + * @example Adding listeners from another emitter object + * var emitter1 = new AWS.SequentialExecutor(); + * emitter1.on('event1', function() { ... }); + * emitter1.on('event2', function() { ... }); + * var emitter2 = new AWS.SequentialExecutor(); + * emitter2.addListeners(emitter1); + * emitter2.emit('event1'); // emitter2 has event1 + * emitter2.emit('event2'); // emitter2 has event2 + */ + addListeners: function addListeners(listeners) { + var self = this; + + // extract listeners if parameter is an SequentialExecutor object + if (listeners._events) listeners = listeners._events; + + AWS.util.each(listeners, function(event, callbacks) { + if (typeof callbacks === 'function') callbacks = [callbacks]; + AWS.util.arrayEach(callbacks, function(callback) { + self.on(event, callback); + }); + }); + + return self; + }, + + /** + * Registers an event with {on} and saves the callback handle function + * as a property on the emitter object using a given `name`. + * + * @param name [String] the property name to set on this object containing + * the callback function handle so that the listener can be removed in + * the future. + * @param (see on) + * @return (see on) + * @example Adding a named listener DATA_CALLBACK + * var listener = function() { doSomething(); }; + * emitter.addNamedListener('DATA_CALLBACK', 'data', listener); + * + * // the following prints: true + * console.log(emitter.DATA_CALLBACK == listener); + */ + addNamedListener: function addNamedListener(name, eventName, callback) { + this[name] = callback; + this.addListener(eventName, callback); + return this; + }, + + /** + * @api private + */ + addNamedAsyncListener: function addNamedAsyncListener(name, eventName, callback) { + callback._isAsync = true; + return this.addNamedListener(name, eventName, callback); + }, + + /** + * Helper method to add a set of named listeners using + * {addNamedListener}. The callback contains a parameter + * with a handle to the `addNamedListener` method. + * + * @callback callback function(add) + * The callback function is called immediately in order to provide + * the `add` function to the block. This simplifies the addition of + * a large group of named listeners. + * @param add [Function] the {addNamedListener} function to call + * when registering listeners. + * @example Adding a set of named listeners + * emitter.addNamedListeners(function(add) { + * add('DATA_CALLBACK', 'data', function() { ... }); + * add('OTHER', 'otherEvent', function() { ... }); + * add('LAST', 'lastEvent', function() { ... }); + * }); + * + * // these properties are now set: + * emitter.DATA_CALLBACK; + * emitter.OTHER; + * emitter.LAST; + */ + addNamedListeners: function addNamedListeners(callback) { + var self = this; + callback( + function() { + self.addNamedListener.apply(self, arguments); + }, + function() { + self.addNamedAsyncListener.apply(self, arguments); + } + ); + return this; + }, + + /** + * @api private + */ + unhandledErrorCallback: function unhandledErrorCallback(err) { + if (err) { + if (domain && this.domain instanceof domain.Domain) { + err.domainEmitter = this; + err.domain = this.domain; + err.domainThrown = false; + this.domain.emit('error', err); + } else { + throw err; + } + } + } +}); + +/** + * {on} is the prefered method. + * @api private + */ +AWS.SequentialExecutor.prototype.addListener = AWS.SequentialExecutor.prototype.on; diff --git a/node_modules/aws-sdk/lib/service.js b/node_modules/aws-sdk/lib/service.js new file mode 100644 index 00000000..651bae26 --- /dev/null +++ b/node_modules/aws-sdk/lib/service.js @@ -0,0 +1,519 @@ +var AWS = require('./core'); +var Translator = require('aws-sdk-apis/lib/translator'); +var inherit = AWS.util.inherit; + +/** + * The service class representing an AWS service. + * + * @abstract + * + * @!attribute apiVersions + * @return [Array] the list of API versions supported by this service. + * @readonly + */ +AWS.Service = inherit({ + /** + * Create a new service object with a configuration object + * + * @param config [map] a map of configuration options + */ + constructor: function Service(config) { + if (!this.loadServiceClass) { + throw AWS.util.error(new Error(), + 'Service must be constructed with `new\' operator'); + } + var ServiceClass = this.loadServiceClass(config || {}); + if (ServiceClass) return new ServiceClass(config); + this.initialize(config); + }, + + /** + * @api private + */ + initialize: function initialize(config) { + AWS.util.hideProperties(this, ['client']); + this.client = this; // backward compatibility with client property + this.config = new AWS.Config(AWS.config); + if (config) this.config.update(config, true); + this.setEndpoint(this.config.endpoint); + }, + + /** + * @api private + */ + loadServiceClass: function loadServiceClass(serviceConfig) { + var config = serviceConfig; + if (!AWS.util.isEmpty(this.api)) { + return null; + } else if (config.apiConfig) { + return AWS.Service.defineServiceApi(this.constructor, config.apiConfig); + } else if (!this.constructor.services) { + return null; + } else { + config = new AWS.Config(AWS.config); + config.update(serviceConfig, true); + var version = config.apiVersions[this.constructor.serviceIdentifier]; + version = version || config.apiVersion; + return this.getLatestServiceClass(version); + } + }, + + /** + * @api private + */ + getLatestServiceClass: function getLatestServiceClass(version) { + version = this.getLatestServiceVersion(version); + if (this.constructor.services[version] === null) { + AWS.Service.defineServiceApi(this.constructor, version); + } + + return this.constructor.services[version]; + }, + + /** + * @api private + */ + getLatestServiceVersion: function getLatestServiceVersion(version) { + if (!this.constructor.services || this.constructor.services.length === 0) { + throw new Error('No services defined on ' + + this.constructor.serviceIdentifier); + } + + if (!version) { + version = 'latest'; + } else if (AWS.util.isType(version, Date)) { + version = AWS.util.date.iso8601(version).split('T')[0]; + } + + if (Object.hasOwnProperty(this.constructor.services, version)) { + return version; + } + + var keys = Object.keys(this.constructor.services).sort(); + var selectedVersion = null; + for (var i = keys.length - 1; i >= 0; i--) { + // versions that end in "*" are not available on disk and can be + // skipped, so do not choose these as selectedVersions + if (keys[i][keys[i].length - 1] !== '*') { + selectedVersion = keys[i]; + } + if (keys[i].substr(0, 10) <= version) { + return selectedVersion; + } + } + + throw new Error('Could not find ' + this.constructor.serviceIdentifier + + ' API to satisfy version constraint `' + version + '\''); + }, + + /** + * @api private + */ + api: {}, + + /** + * @api private + */ + defaultRetryCount: 3, + + /** + * Calls an operation on a service with the given input parameters. + * + * @param operation [String] the name of the operation to call on the service. + * @param params [map] a map of input options for the operation + * @callback callback function(err, data) + * If a callback is supplied, it is called when a response is returned + * from the service. + * @param err [Error] the error object returned from the request. + * Set to `null` if the request is successful. + * @param data [Object] the de-serialized data returned from + * the request. Set to `null` if a request error occurs. + */ + makeRequest: function makeRequest(operation, params, callback) { + if (typeof params === 'function') { + callback = params; + params = null; + } + + params = params || {}; + if (this.config.params) { // copy only toplevel bound params + var rules = this.api.operations[operation]; + if (rules) { + params = AWS.util.copy(params); + AWS.util.each(this.config.params, function(key, value) { + if (rules.input.members[key]) { + if (params[key] === undefined || params[key] === null) { + params[key] = value; + } + } + }); + } + } + + var request = new AWS.Request(this, operation, params); + this.addAllRequestListeners(request); + + if (callback) request.send(callback); + return request; + }, + + /** + * Calls an operation on a service with the given input parameters, without + * any authentication data. This method is useful for "public" API operations. + * + * @param operation [String] the name of the operation to call on the service. + * @param params [map] a map of input options for the operation + * @callback callback function(err, data) + * If a callback is supplied, it is called when a response is returned + * from the service. + * @param err [Error] the error object returned from the request. + * Set to `null` if the request is successful. + * @param data [Object] the de-serialized data returned from + * the request. Set to `null` if a request error occurs. + */ + makeUnauthenticatedRequest: function makeUnauthenticatedRequest(operation, params, callback) { + if (typeof params === 'function') { + callback = params; + params = {}; + } + + var request = this.makeRequest(operation, params); + request.removeListener('validate', AWS.EventListeners.Core.VALIDATE_CREDENTIALS); + request.removeListener('sign', AWS.EventListeners.Core.SIGN); + if (this.api.format === 'query') { // query services turn into GET requests + request.addListener('build', function convertToGET(request) { + request.httpRequest.method = 'GET'; + request.httpRequest.path = '/?' + request.httpRequest.body; + request.httpRequest.body = ''; + + // don't need these headers on a GET request + delete request.httpRequest.headers['Content-Length']; + delete request.httpRequest.headers['Content-Type']; + }); + } + + return callback ? request.send(callback) : request; + }, + + /** + * Waits for a given state + * + * @param state [String] the state on the service to wait for + * @param params [map] a map of parameters to pass with each request + * @callback callback function(err, data) + * If a callback is supplied, it is called when a response is returned + * from the service. + * @param err [Error] the error object returned from the request. + * Set to `null` if the request is successful. + * @param data [Object] the de-serialized data returned from + * the request. Set to `null` if a request error occurs. + */ + waitFor: function waitFor(state, params, callback) { + var waiter = new AWS.ResourceWaiter(this, state); + return waiter.wait(params, callback); + }, + + /** + * @api private + */ + addAllRequestListeners: function addAllRequestListeners(request) { + var list = [AWS.events, AWS.EventListeners.Core, this.serviceInterface(), + AWS.EventListeners.CorePost]; + for (var i = 0; i < list.length; i++) { + if (list[i]) request.addListeners(list[i]); + } + + // disable parameter validation + if (!this.config.paramValidation) { + request.removeListener('validate', + AWS.EventListeners.Core.VALIDATE_PARAMETERS); + } + + if (this.config.logger) { // add logging events + request.addListeners(AWS.EventListeners.Logger); + } + + this.setupRequestListeners(request); + }, + + /** + * Override this method to setup any custom request listeners for each + * new request to the service. + * + * @abstract + */ + setupRequestListeners: function setupRequestListeners() { + }, + + /** + * Gets the signer class for a given request + * @api private + */ + getSignerClass: function getSignerClass() { + var version = this.api.signatureVersion; + if (this.config.signatureVersion) version = this.config.signatureVersion; + else if (this.isRegionV4()) version = 'v4'; + return AWS.Signers.RequestSigner.getVersion(version); + }, + + /** + * @api private + */ + serviceInterface: function serviceInterface() { + switch (this.api.format) { + case 'query': return AWS.EventListeners.Query; + case 'json': return AWS.EventListeners.Json; + case 'rest-json': return AWS.EventListeners.RestJson; + case 'rest-xml': return AWS.EventListeners.RestXml; + } + if (this.api.format) { + throw new Error('Invalid service `format\' ' + + this.api.format + ' in API config'); + } + }, + + /** + * @api private + */ + successfulResponse: function successfulResponse(resp) { + return resp.httpResponse.statusCode < 300; + }, + + /** + * How many times a failed request should be retried before giving up. + * the defaultRetryCount can be overriden by service classes. + * + * @api private + */ + numRetries: function numRetries() { + if (this.config.maxRetries !== undefined) { + return this.config.maxRetries; + } else { + return this.defaultRetryCount; + } + }, + + /** + * @api private + */ + retryDelays: function retryDelays() { + var retryCount = this.numRetries(); + var delays = []; + for (var i = 0; i < retryCount; ++i) { + delays[i] = Math.pow(2, i) * 30; + } + return delays; + }, + + /** + * @api private + */ + retryableError: function retryableError(error) { + if (this.networkingError(error)) return true; + if (this.expiredCredentialsError(error)) return true; + if (this.throttledError(error)) return true; + if (error.statusCode >= 500) return true; + return false; + }, + + /** + * @api private + */ + networkingError: function networkingError(error) { + return error.code === 'NetworkingError'; + }, + + /** + * @api private + */ + expiredCredentialsError: function expiredCredentialsError(error) { + // TODO : this only handles *one* of the expired credential codes + return (error.code === 'ExpiredTokenException'); + }, + + /** + * @api private + */ + throttledError: function throttledError(error) { + // this logic varies between services + return (error.code === 'ProvisionedThroughputExceededException'); + }, + + /** + * @api private + */ + setEndpoint: function setEndpoint(endpoint) { + if (endpoint) { + this.endpoint = new AWS.Endpoint(endpoint, this.config); + } else if (this.hasGlobalEndpoint()) { + this.endpoint = new AWS.Endpoint(this.api.globalEndpoint, this.config); + } else { + var host = this.api.endpointPrefix + '.' + this.config.region + + this.endpointSuffix(); + this.endpoint = new AWS.Endpoint(host, this.config); + } + }, + + /** + * @api private + */ + hasGlobalEndpoint: function hasGlobalEndpoint() { + if (this.isRegionV4()) return false; + return this.api.globalEndpoint; + }, + + /** + * @api private + */ + endpointSuffix: function endpointSuffix() { + var suffix = '.amazonaws.com'; + if (this.isRegionCN()) return suffix + '.cn'; + else return suffix; + }, + + /** + * @api private + */ + isRegionCN: function isRegionCN() { + if (!this.config.region) return false; + return this.config.region.match(/^cn-/) ? true : false; + }, + + /** + * @api private + */ + isRegionV4: function isRegionV4() { + return this.isRegionCN(); + }, + + /** + * @api private + */ + paginationConfig: function paginationConfig(operation, throwException) { + function fail(name) { + if (throwException) { + var e = new Error(); + throw AWS.util.error(e, 'No pagination configuration for ' + name); + } + return null; + } + + if (!this.api.pagination) return fail('service'); + if (!this.api.pagination[operation]) return fail(operation); + return this.api.pagination[operation]; + } +}); + +AWS.util.update(AWS.Service, { + + /** + * Adds one method for each operation described in the api configuration + * + * @api private + */ + defineMethods: function defineMethods(svc) { + AWS.util.each(svc.prototype.api.operations, function iterator(method) { + if (svc.prototype[method]) return; + svc.prototype[method] = function (params, callback) { + return this.makeRequest(method, params, callback); + }; + }); + }, + + /** + * Defines a new Service class using a service identifier and list of versions + * including an optional set of features (functions) to apply to the class + * prototype. + * + * @param serviceIdentifier [String] the identifier for the service + * @param versions [Array] a list of versions that work with this + * service + * @param features [Object] an object to attach to the prototype + * @return [Class] the service class defined by this function. + */ + defineService: function defineService(serviceIdentifier, versions, features) { + if (!Array.isArray(versions)) { + features = versions; + versions = []; + } + + var svc = inherit(AWS.Service, features || {}); + + if (typeof serviceIdentifier === 'string') { + AWS.Service.addVersions(svc, versions); + + var identifier = svc.serviceIdentifier || serviceIdentifier; + svc.serviceIdentifier = identifier; + } else { // defineService called with an API + svc.prototype.api = serviceIdentifier; + AWS.Service.defineMethods(svc); + } + + return svc; + }, + + /** + * @api private + */ + addVersions: function addVersions(svc, versions) { + if (!Array.isArray(versions)) versions = [versions]; + + svc.services = svc.services || {}; + for (var i = 0; i < versions.length; i++) { + if (svc.services[versions[i]] === undefined) { + svc.services[versions[i]] = null; + } + } + + svc.apiVersions = Object.keys(svc.services).sort(); + }, + + /** + * @api private + */ + defineServiceApi: function defineServiceApi(superclass, version, apiConfig) { + var svc = inherit(superclass, { + serviceIdentifier: superclass.serviceIdentifier + }); + + function setApi(api) { + if (api.type && api.api_version) { + svc.prototype.api = new Translator(api, {documentation: false}); + } else { + svc.prototype.api = api; + } + } + + if (typeof version === 'string') { + if (apiConfig) { + setApi(apiConfig); + } else { + var fs = AWS.util.nodeRequire('fs'); + var path = AWS.util.nodeRequire('path'); + var apis = AWS.util.nodeRequire('aws-sdk-apis'); + + try { + var name = null; + if (apis) name = apis.serviceName(superclass.serviceIdentifier); + var file = (name || superclass.serviceIdentifier) + '-' + version; + var fullPath = path.dirname(require.resolve('aws-sdk-apis')) + + '/apis/' + file + '.json'; + setApi(JSON.parse(fs.readFileSync(fullPath))); + } catch (err) { + throw AWS.util.error(err, { + message: 'Could not find API configuration ' + file + }); + } + } + if (!superclass.services.hasOwnProperty(version)) { + superclass.apiVersions = superclass.apiVersions.concat(version).sort(); + } + superclass.services[version] = svc; + } else { + setApi(version); + } + + AWS.Service.defineMethods(svc); + return svc; + } +}); diff --git a/node_modules/aws-sdk/lib/service_interface/json.js b/node_modules/aws-sdk/lib/service_interface/json.js new file mode 100644 index 00000000..a730d7c1 --- /dev/null +++ b/node_modules/aws-sdk/lib/service_interface/json.js @@ -0,0 +1,50 @@ +var AWS = require('../core'); +require('../json/builder'); + +/** + * @api private + */ +AWS.ServiceInterface.Json = { + buildRequest: function buildRequest(req) { + var httpRequest = req.httpRequest; + var api = req.service.api; + var target = api.targetPrefix + '.' + api.operations[req.operation].name; + var version = api.jsonVersion || '1.0'; + + var rules = api.operations[req.operation].input; + var builder = new AWS.JSON.Builder(rules, api); + + httpRequest.body = builder.build(req.params || {}); + httpRequest.headers['Content-Type'] = 'application/x-amz-json-' + version; + httpRequest.headers['X-Amz-Target'] = target; + }, + + extractError: function extractError(resp) { + var error = {}; + var httpResponse = resp.httpResponse; + + if (httpResponse.body.length > 0) { + var e = JSON.parse(httpResponse.body.toString()); + if (e.__type || e.code) { + error.code = (e.__type || e.code).split('#').pop(); + } else { + error.code = 'UnknownError'; + } + if (error.code === 'RequestEntityTooLarge') { + error.message = 'Request body must be less than 1 MB'; + } else { + error.message = (e.message || e.Message || null); + } + } else { + error.code = httpResponse.statusCode; + error.message = null; + } + + resp.error = AWS.util.error(new Error(), error); + }, + + extractData: function extractData(resp) { + resp.data = JSON.parse(resp.httpResponse.body.toString() || '{}'); + } + +}; diff --git a/node_modules/aws-sdk/lib/service_interface/query.js b/node_modules/aws-sdk/lib/service_interface/query.js new file mode 100644 index 00000000..d8ce8895 --- /dev/null +++ b/node_modules/aws-sdk/lib/service_interface/query.js @@ -0,0 +1,155 @@ +var AWS = require('../core'); +var inherit = AWS.util.inherit; + +/** + * @api private + */ +AWS.ServiceInterface.Query = { + buildRequest: function buildRequest(req) { + var operation = req.service.api.operations[req.operation]; + var httpRequest = req.httpRequest; + httpRequest.headers['Content-Type'] = + 'application/x-www-form-urlencoded; charset=utf-8'; + httpRequest.params = { + Version: req.service.api.apiVersion, + Action: operation.name + }; + + // convert the request parameters into a list of query params, + // e.g. Deeply.NestedParam.0.Name=value + var rules = operation.input; + if (rules) rules = rules.members; + var builder = new AWS.QueryParamSerializer(rules, req.service.api); + builder.serialize(req.params, function(name, value) { + httpRequest.params[name] = value; + }); + httpRequest.body = AWS.util.queryParamsToString(httpRequest.params); + }, + + extractError: function extractError(resp) { + var data, body = resp.httpResponse.body.toString(); + if (body.match(' 0 ? path + '?' + parts.join('&') : path); + } else { + uri = path; + } + + req.httpRequest.path = uri; + }, + + escapePathParam: function escapePathParam(value) { + return AWS.util.uriEscape(String(value)); + }, + + escapeQuerystringParam: function escapeQuerystringParam(value) { + return AWS.util.uriEscape(String(value)); + }, + + populateHeaders: function populateHeaders(req) { + var operation = req.service.api.operations[req.operation]; + var rules = (operation.input || {}).members || {}; + + AWS.util.each.call(this, rules, function (name, rule) { + if (rule.location === 'header' && req.params[name]) { + if (rule.type === 'map') { + AWS.util.each(req.params[name], function (key, value) { + req.httpRequest.headers[rule.name + key] = value; + }); + } else { + var value = req.params[name]; + if (rule.type === 'timestamp') { + var timestampFormat = rule.format || req.service.api.timestampFormat; + value = AWS.util.date.format(value, timestampFormat); + } + req.httpRequest.headers[rule.name || name] = value; + } + } + }); + + } +}; diff --git a/node_modules/aws-sdk/lib/service_interface/rest_json.js b/node_modules/aws-sdk/lib/service_interface/rest_json.js new file mode 100644 index 00000000..36caf16f --- /dev/null +++ b/node_modules/aws-sdk/lib/service_interface/rest_json.js @@ -0,0 +1,72 @@ +var AWS = require('../core'); +require('./rest'); +require('./json'); + +/** + * @api private + */ +AWS.ServiceInterface.RestJson = { + buildRequest: function buildRequest(req) { + AWS.ServiceInterface.Rest.buildRequest(req); + AWS.ServiceInterface.RestJson.populateBody(req); + }, + + extractError: function extractError(resp) { + AWS.ServiceInterface.Json.extractError(resp); + }, + + extractData: function extractData(resp) { + AWS.ServiceInterface.Rest.extractData(resp); + + var req = resp.request; + var rules = req.service.api.operations[req.operation].output || {}; + if (rules.payload && rules.members[rules.payload]) { + if (rules.members[rules.payload].streaming) { + resp.data[rules.payload] = resp.httpResponse.body; + } else { + resp.data[rules.payload] = resp.httpResponse.body.toString(); + } + } else { + var data = resp.data; + AWS.ServiceInterface.Json.extractData(resp); + resp.data = AWS.util.merge(data, resp.data); + } + }, + + populateBody: function populateBody(req) { + var input = req.service.api.operations[req.operation].input; + var payload = input.payload; + var params = {}; + + if (typeof payload === 'string') { + + var rules = input.members[payload]; + params = req.params[payload]; + + if (params === undefined) return; + + if (rules.type === 'structure') { + req.httpRequest.body = this.buildJSON(params, input, req.service.api); + } else { + // non-xml paylaod + req.httpRequest.body = params; + } + + } else if (payload) { + + AWS.util.arrayEach(payload, function (param) { + if (req.params[param] !== undefined) { + params[param] = req.params[param]; + } + }); + req.httpRequest.body = this.buildJSON(params, input, req.service.api); + + } + }, + + buildJSON: function buildJSON(params, rules, api) { + var builder = new AWS.JSON.Builder(rules, api); + return builder.build(params); + } + +}; diff --git a/node_modules/aws-sdk/lib/service_interface/rest_xml.js b/node_modules/aws-sdk/lib/service_interface/rest_xml.js new file mode 100644 index 00000000..aca34a9f --- /dev/null +++ b/node_modules/aws-sdk/lib/service_interface/rest_xml.js @@ -0,0 +1,90 @@ +var AWS = require('../core'); +require('../xml/builder'); +require('./rest'); + +/** + * @api private + */ +AWS.ServiceInterface.RestXml = { + buildRequest: function buildRequest(req) { + AWS.ServiceInterface.Rest.buildRequest(req); + AWS.ServiceInterface.RestXml.populateBody(req); + }, + + extractError: function extractError(resp) { + AWS.ServiceInterface.Rest.extractError(resp); + + var data = new AWS.XML.Parser({}).parse(resp.httpResponse.body.toString()); + if (data.Errors) data = data.Errors; + if (data.Error) data = data.Error; + if (data.Code) { + resp.error = AWS.util.error(new Error(), { + code: data.Code, + message: data.Message + }); + } else { + resp.error = AWS.util.error(new Error(), { + code: resp.httpResponse.statusCode, + message: null + }); + } + }, + + extractData: function extractData(resp) { + AWS.ServiceInterface.Rest.extractData(resp); + + var req = resp.request; + var httpResponse = resp.httpResponse; + var operation = req.service.api.operations[req.operation]; + var rules = operation.output.members; + + var output = operation.output; + var payload = output.payload; + + if (payload) { + if (rules[payload].streaming) { + resp.data[payload] = httpResponse.body; + } else { + resp.data[payload] = httpResponse.body.toString(); + } + } else if (httpResponse.body.length > 0) { + var parser = new AWS.XML.Parser(operation.output || {}); + AWS.util.update(resp.data, parser.parse(httpResponse.body.toString())); + } + }, + + populateBody: function populateBody(req) { + var input = req.service.api.operations[req.operation].input; + var payload = input.payload; + var rules = {}; + var builder = null; + var params = req.params; + + if (typeof payload === 'string') { + + rules = input.members[payload]; + params = params[payload]; + + if (params === undefined) return; + + if (rules.type === 'structure') { + builder = new AWS.XML.Builder(payload, rules.members, req.service.api); + req.httpRequest.body = builder.toXML(params); + } else { + // non-xml paylaod + req.httpRequest.body = params; + } + + } else if (payload) { + + AWS.util.arrayEach(payload, function (member) { + rules[member] = input.members[member]; + }); + + builder = new AWS.XML.Builder(input.wrapper, rules, req.service.api); + req.httpRequest.body = builder.toXML(params); + + } + + } +}; diff --git a/node_modules/aws-sdk/lib/services.js b/node_modules/aws-sdk/lib/services.js new file mode 100644 index 00000000..d50e9c6f --- /dev/null +++ b/node_modules/aws-sdk/lib/services.js @@ -0,0 +1,15 @@ +var fs = require('fs'); +var path = require('path'); +var AWS = require('./core'); +var apis = require('aws-sdk-apis'); + +// define services using map +apis.serviceNames.forEach(function(name) { + var identifier = apis.serviceIdentifier(name); + var versions = apis.serviceVersions(identifier); + AWS[name] = AWS.Service.defineService(identifier, versions); + + // load any customizations from lib/services/.js + var svcFile = path.join(__dirname, 'services', identifier + '.js'); + if (fs.existsSync(svcFile)) require(svcFile); +}); diff --git a/node_modules/aws-sdk/lib/services/dynamodb.js b/node_modules/aws-sdk/lib/services/dynamodb.js new file mode 100644 index 00000000..9a20a9b2 --- /dev/null +++ b/node_modules/aws-sdk/lib/services/dynamodb.js @@ -0,0 +1,52 @@ +var AWS = require('../core'); + +AWS.util.update(AWS.DynamoDB.prototype, { + setupRequestListeners: function setupRequestListeners(request) { + if (request.service.config.dynamoDbCrc32) { + request.addListener('extractData', this.checkCrc32); + } + }, + + /** + * @api private + */ + checkCrc32: function checkCrc32(resp) { + if (!resp.request.service.crc32IsValid(resp)) { + resp.error = AWS.util.error(new Error(), { + code: 'CRC32CheckFailed', + message: 'CRC32 integrity check failed', + retryable: true + }); + } + }, + + /** + * @api private + */ + crc32IsValid: function crc32IsValid(resp) { + var crc = resp.httpResponse.headers['x-amz-crc32']; + if (!crc) return true; // no (valid) CRC32 header + return parseInt(crc, 10) === AWS.util.crypto.crc32(resp.httpResponse.body); + }, + + /** + * @api private + */ + defaultRetryCount: 10, + + /** + * @api private + */ + retryDelays: function retryDelays() { + var retryCount = this.numRetries(); + var delays = []; + for (var i = 0; i < retryCount; ++i) { + if (i === 0) { + delays.push(0); + } else { + delays.push(50 * Math.pow(2, i - 1)); + } + } + return delays; + } +}); diff --git a/node_modules/aws-sdk/lib/services/ec2.js b/node_modules/aws-sdk/lib/services/ec2.js new file mode 100644 index 00000000..50fa9d2e --- /dev/null +++ b/node_modules/aws-sdk/lib/services/ec2.js @@ -0,0 +1,30 @@ +var AWS = require('../core'); + +AWS.util.update(AWS.EC2.prototype, { + /** + * @api private + */ + setupRequestListeners: function setupRequestListeners(request) { + request.removeListener('extractError', AWS.EventListeners.Query.EXTRACT_ERROR); + request.addListener('extractError', this.extractError); + }, + + /** + * @api private + */ + extractError: function extractError(resp) { + // EC2 nests the error code and message deeper than other AWS Query services. + var httpResponse = resp.httpResponse; + var data = new AWS.XML.Parser({}).parse(httpResponse.body.toString() || ''); + if (data.Errors) + resp.error = AWS.util.error(new Error(), { + code: data.Errors.Error.Code, + message: data.Errors.Error.Message + }); + else + resp.error = AWS.util.error(new Error(), { + code: httpResponse.statusCode, + message: null + }); + } +}); diff --git a/node_modules/aws-sdk/lib/services/elastictranscoder.js b/node_modules/aws-sdk/lib/services/elastictranscoder.js new file mode 100644 index 00000000..54bc7812 --- /dev/null +++ b/node_modules/aws-sdk/lib/services/elastictranscoder.js @@ -0,0 +1,18 @@ +var AWS = require('../core'); + +AWS.util.update(AWS.ElasticTranscoder.prototype, { + setupRequestListeners: function setupRequestListeners(request) { + request.addListener('extractError', this.extractErrorCode); + }, + + /** + * @api private + */ + extractErrorCode: function extractErrorCode(resp) { + // ETS stores error type in the header + var errorType = resp.httpResponse.headers['x-amzn-errortype']; + if (errorType) { + resp.error.name = resp.error.code = errorType.split(':')[0]; + } + } +}); diff --git a/node_modules/aws-sdk/lib/services/glacier.js b/node_modules/aws-sdk/lib/services/glacier.js new file mode 100644 index 00000000..bb4b1505 --- /dev/null +++ b/node_modules/aws-sdk/lib/services/glacier.js @@ -0,0 +1,96 @@ +var AWS = require('../core'); + +AWS.util.update(AWS.Glacier.prototype, { + setupRequestListeners: function setupRequestListeners(request) { + request.on('validate', this.validateAccountId); + request.on('build', this.addGlacierApiVersion); + request.on('build', this.addTreeHashHeaders); + }, + + validateAccountId: function validateAccountId(request) { + if (request.params.accountId !== undefined) return; + request.params = AWS.util.copy(request.params); + request.params.accountId = '-'; + }, + + addGlacierApiVersion: function addGlacierApiVersion(request) { + var version = request.service.api.apiVersion; + request.httpRequest.headers['x-amz-glacier-version'] = version; + }, + + addTreeHashHeaders: function addTreeHashHeaders(request) { + if (request.params.body === undefined) return; + + var hashes = request.service.computeChecksums(request.params.body); + request.httpRequest.headers['x-amz-content-sha256'] = hashes.linearHash; + + if (!request.httpRequest.headers['x-amz-sha256-tree-hash']) { + request.httpRequest.headers['x-amz-sha256-tree-hash'] = hashes.treeHash; + } + }, + + /** + * @!group Computing Checksums + */ + + /** + * Computes the SHA-256 linear and tree hash checksums for a given + * block of Buffer data. Pass the tree hash of the computed checksums + * as the checksum input to the {completeMultipartUpload} when performing + * a multi-part upload. + * + * @example Calculate checksum of 5.5MB data chunk + * var glacier = new AWS.Glacier(); + * var data = new Buffer(5.5 * 1024 * 1024); + * data.fill('0'); // fill with zeros + * var results = glacier.computeChecksums(data); + * // Result: { linearHash: '68aff0c5a9...', treeHash: '154e26c78f...' } + * @param data [Buffer, String] data to calculate the checksum for + * @return [map] a map containing + * the linearHash and treeHash properties representing hex based digests + * of the respective checksums. + * @see completeMultipartUpload + */ + computeChecksums: function computeChecksums(data) { + if (!AWS.util.Buffer.isBuffer(data)) data = new AWS.util.Buffer(data); + + var mb = 1024 * 1024; + var hashes = []; + var hash = AWS.util.crypto.createHash('sha256'); + + // build leaf nodes in 1mb chunks + for (var i = 0; i < data.length; i += mb) { + var chunk = data.slice(i, Math.min(i + mb, data.length)); + hash.update(chunk); + hashes.push(AWS.util.crypto.sha256(chunk)); + } + + return { + linearHash: hash.digest('hex'), + treeHash: this.buildHashTree(hashes) + }; + }, + + /** + * @api private + */ + buildHashTree: function buildHashTree(hashes) { + // merge leaf nodes + while (hashes.length > 1) { + var tmpHashes = []; + for (var i = 0; i < hashes.length; i += 2) { + if (hashes[i + 1]) { + var tmpHash = new AWS.util.Buffer(64); + tmpHash.write(hashes[i], 0, 32, 'binary'); + tmpHash.write(hashes[i + 1], 32, 32, 'binary'); + tmpHashes.push(AWS.util.crypto.sha256(tmpHash)); + } else { + tmpHashes.push(hashes[i]); + } + } + hashes = tmpHashes; + } + + return AWS.util.crypto.toHex(hashes[0]); + } +}); diff --git a/node_modules/aws-sdk/lib/services/route53.js b/node_modules/aws-sdk/lib/services/route53.js new file mode 100644 index 00000000..6beb5ea9 --- /dev/null +++ b/node_modules/aws-sdk/lib/services/route53.js @@ -0,0 +1,30 @@ +var AWS = require('../core'); + +AWS.util.update(AWS.Route53.prototype, { + /** + * @api private + */ + setupRequestListeners: function setupRequestListeners(request) { + request.on('build', this.sanitizeUrl); + }, + + /** + * @api private + */ + sanitizeUrl: function sanitizeUrl(request) { + var path = request.httpRequest.path; + request.httpRequest.path = path.replace(/\/%2F\w+%2F/, '/'); + }, + + /** + * @api private + */ + setEndpoint: function setEndpoint(endpoint) { + if (endpoint) { + AWS.Service.prototype.setEndpoint(endpoint); + } else { + var opts = {sslEnabled: true}; // SSL is always enabled for Route53 + this.endpoint = new AWS.Endpoint(this.api.globalEndpoint, opts); + } + } +}); diff --git a/node_modules/aws-sdk/lib/services/s3.js b/node_modules/aws-sdk/lib/services/s3.js new file mode 100644 index 00000000..61bea879 --- /dev/null +++ b/node_modules/aws-sdk/lib/services/s3.js @@ -0,0 +1,396 @@ +var AWS = require('../core'); + +AWS.util.update(AWS.S3.prototype, { + /** + * @api private + */ + initialize: function initialize(options) { + AWS.Service.prototype.initialize.call(this, options); + this.setEndpoint((options || {}).endpoint, options); + }, + + /** + * @api private + */ + setupRequestListeners: function setupRequestListeners(request) { + request.addListener('build', this.addContentType); + request.addListener('build', this.populateURI); + request.addListener('build', this.computeContentMd5); + request.addListener('build', this.computeSha256); + request.removeListener('validate', + AWS.EventListeners.Core.VALIDATE_REGION); + request.addListener('extractError', this.extractError); + request.addListener('extractData', this.extractData); + }, + + /** + * S3 prefers dns-compatible bucket names to be moved from the uri path + * to the hostname as a sub-domain. This is not possible, even for dns-compat + * buckets when using SSL and the bucket name contains a dot ('.'). The + * ssl wildcard certificate is only 1-level deep. + * + * @api private + */ + populateURI: function populateURI(req) { + var httpRequest = req.httpRequest; + var b = req.params.Bucket; + + if (b) { + if (!req.service.pathStyleBucketName(b)) { + httpRequest.endpoint.host = httpRequest.endpoint.hostname = b + '.' + + httpRequest.endpoint.hostname; + + httpRequest.virtualHostedBucket = b; // needed for signing the request + httpRequest.path = httpRequest.path.replace(new RegExp('^/' + b), ''); + if (httpRequest.path[0] !== '/') { + httpRequest.path = '/' + httpRequest.path; + } + } + } + }, + + /** + * Adds a default content type if none is supplied. + * + * @api private + */ + addContentType: function addContentType(req) { + var httpRequest = req.httpRequest; + if (!httpRequest.headers['Content-Type']) { // always have a Content-Type + httpRequest.headers['Content-Type'] = 'application/octet-stream'; + } + if (AWS.util.isBrowser() && navigator.userAgent.match(/Firefox/)) { + if (!httpRequest.headers['Content-Type'].match(/;/)) { + var charset = '; charset=UTF-8'; + httpRequest.headers['Content-Type'] += charset; + } + } + }, + + /** + * @api private + */ + computableChecksumOperations: { + putBucketCors: true, + putBucketLifecycle: true, + putBucketTagging: true, + deleteObjects: true + }, + + /** + * Checks whether checksums should be computed for the request. + * If the request requires checksums to be computed, this will always + * return true, otherwise it depends on whether {AWS.Config.computeChecksums} + * is set. + * + * @param req [AWS.Request] the request to check against + * @return [Boolean] whether to compute checksums for a request. + * @api private + */ + willComputeChecksums: function willComputeChecksums(req) { + if (this.computableChecksumOperations[req.operation]) return true; + if (!this.config.computeChecksums) return false; + + // TODO: compute checksums for Stream objects + if (!AWS.util.Buffer.isBuffer(req.httpRequest.body) && + typeof req.httpRequest.body !== 'string') { + return false; + } + + var rules = req.service.api.operations[req.operation].input.members; + + // V4 signer uses SHA256 signatures so only compute MD5 if it is required + if (req.service.getSignerClass(req) === AWS.Signers.V4) { + if (rules.ContentMD5 && !rules.ContentMD5.required) return false; + } + + if (rules.ContentMD5 && !req.params.ContentMD5) return true; + }, + + /** + * A listener that computes the Content-MD5 and sets it in the header. + * @see AWS.S3.willComputeChecksums + * @api private + */ + computeContentMd5: function computeContentMd5(req) { + if (req.service.willComputeChecksums(req)) { + var md5 = AWS.util.crypto.md5(req.httpRequest.body, 'base64'); + req.httpRequest.headers['Content-MD5'] = md5; + } + }, + + /** + * @api private + */ + computeSha256: function computeSha256(req) { + if (req.service.getSignerClass(req) === AWS.Signers.V4) { + req.httpRequest.headers['X-Amz-Content-Sha256'] = + AWS.util.crypto.sha256(req.httpRequest.body || '', 'hex'); + } + }, + + /** + * Returns true if the bucket name should be left in the URI path for + * a request to S3. This function takes into account the current + * endpoint protocol (e.g. http or https). + * + * @api private + */ + pathStyleBucketName: function pathStyleBucketName(bucketName) { + // user can force path style requests via the configuration + if (this.config.s3ForcePathStyle) return true; + + if (this.dnsCompatibleBucketName(bucketName)) { + return (this.config.sslEnabled && bucketName.match(/\./)) ? true : false; + } else { + return true; // not dns compatible names must always use path style + } + }, + + /** + * Returns true if the bucket name is DNS compatible. Buckets created + * outside of the classic region MUST be DNS compatible. + * + * @api private + */ + dnsCompatibleBucketName: function dnsCompatibleBucketName(bucketName) { + var b = bucketName; + var domain = new RegExp(/^[a-z0-9][a-z0-9\.\-]{1,61}[a-z0-9]$/); + var ipAddress = new RegExp(/(\d+\.){3}\d+/); + var dots = new RegExp(/\.\./); + return (b.match(domain) && !b.match(ipAddress) && !b.match(dots)) ? true : false; + }, + + /** + * S3 requires that path params not escape forward slashes. + * + * @api private + */ + escapePathParam: function escapePathParam(value) { + return AWS.util.uriEscapePath(String(value)); + }, + + /** + * @return [Boolean] whether response contains an error + * @api private + */ + successfulResponse: function successfulResponse(resp) { + var req = resp.request; + var httpResponse = resp.httpResponse; + if (req.operation === 'completeMultipartUpload' && + httpResponse.body.toString().match('')) + return false; + else + return httpResponse.statusCode < 300; + }, + + /** + * @return [Boolean] whether the error can be retried + * @api private + */ + retryableError: function retryableError(error, request) { + if (request.operation === 'completeMultipartUpload' && + error.statusCode === 200) { + return true; + } else { + var _super = AWS.Service.prototype.retryableError; + return _super.call(this, error, request); + } + }, + + /** + * Provides a specialized parser for getBucketLocation -- all other + * operations are parsed by the super class. + * + * @api private + */ + extractData: function extractData(resp) { + var req = resp.request; + if (req.operation === 'getBucketLocation') { + var match = resp.httpResponse.body.toString().match(/>(.+)<\/Location/); + if (match) { + delete resp.data['_']; + resp.data.LocationConstraint = match[1]; + } + } + }, + + /** + * Extracts an error object from the http response. + * + * @api private + */ + extractError: function extractError(resp) { + var codes = { + 304: 'NotModified', + 403: 'Forbidden', + 400: 'BadRequest', + 404: 'NotFound' + }; + + var code = resp.httpResponse.statusCode; + var body = resp.httpResponse.body; + if (codes[code] && body.length === 0) { + resp.error = AWS.util.error(new Error(), { + code: codes[resp.httpResponse.statusCode], + message: null + }); + } else { + var data = new AWS.XML.Parser({}).parse(body.toString()); + resp.error = AWS.util.error(new Error(), { + code: data.Code || code, + message: data.Message || null + }); + } + }, + + /** + * @api private + */ + setEndpoint: function setEndpoint(endpoint) { + if (endpoint) { + this.endpoint = new AWS.Endpoint(endpoint, this.config); + } else if (this.config.region && this.config.region !== 'us-east-1') { + var sep = '-'; + if (this.isRegionV4()) sep = '.'; + var hostname = 's3' + sep + this.config.region + this.endpointSuffix(); + this.endpoint = new AWS.Endpoint(hostname); + } else { + this.endpoint = new AWS.Endpoint(this.api.globalEndpoint, this.config); + } + }, + + /** + * Get a pre-signed URL for a given operation name. + * + * @note You must ensure that you have static or previously resolved + * credentials if you call this method synchronously (with no callback), + * otherwise it may not properly sign the request. If you cannot guarantee + * this (you are using an asynchronous credential provider, i.e., EC2 + * IAM roles), you should always call this method with an asynchronous + * callback. + * @param operation [String] the name of the operation to call + * @param params [map] parameters to pass to the operation. See the given + * operation for the expected operation parameters. In addition, you can + * also pass the "Expires" parameter to inform S3 how long the URL should + * work for. + * @option params Expires [Integer] (900) the number of seconds to expire + * the pre-signed URL operation in. Defaults to 15 minutes. + * @param callback [Function] if a callback is provided, this function will + * pass the URL as the second parameter (after the error parameter) to + * the callback function. + * @return [String] if called synchronously (with no callback), returns the + * signed URL. + * @return [null] nothing is returned if a callback is provided. + * @example Pre-signing a getObject operation (synchronously) + * var params = {Bucket: 'bucket', Key: 'key'}; + * var url = s3.getSignedUrl('getObject', params); + * console.log('The URL is', url); + * @example Pre-signing a putObject (asynchronously) + * var params = {Bucket: 'bucket', Key: 'key'}; + * s3.getSignedUrl('putObject', params, function (err, url) { + * console.log('The URL is', url); + * }); + * @example Pre-signing a putObject operation with a specific payload + * var params = {Bucket: 'bucket', Key: 'key', Body: 'body'}; + * var url = s3.getSignedUrl('putObject', params); + * console.log('The URL is', url); + * @example Passing in a 1-minute expiry time for a pre-signed URL + * var params = {Bucket: 'bucket', Key: 'key', Expires: 60}; + * var url = s3.getSignedUrl('getObject', params); + * console.log('The URL is', url); // expires in 60 seconds + */ + getSignedUrl: function getSignedUrl(operation, params, callback) { + params = AWS.util.copy(params || {}); + var expires = params.Expires || 900; + delete params.Expires; // we can't validate this + var request = this.makeRequest(operation, params); + + var expiresHeader = 'presigned-expires'; + + function signedUrlBuilder() { + delete request.httpRequest.headers['User-Agent']; + delete request.httpRequest.headers['X-Amz-User-Agent']; + + if (request.service.getSignerClass() === AWS.Signers.V4) { + if (expires > 604800) { // one week expiry is invalid + var message = 'getSignedUrl() does not support expiry time greater ' + + 'than a week with SigV4 signing.'; + throw AWS.util.error(new Error(), { + code: 'InvalidExpiryTime', message: message, retryable: false + }); + } + request.httpRequest.headers[expiresHeader] = expires; + } else { + request.httpRequest.headers[expiresHeader] = parseInt( + AWS.util.date.unixTimestamp() + expires, 10).toString(); + } + } + + function signedUrlSigner() { + var queryParams = {}; + + AWS.util.each(request.httpRequest.headers, function (key, value) { + if (key === expiresHeader) key = 'Expires'; + queryParams[key] = value; + }); + delete request.httpRequest.headers[expiresHeader]; + + var auth = queryParams['Authorization'].split(' '); + if (auth[0] === 'AWS') { + auth = auth[1].split(':'); + queryParams['AWSAccessKeyId'] = auth[0]; + queryParams['Signature'] = auth[1]; + } else if (auth[0] === 'AWS4-HMAC-SHA256') { // SigV4 signing + auth.shift(); + var rest = auth.join(' '); + var signature = rest.match(/Signature=(.*?)(?:,|\s|\r?\n|$)/)[1]; + queryParams['X-Amz-Signature'] = signature; + delete queryParams['Expires']; + } + delete queryParams['Authorization']; + delete queryParams['Host']; + + // build URL + var endpoint = request.httpRequest.endpoint; + var parsedUrl = AWS.util.urlParse(request.httpRequest.path); + var querystring = AWS.util.queryParamsToString(queryParams); + endpoint.pathname = parsedUrl.pathname; + endpoint.search = !parsedUrl.search ? querystring : + parsedUrl.search + '&' + querystring; + } + + request.on('build', signedUrlBuilder); + request.on('sign', signedUrlSigner); + request.removeListener('build', this.addContentType); + request.removeAllListeners('afterBuild'); + if (!params.Body) { // no Content-MD5/SHA-256 if body is not provided + request.removeListener('build', this.computeContentMd5); + request.removeListener('build', this.computeSha256); + } + + if (callback) { + request.build(function() { + if (request.response.error) callback(request.response.error, null); + else callback(null, AWS.util.urlFormat(request.httpRequest.endpoint)); + }); + } else { + request.build(); + return AWS.util.urlFormat(request.httpRequest.endpoint); + } + }, + + createBucket: function createBucket(params, callback) { + // When creating a bucket *outside* the classic region, the location + // constraint must be set for the bucket and it must match the endpoint. + // This chunk of code will set the location constraint param based + // on the region (when possible), but it will not override a passed-in + // location constraint. + if (!params) params = {}; + var hostname = this.endpoint.hostname; + if (hostname !== this.api.globalEndpoint && !params.CreateBucketConfiguration) { + params.CreateBucketConfiguration = { LocationConstraint: this.config.region }; + } + return this.makeRequest('createBucket', params, callback); + } +}); diff --git a/node_modules/aws-sdk/lib/services/simpledb.js b/node_modules/aws-sdk/lib/services/simpledb.js new file mode 100644 index 00000000..d0a5b1b7 --- /dev/null +++ b/node_modules/aws-sdk/lib/services/simpledb.js @@ -0,0 +1,15 @@ +var AWS = require('../core'); + +AWS.util.update(AWS.SimpleDB.prototype, { + /** + * @api private + */ + setEndpoint: function setEndpoint(endpoint) { + if (this.config.region === 'us-east-1') { + var prefix = this.api.endpointPrefix; + this.endpoint = new AWS.Endpoint(prefix + '.amazonaws.com'); + } else { + AWS.Service.prototype.setEndpoint.call(this, endpoint); + } + } +}); diff --git a/node_modules/aws-sdk/lib/services/sqs.js b/node_modules/aws-sdk/lib/services/sqs.js new file mode 100644 index 00000000..e5f52a8c --- /dev/null +++ b/node_modules/aws-sdk/lib/services/sqs.js @@ -0,0 +1,107 @@ +var AWS = require('../core'); + +AWS.util.update(AWS.SQS.prototype, { + setupRequestListeners: function setupRequestListeners(request) { + request.addListener('build', this.buildEndpoint); + + if (request.service.config.computeChecksums) { + if (request.operation === 'sendMessage') { + request.addListener('extractData', this.verifySendMessageChecksum); + } else if (request.operation === 'sendMessageBatch') { + request.addListener('extractData', this.verifySendMessageBatchChecksum); + } else if (request.operation === 'receiveMessage') { + request.addListener('extractData', this.verifyReceiveMessageChecksum); + } + } + }, + + verifySendMessageChecksum: function verifySendMessageChecksum(response) { + if (!response.data) return; + + var md5 = response.data.MD5OfMessageBody; + var body = this.params.MessageBody; + var calculatedMd5 = this.service.calculateChecksum(body); + if (calculatedMd5 !== md5) { + var msg = 'Got "' + response.data.MD5OfMessageBody + + '", expecting "' + calculatedMd5 + '".'; + this.service.throwInvalidChecksumError(response, + [response.data.MessageId], msg); + } + }, + + verifySendMessageBatchChecksum: function verifySendMessageBatchChecksum(response) { + if (!response.data) return; + + var service = this.service; + var entries = {}; + var errors = []; + var messageIds = []; + AWS.util.arrayEach(response.data.Successful, function (entry) { + entries[entry.Id] = entry; + }); + AWS.util.arrayEach(this.params.Entries, function (entry) { + if (entries[entry.Id]) { + var md5 = entries[entry.Id].MD5OfMessageBody; + var body = entry.MessageBody; + if (!service.isChecksumValid(md5, body)) { + errors.push(entry.Id); + messageIds.push(entries[entry.Id].MessageId); + } + } + }); + + if (errors.length > 0) { + service.throwInvalidChecksumError(response, messageIds, + 'Invalid messages: ' + errors.join(', ')); + } + }, + + verifyReceiveMessageChecksum: function verifyReceiveMessageChecksum(response) { + if (!response.data) return; + + var service = this.service; + var messageIds = []; + AWS.util.arrayEach(response.data.Messages, function(message) { + var md5 = message.MD5OfBody; + var body = message.Body; + if (!service.isChecksumValid(md5, body)) { + messageIds.push(message.MessageId); + } + }); + + if (messageIds.length > 0) { + service.throwInvalidChecksumError(response, messageIds, + 'Invalid messages: ' + messageIds.join(', ')); + } + }, + + throwInvalidChecksumError: function throwInvalidChecksumError(response, ids, message) { + response.error = AWS.util.error(new Error(), { + retryable: true, + code: 'InvalidChecksum', + messageIds: ids, + message: response.request.operation + + ' returned an invalid MD5 response. ' + message + }); + }, + + isChecksumValid: function isChecksumValid(checksum, data) { + return this.calculateChecksum(data) === checksum; + }, + + calculateChecksum: function calculateChecksum(data) { + return AWS.util.crypto.md5(data, 'hex'); + }, + + buildEndpoint: function buildEndpoint(request) { + var url = request.httpRequest.params.QueueUrl; + if (url) { + request.httpRequest.endpoint = new AWS.Endpoint(url); + + // signature version 4 requires the region name to be set, + // sqs queue urls contain the region name + var matches = request.httpRequest.endpoint.host.match(/^sqs\.(.+?)\./); + if (matches) request.httpRequest.region = matches[1]; + } + } +}); diff --git a/node_modules/aws-sdk/lib/services/sts.js b/node_modules/aws-sdk/lib/services/sts.js new file mode 100644 index 00000000..6e9fd00c --- /dev/null +++ b/node_modules/aws-sdk/lib/services/sts.js @@ -0,0 +1,47 @@ +var AWS = require('../core'); + +AWS.util.update(AWS.STS.prototype, { + /** + * @overload credentialsFrom(data, credentials = null) + * Creates a credentials object from STS response data containing + * credentials information. Useful for quickly setting AWS credentials. + * + * @note This is a low-level utility function. If you want to load temporary + * credentials into your process for subsequent requests to AWS resources, + * you should use {AWS.TemporaryCredentials} instead. + * @param data [map] data retrieved from a call to {getFederatedToken}, + * {getSessionToken}, {assumeRole}, or {assumeRoleWithWebIdentity}. + * @param credentials [AWS.Credentials] an optional credentials object to + * fill instead of creating a new object. Useful when modifying an + * existing credentials object from a refresh call. + * @return [AWS.TemporaryCredentials] the set of temporary credentials + * loaded from a raw STS operation response. + * @example Using credentialsFrom to load global AWS credentials + * var sts = new AWS.STS(); + * sts.getSessionToken(function (err, data) { + * if (err) console.log("Error getting credentials"); + * else { + * AWS.config.credentials = sts.credentialsFrom(data); + * } + * }); + * @see AWS.TemporaryCredentials + */ + credentialsFrom: function credentialsFrom(data, credentials) { + if (!data) return null; + if (!credentials) credentials = new AWS.TemporaryCredentials(); + credentials.expired = false; + credentials.accessKeyId = data.Credentials.AccessKeyId; + credentials.secretAccessKey = data.Credentials.SecretAccessKey; + credentials.sessionToken = data.Credentials.SessionToken; + credentials.expireTime = data.Credentials.Expiration; + return credentials; + }, + + assumeRoleWithWebIdentity: function assumeRoleWithWebIdentity(params, callback) { + return this.makeUnauthenticatedRequest('assumeRoleWithWebIdentity', params, callback); + }, + + assumeRoleWithSAML: function assumeRoleWithSAML(params, callback) { + return this.makeUnauthenticatedRequest('assumeRoleWithSAML', params, callback); + } +}); diff --git a/node_modules/aws-sdk/lib/services/swf.js b/node_modules/aws-sdk/lib/services/swf.js new file mode 100644 index 00000000..d2520873 --- /dev/null +++ b/node_modules/aws-sdk/lib/services/swf.js @@ -0,0 +1,10 @@ +var AWS = require('../core'); + +AWS.util.hideProperties(AWS, ['SimpleWorkflow']); + +/** + * @constant + * @readonly + * Backwards compatibility for access to the {AWS.SWF} service class. + */ +AWS.SimpleWorkflow = AWS.SWF; diff --git a/node_modules/aws-sdk/lib/signers/request_signer.js b/node_modules/aws-sdk/lib/signers/request_signer.js new file mode 100644 index 00000000..96af93ff --- /dev/null +++ b/node_modules/aws-sdk/lib/signers/request_signer.js @@ -0,0 +1,28 @@ +var AWS = require('../core'); +var inherit = AWS.util.inherit; + +/** + * @api private + */ +AWS.Signers.RequestSigner = inherit({ + constructor: function RequestSigner(request) { + this.request = request; + } +}); + +AWS.Signers.RequestSigner.getVersion = function getVersion(version) { + switch (version) { + case 'v2': return AWS.Signers.V2; + case 'v3': return AWS.Signers.V3; + case 'v4': return AWS.Signers.V4; + case 's3': return AWS.Signers.S3; + case 'v3https': return AWS.Signers.V3Https; + } + throw new Error('Unknown signing version ' + version); +}; + +require('./v2'); +require('./v3'); +require('./v3https'); +require('./v4'); +require('./s3'); diff --git a/node_modules/aws-sdk/lib/signers/s3.js b/node_modules/aws-sdk/lib/signers/s3.js new file mode 100644 index 00000000..5396a018 --- /dev/null +++ b/node_modules/aws-sdk/lib/signers/s3.js @@ -0,0 +1,166 @@ +var AWS = require('../core'); +var inherit = AWS.util.inherit; + +/** + * @api private + */ +AWS.Signers.S3 = inherit(AWS.Signers.RequestSigner, { + /** + * When building the stringToSign, these sub resource params should be + * part of the canonical resource string with their NON-decoded values + */ + subResources: { + 'acl': 1, + 'cors': 1, + 'lifecycle': 1, + 'delete': 1, + 'location': 1, + 'logging': 1, + 'notification': 1, + 'partNumber': 1, + 'policy': 1, + 'requestPayment': 1, + 'restore': 1, + 'tagging': 1, + 'torrent': 1, + 'uploadId': 1, + 'uploads': 1, + 'versionId': 1, + 'versioning': 1, + 'versions': 1, + 'website': 1 + }, + + // when building the stringToSign, these querystring params should be + // part of the canonical resource string with their NON-encoded values + responseHeaders: { + 'response-content-type': 1, + 'response-content-language': 1, + 'response-expires': 1, + 'response-cache-control': 1, + 'response-content-disposition': 1, + 'response-content-encoding': 1 + }, + + addAuthorization: function addAuthorization(credentials, date) { + if (!this.request.headers['presigned-expires']) { + this.request.headers['X-Amz-Date'] = AWS.util.date.rfc822(date); + } + + if (credentials.sessionToken) { + // presigned URLs require this header to be lowercased + this.request.headers['x-amz-security-token'] = credentials.sessionToken; + } + + var signature = this.sign(credentials.secretAccessKey, this.stringToSign()); + var auth = 'AWS ' + credentials.accessKeyId + ':' + signature; + + this.request.headers['Authorization'] = auth; + }, + + stringToSign: function stringToSign() { + var r = this.request; + + var parts = []; + parts.push(r.method); + parts.push(r.headers['Content-MD5'] || ''); + parts.push(r.headers['Content-Type'] || ''); + + // This is the "Date" header, but we use X-Amz-Date. + // The S3 signing mechanism requires us to pass an empty + // string for this Date header regardless. + parts.push(r.headers['presigned-expires'] || ''); + + var headers = this.canonicalizedAmzHeaders(); + if (headers) parts.push(headers); + parts.push(this.canonicalizedResource()); + + return parts.join('\n'); + + }, + + canonicalizedAmzHeaders: function canonicalizedAmzHeaders() { + + var amzHeaders = []; + + AWS.util.each(this.request.headers, function (name) { + if (name.match(/^x-amz-/i)) + amzHeaders.push(name); + }); + + amzHeaders.sort(function (a, b) { + return a.toLowerCase() < b.toLowerCase() ? -1 : 1; + }); + + var parts = []; + AWS.util.arrayEach.call(this, amzHeaders, function (name) { + parts.push(name.toLowerCase() + ':' + String(this.request.headers[name])); + }); + + return parts.join('\n'); + + }, + + canonicalizedResource: function canonicalizedResource() { + + var r = this.request; + + var parts = r.path.split('?'); + var path = parts[0]; + var querystring = parts[1]; + + var resource = ''; + + if (r.virtualHostedBucket) + resource += '/' + r.virtualHostedBucket; + + resource += path; + + if (querystring) { + + // collect a list of sub resources and query params that need to be signed + var resources = []; + + AWS.util.arrayEach.call(this, querystring.split('&'), function (param) { + var name = param.split('=')[0]; + var value = param.split('=')[1]; + if (this.subResources[name] || this.responseHeaders[name]) { + var subresource = { name: name }; + if (value !== undefined) { + if (this.subResources[name]) { + subresource.value = value; + } else { + subresource.value = decodeURIComponent(value); + } + } + resources.push(subresource); + } + }); + + resources.sort(function (a, b) { return a.name < b.name ? -1 : 1; }); + + if (resources.length) { + + querystring = []; + AWS.util.arrayEach(resources, function (resource) { + if (resource.value === undefined) + querystring.push(resource.name); + else + querystring.push(resource.name + '=' + resource.value); + }); + + resource += '?' + querystring.join('&'); + } + + } + + return resource; + + }, + + sign: function sign(secret, string) { + return AWS.util.crypto.hmac(secret, string, 'base64', 'sha1'); + } +}); + +module.exports = AWS.Signers.S3; diff --git a/node_modules/aws-sdk/lib/signers/v2.js b/node_modules/aws-sdk/lib/signers/v2.js new file mode 100644 index 00000000..9c7d03f4 --- /dev/null +++ b/node_modules/aws-sdk/lib/signers/v2.js @@ -0,0 +1,45 @@ +var AWS = require('../core'); +var inherit = AWS.util.inherit; + +/** + * @api private + */ +AWS.Signers.V2 = inherit(AWS.Signers.RequestSigner, { + addAuthorization: function addAuthorization(credentials, date) { + + if (!date) date = AWS.util.date.getDate(); + + var r = this.request; + + r.params.Timestamp = AWS.util.date.iso8601(date); + r.params.SignatureVersion = '2'; + r.params.SignatureMethod = 'HmacSHA256'; + r.params.AWSAccessKeyId = credentials.accessKeyId; + + if (credentials.sessionToken) { + r.params.SecurityToken = credentials.sessionToken; + } + + delete r.params.Signature; // delete old Signature for re-signing + r.params.Signature = this.signature(credentials); + + r.body = AWS.util.queryParamsToString(r.params); + r.headers['Content-Length'] = r.body.length; + }, + + signature: function signature(credentials) { + return AWS.util.crypto.hmac(credentials.secretAccessKey, this.stringToSign(), 'base64'); + }, + + stringToSign: function stringToSign() { + var parts = []; + parts.push(this.request.method); + parts.push(this.request.endpoint.host.toLowerCase()); + parts.push(this.request.pathname()); + parts.push(AWS.util.queryParamsToString(this.request.params)); + return parts.join('\n'); + } + +}); + +module.exports = AWS.Signers.V2; diff --git a/node_modules/aws-sdk/lib/signers/v3.js b/node_modules/aws-sdk/lib/signers/v3.js new file mode 100644 index 00000000..40f342d5 --- /dev/null +++ b/node_modules/aws-sdk/lib/signers/v3.js @@ -0,0 +1,74 @@ +var AWS = require('../core'); +var inherit = AWS.util.inherit; + +/** + * @api private + */ +AWS.Signers.V3 = inherit(AWS.Signers.RequestSigner, { + addAuthorization: function addAuthorization(credentials, date) { + + var datetime = AWS.util.date.rfc822(date); + + this.request.headers['X-Amz-Date'] = datetime; + + if (credentials.sessionToken) { + this.request.headers['x-amz-security-token'] = credentials.sessionToken; + } + + this.request.headers['X-Amzn-Authorization'] = + this.authorization(credentials, datetime); + + }, + + authorization: function authorization(credentials) { + return 'AWS3 ' + + 'AWSAccessKeyId=' + credentials.accessKeyId + ',' + + 'Algorithm=HmacSHA256,' + + 'SignedHeaders=' + this.signedHeaders() + ',' + + 'Signature=' + this.signature(credentials); + }, + + signedHeaders: function signedHeaders() { + var headers = []; + AWS.util.arrayEach(this.headersToSign(), function iterator(h) { + headers.push(h.toLowerCase()); + }); + return headers.sort().join(';'); + }, + + canonicalHeaders: function canonicalHeaders() { + var headers = this.request.headers; + var parts = []; + AWS.util.arrayEach(this.headersToSign(), function iterator(h) { + parts.push(h.toLowerCase().trim() + ':' + String(headers[h]).trim()); + }); + return parts.sort().join('\n') + '\n'; + }, + + headersToSign: function headersToSign() { + var headers = []; + AWS.util.each(this.request.headers, function iterator(k) { + if (k === 'Host' || k === 'Content-Encoding' || k.match(/^X-Amz/i)) { + headers.push(k); + } + }); + return headers; + }, + + signature: function signature(credentials) { + return AWS.util.crypto.hmac(credentials.secretAccessKey, this.stringToSign(), 'base64'); + }, + + stringToSign: function stringToSign() { + var parts = []; + parts.push(this.request.method); + parts.push('/'); + parts.push(''); + parts.push(this.canonicalHeaders()); + parts.push(this.request.body); + return AWS.util.crypto.sha256(parts.join('\n')); + } + +}); + +module.exports = AWS.Signers.V3; diff --git a/node_modules/aws-sdk/lib/signers/v3https.js b/node_modules/aws-sdk/lib/signers/v3https.js new file mode 100644 index 00000000..b70a9305 --- /dev/null +++ b/node_modules/aws-sdk/lib/signers/v3https.js @@ -0,0 +1,22 @@ +var AWS = require('../core'); +var inherit = AWS.util.inherit; + +require('./v3'); + +/** + * @api private + */ +AWS.Signers.V3Https = inherit(AWS.Signers.V3, { + authorization: function authorization(credentials) { + return 'AWS3-HTTPS ' + + 'AWSAccessKeyId=' + credentials.accessKeyId + ',' + + 'Algorithm=HmacSHA256,' + + 'Signature=' + this.signature(credentials); + }, + + stringToSign: function stringToSign() { + return this.request.headers['X-Amz-Date']; + } +}); + +module.exports = AWS.Signers.V3Https; diff --git a/node_modules/aws-sdk/lib/signers/v4.js b/node_modules/aws-sdk/lib/signers/v4.js new file mode 100644 index 00000000..2f2a4e01 --- /dev/null +++ b/node_modules/aws-sdk/lib/signers/v4.js @@ -0,0 +1,160 @@ +var AWS = require('../core'); +var inherit = AWS.util.inherit; + +/** + * @api private + */ +var cachedSecret = {}; + +/** + * @api private + */ +AWS.Signers.V4 = inherit(AWS.Signers.RequestSigner, { + constructor: function V4(request, serviceName) { + AWS.Signers.RequestSigner.call(this, request); + this.serviceName = serviceName; + }, + + addAuthorization: function addAuthorization(credentials, date) { + var datetime = AWS.util.date.iso8601(date).replace(/[:\-]|\.\d{3}/g, ''); + this.addHeaders(credentials, datetime); + this.updateBody(credentials); + this.request.headers['Authorization'] = + this.authorization(credentials, datetime); + }, + + addHeaders: function addHeaders(credentials, datetime) { + this.request.headers['X-Amz-Date'] = datetime; + if (credentials.sessionToken) { + this.request.headers['x-amz-security-token'] = credentials.sessionToken; + } + }, + + updateBody: function updateBody(credentials) { + if (this.request.params) { + this.request.params.AWSAccessKeyId = credentials.accessKeyId; + + if (credentials.sessionToken) { + this.request.params.SecurityToken = credentials.sessionToken; + } + + this.request.body = AWS.util.queryParamsToString(this.request.params); + this.request.headers['Content-Length'] = this.request.body.length; + } + }, + + authorization: function authorization(credentials, datetime) { + var parts = []; + var credString = this.credentialString(datetime); + parts.push('AWS4-HMAC-SHA256 Credential=' + + credentials.accessKeyId + '/' + credString); + parts.push('SignedHeaders=' + this.signedHeaders()); + parts.push('Signature=' + this.signature(credentials, datetime)); + return parts.join(', '); + }, + + signature: function signature(credentials, datetime) { + var cache = cachedSecret[this.serviceName]; + var date = datetime.substr(0, 8); + if (!cache || + cache.akid !== credentials.accessKeyId || + cache.region !== this.request.region || + cache.date !== date) { + var kSecret = credentials.secretAccessKey; + var kDate = AWS.util.crypto.hmac('AWS4' + kSecret, date, 'buffer'); + var kRegion = AWS.util.crypto.hmac(kDate, this.request.region, 'buffer'); + var kService = AWS.util.crypto.hmac(kRegion, this.serviceName, 'buffer'); + var kCredentials = AWS.util.crypto.hmac(kService, 'aws4_request', 'buffer'); + cachedSecret[this.serviceName] = { + region: this.request.region, date: date, + key: kCredentials, akid: credentials.accessKeyId + }; + } + + var key = cachedSecret[this.serviceName].key; + return AWS.util.crypto.hmac(key, this.stringToSign(datetime), 'hex'); + }, + + stringToSign: function stringToSign(datetime) { + var parts = []; + parts.push('AWS4-HMAC-SHA256'); + parts.push(datetime); + parts.push(this.credentialString(datetime)); + parts.push(this.hexEncodedHash(this.canonicalString())); + return parts.join('\n'); + }, + + canonicalString: function canonicalString() { + var parts = []; + parts.push(this.request.method); + parts.push(this.request.pathname()); + parts.push(this.request.search()); + parts.push(this.canonicalHeaders() + '\n'); + parts.push(this.signedHeaders()); + parts.push(this.hexEncodedBodyHash()); + return parts.join('\n'); + }, + + canonicalHeaders: function canonicalHeaders() { + var headers = []; + AWS.util.each.call(this, this.request.headers, function (key, item) { + headers.push([key, item]); + }); + headers.sort(function (a, b) { + return a[0].toLowerCase() < b[0].toLowerCase() ? -1 : 1; + }); + var parts = []; + AWS.util.arrayEach.call(this, headers, function (item) { + var key = item[0].toLowerCase(); + if (this.isSignableHeader(key)) { + parts.push(key + ':' + + this.canonicalHeaderValues(item[1].toString())); + } + }); + return parts.join('\n'); + }, + + canonicalHeaderValues: function canonicalHeaderValues(values) { + return values.replace(/\s+/g, ' ').replace(/^\s+|\s+$/g, ''); + }, + + signedHeaders: function signedHeaders() { + var keys = []; + AWS.util.each.call(this, this.request.headers, function (key) { + key = key.toLowerCase(); + if (this.isSignableHeader(key)) keys.push(key); + }); + return keys.sort().join(';'); + }, + + credentialString: function credentialString(datetime) { + var parts = []; + parts.push(datetime.substr(0, 8)); + parts.push(this.request.region); + parts.push(this.serviceName); + parts.push('aws4_request'); + return parts.join('/'); + }, + + hexEncodedHash: function hash(string) { + return AWS.util.crypto.sha256(string, 'hex'); + }, + + hexEncodedBodyHash: function hexEncodedBodyHash() { + if (this.request.headers['X-Amz-Content-Sha256']) { + return this.request.headers['X-Amz-Content-Sha256']; + } else { + return this.hexEncodedHash(this.request.body || ''); + } + }, + + unsignableHeaders: ['authorization', 'content-type', 'user-agent', + 'x-amz-user-agent', 'x-amz-content-sha256'], + + isSignableHeader: function isSignableHeader(key) { + return this.unsignableHeaders.indexOf(key) < 0; + } + +}); + +module.exports = AWS.Signers.V4; diff --git a/node_modules/aws-sdk/lib/state_machine.js b/node_modules/aws-sdk/lib/state_machine.js new file mode 100644 index 00000000..6e60b474 --- /dev/null +++ b/node_modules/aws-sdk/lib/state_machine.js @@ -0,0 +1,42 @@ +function AcceptorStateMachine(states, state) { + this.currentState = state || null; + this.states = states || {}; +} + +AcceptorStateMachine.prototype.runTo = function runTo(finalState, done, bindObject, inputError) { + if (typeof finalState === 'function') { + inputError = bindObject; bindObject = done; + done = finalState; finalState = null; + } + + var self = this; + var state = self.states[self.currentState]; + state.fn.call(bindObject || self, inputError, function(err) { + if (err) { + if (bindObject.logger) bindObject.logger.log(self.currentState, '->', state.fail, err); + if (state.fail) self.currentState = state.fail; + else return done ? done(err) : null; + } else { + if (bindObject.logger) bindObject.logger.log(self.currentState, '->', state.accept); + if (state.accept) self.currentState = state.accept; + else return done ? done() : null; + } + if (self.currentState === finalState) return done ? done(err) : null; + + self.runTo(finalState, done, bindObject, err); + }); +}; + +AcceptorStateMachine.prototype.addState = function addState(name, acceptState, failState, fn) { + if (typeof acceptState === 'function') { + fn = acceptState; acceptState = null; failState = null; + } else if (typeof failState === 'function') { + fn = failState; failState = null; + } + + if (!this.currentState) this.currentState = name; + this.states[name] = { accept: acceptState, fail: failState, fn: fn }; + return this; +}; + +module.exports = AcceptorStateMachine; diff --git a/node_modules/aws-sdk/lib/util.js b/node_modules/aws-sdk/lib/util.js new file mode 100644 index 00000000..3574e26b --- /dev/null +++ b/node_modules/aws-sdk/lib/util.js @@ -0,0 +1,561 @@ +/* eslint guard-for-in:0 */ + +var AWS = require('./core'); +var cryptoLib = require('crypto'); + +var Buffer = require('buffer').Buffer; + +/** + * A set of utility methods for use with the AWS SDK. + * + * @!attribute abort + * Return this value from an iterator function {each} or {arrayEach} + * to break out of the iteration. + * @example Breaking out of an iterator function + * AWS.util.each({a: 1, b: 2, c: 3}, function(key, value) { + * if (key == 'b') return AWS.util.abort; + * }); + * @see each + * @see arrayEach + * @api private + */ +AWS.util = { + engine: function engine() { + if (AWS.util.isBrowser() && typeof navigator !== 'undefined') { + return navigator.userAgent; + } else { + return process.platform + '/' + process.version; + } + }, + + userAgent: function userAgent() { + var name = AWS.util.isBrowser() ? 'js' : 'nodejs'; + var agent = 'aws-sdk-' + name + '/' + AWS.VERSION; + if (name === 'nodejs') agent += ' ' + AWS.util.engine(); + return agent; + }, + + isBrowser: function isBrowser() { return process && process.browser; }, + isNode: function isNode() { return !AWS.util.isBrowser(); }, + nodeRequire: function nodeRequire(module) { + if (AWS.util.isNode()) return require(module); + }, + + uriEscape: function uriEscape(string) { + var output = encodeURIComponent(string); + output = output.replace(/[^A-Za-z0-9_.~\-%]+/g, escape); + + // AWS percent-encodes some extra non-standard characters in a URI + output = output.replace(/[*]/g, function(ch) { + return '%' + ch.charCodeAt(0).toString(16).toUpperCase(); + }); + + return output; + }, + + uriEscapePath: function uriEscapePath(string) { + var parts = []; + AWS.util.arrayEach(string.split('/'), function (part) { + parts.push(AWS.util.uriEscape(part)); + }); + return parts.join('/'); + }, + + urlParse: function urlParse(url) { + return require('url').parse(url); + }, + + urlFormat: function urlFormat(url) { + return require('url').format(url); + }, + + queryParamsToString: function queryParamsToString(params) { + var items = []; + var escape = AWS.util.uriEscape; + var sortedKeys = Object.keys(params).sort(); + + AWS.util.arrayEach(sortedKeys, function(name) { + var value = params[name]; + var ename = escape(name); + var result = ename; + if (Array.isArray(value)) { + var vals = []; + AWS.util.arrayEach(value, function(item) { vals.push(escape(item)); }); + result = ename + '=' + vals.sort().join('&' + ename + '='); + } else if (value !== undefined && value !== null) { + result = ename + '=' + escape(value); + } + items.push(result); + }); + + return items.join('&'); + }, + + readFileSync: function readFileSync(path) { + if (typeof window !== 'undefined') return null; + return require('fs').readFileSync(path, 'utf-8'); + }, + + base64: { + + encode: function encode64(string) { + return new Buffer(string).toString('base64'); + }, + + decode: function decode64(string) { + return new Buffer(string, 'base64').toString(); + } + + }, + + Buffer: Buffer, + + buffer: { + /** + * Concatenates a list of Buffer objects. + */ + concat: function(buffers) { + var length = 0, + offset = 0, + buffer = null, i; + + for (i = 0; i < buffers.length; i++) { + length += buffers[i].length; + } + + buffer = new Buffer(length); + + for (i = 0; i < buffers.length; i++) { + buffers[i].copy(buffer, offset); + offset += buffers[i].length; + } + + return buffer; + } + }, + + string: { + byteLength: function byteLength(string) { + if (string === null || string === undefined) return 0; + if (typeof string === 'string') string = new Buffer(string); + + if (typeof string.byteLength === 'number') { + return string.byteLength; + } else if (typeof string.length === 'number') { + return string.length; + } else if (typeof string.size === 'number') { + return string.size; + } else if (typeof string.path === 'string') { + return require('fs').lstatSync(string.path).size; + } else { + throw AWS.util.error(new Error('Cannot determine length of ' + string), + { object: string }); + } + }, + + upperFirst: function upperFirst(string) { + return string[0].toUpperCase() + string.substr(1); + }, + + lowerFirst: function lowerFirst(string) { + return string[0].toLowerCase() + string.substr(1); + } + }, + + jamespath: { + query: function query(expression, data) { + if (!data) return []; + + var results = []; + var expressions = expression.split(/\s+or\s+/); + AWS.util.arrayEach.call(this, expressions, function (expr) { + var objects = [data]; + var tokens = expr.split('.'); + AWS.util.arrayEach.call(this, tokens, function (token) { + var match = token.match('^(.+?)(?:\\[(-?\\d+|\\*|)\\])?$'); + var newObjects = []; + AWS.util.arrayEach.call(this, objects, function (obj) { + if (match[1] === '*') { + AWS.util.arrayEach.call(this, obj, function (value) { + newObjects.push(value); + }); + } else if (obj.hasOwnProperty(match[1])) { + newObjects.push(obj[match[1]]); + } + }); + objects = newObjects; + + // handle indexing (token[0], token[-1]) + if (match[2] !== undefined) { + newObjects = []; + AWS.util.arrayEach.call(this, objects, function (obj) { + if (Array.isArray(obj)) { + if (match[2] === '*' || match[2] === '') { + newObjects = newObjects.concat(obj); + } else { + var idx = parseInt(match[2], 10); + if (idx < 0) idx = obj.length + idx; // negative indexing + newObjects.push(obj[idx]); + } + } + }); + objects = newObjects; + } + + if (objects.length === 0) return AWS.util.abort; + }); + + if (objects.length > 0) { + results = objects; + return AWS.util.abort; + } + }); + + return results; + }, + + find: function find(expression, data) { + return AWS.util.jamespath.query(expression, data)[0]; + } + }, + + /** + * Date and time utility functions. + */ + date: { + + /** + * @return [Date] the current JavaScript date object. Since all + * AWS services rely on this date object, you can override + * this function to provide a special time value to AWS service + * requests. + */ + getDate: function getDate() { return new Date(); }, + + /** + * @return [String] the date in ISO-8601 format + */ + iso8601: function iso8601(date) { + if (date === undefined) { date = AWS.util.date.getDate(); } + return date.toISOString(); + }, + + /** + * @return [String] the date in RFC 822 format + */ + rfc822: function rfc822(date) { + if (date === undefined) { date = AWS.util.date.getDate(); } + return date.toUTCString(); + }, + + /** + * @return [Integer] the UNIX timestamp value for the current time + */ + unixTimestamp: function unixTimestamp(date) { + if (date === undefined) { date = AWS.util.date.getDate(); } + return date.getTime() / 1000; + }, + + /** + * @param [String,number,Date] date + * @return [Date] + */ + from: function format(date) { + if (typeof date === 'number') { + return new Date(date * 1000); // unix timestamp + } else { + return new Date(date); + } + }, + + /** + * Given a Date or date-like value, this function formats the + * date into a string of the requested value. + * @param [String,number,Date] date + * @param [String] formatter Valid formats are: + # * 'iso8601' + # * 'rfc822' + # * 'unixTimestamp' + * @return [String] + */ + format: function format(date, formatter) { + if (!formatter) formatter = 'iso8601'; + return AWS.util.date[formatter](AWS.util.date.from(date)); + }, + + parseTimestamp: function parseTimestamp(value) { + if (value.match(/^\d+$/)) { // unix timestamp + return new Date(value * 1000); + } else if (value.match(/^\d{4}/)) { // iso8601 + return new Date(value); + } else if (value.match(/^\w{3},/)) { // rfc822 + return new Date(value); + } else { + throw AWS.util.error( + new Error('unhandled timestamp format: ' + value), + {code: 'TimestampParserError'}); + } + } + + }, + + crypto: { + crc32Table: [ + 0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA, 0x076DC419, + 0x706AF48F, 0xE963A535, 0x9E6495A3, 0x0EDB8832, 0x79DCB8A4, + 0xE0D5E91E, 0x97D2D988, 0x09B64C2B, 0x7EB17CBD, 0xE7B82D07, + 0x90BF1D91, 0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE, + 0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7, 0x136C9856, + 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC, 0x14015C4F, 0x63066CD9, + 0xFA0F3D63, 0x8D080DF5, 0x3B6E20C8, 0x4C69105E, 0xD56041E4, + 0xA2677172, 0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B, + 0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940, 0x32D86CE3, + 0x45DF5C75, 0xDCD60DCF, 0xABD13D59, 0x26D930AC, 0x51DE003A, + 0xC8D75180, 0xBFD06116, 0x21B4F4B5, 0x56B3C423, 0xCFBA9599, + 0xB8BDA50F, 0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924, + 0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D, 0x76DC4190, + 0x01DB7106, 0x98D220BC, 0xEFD5102A, 0x71B18589, 0x06B6B51F, + 0x9FBFE4A5, 0xE8B8D433, 0x7807C9A2, 0x0F00F934, 0x9609A88E, + 0xE10E9818, 0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01, + 0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E, 0x6C0695ED, + 0x1B01A57B, 0x8208F4C1, 0xF50FC457, 0x65B0D9C6, 0x12B7E950, + 0x8BBEB8EA, 0xFCB9887C, 0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, + 0xFBD44C65, 0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2, + 0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB, 0x4369E96A, + 0x346ED9FC, 0xAD678846, 0xDA60B8D0, 0x44042D73, 0x33031DE5, + 0xAA0A4C5F, 0xDD0D7CC9, 0x5005713C, 0x270241AA, 0xBE0B1010, + 0xC90C2086, 0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F, + 0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4, 0x59B33D17, + 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD, 0xEDB88320, 0x9ABFB3B6, + 0x03B6E20C, 0x74B1D29A, 0xEAD54739, 0x9DD277AF, 0x04DB2615, + 0x73DC1683, 0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8, + 0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1, 0xF00F9344, + 0x8708A3D2, 0x1E01F268, 0x6906C2FE, 0xF762575D, 0x806567CB, + 0x196C3671, 0x6E6B06E7, 0xFED41B76, 0x89D32BE0, 0x10DA7A5A, + 0x67DD4ACC, 0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5, + 0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252, 0xD1BB67F1, + 0xA6BC5767, 0x3FB506DD, 0x48B2364B, 0xD80D2BDA, 0xAF0A1B4C, + 0x36034AF6, 0x41047A60, 0xDF60EFC3, 0xA867DF55, 0x316E8EEF, + 0x4669BE79, 0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236, + 0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F, 0xC5BA3BBE, + 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04, 0xC2D7FFA7, 0xB5D0CF31, + 0x2CD99E8B, 0x5BDEAE1D, 0x9B64C2B0, 0xEC63F226, 0x756AA39C, + 0x026D930A, 0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713, + 0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38, 0x92D28E9B, + 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21, 0x86D3D2D4, 0xF1D4E242, + 0x68DDB3F8, 0x1FDA836E, 0x81BE16CD, 0xF6B9265B, 0x6FB077E1, + 0x18B74777, 0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C, + 0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45, 0xA00AE278, + 0xD70DD2EE, 0x4E048354, 0x3903B3C2, 0xA7672661, 0xD06016F7, + 0x4969474D, 0x3E6E77DB, 0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, + 0x37D83BF0, 0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9, + 0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6, 0xBAD03605, + 0xCDD70693, 0x54DE5729, 0x23D967BF, 0xB3667A2E, 0xC4614AB8, + 0x5D681B02, 0x2A6F2B94, 0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, + 0x2D02EF8D], + + crc32: function crc32(data) { + var tbl = AWS.util.crypto.crc32Table; + var crc = 0 ^ -1; + + if (typeof data === 'string') { + data = new Buffer(data); + } + + for (var i = 0; i < data.length; i++) { + var code = data.readUInt8(i); + crc = (crc >>> 8) ^ tbl[(crc ^ code) & 0xFF]; + } + return (crc ^ -1) >>> 0; + }, + + hmac: function hmac(key, string, digest, fn) { + if (!digest) digest = 'binary'; + if (digest === 'buffer') { digest = undefined; } + if (!fn) fn = 'sha256'; + if (typeof string === 'string') string = new Buffer(string); + return cryptoLib.createHmac(fn, key).update(string).digest(digest); + }, + + md5: function md5(data, digest) { + if (!digest) { digest = 'binary'; } + if (digest === 'buffer') { digest = undefined; } + if (typeof data === 'string') data = new Buffer(data); + return AWS.util.crypto.createHash('md5').update(data).digest(digest); + }, + + sha256: function sha256(string, digest) { + if (!digest) { digest = 'binary'; } + if (digest === 'buffer') { digest = undefined; } + if (typeof string === 'string') string = new Buffer(string); + return AWS.util.crypto.createHash('sha256').update(string).digest(digest); + }, + + toHex: function toHex(data) { + var out = []; + for (var i = 0; i < data.length; i++) { + out.push(('0' + data.charCodeAt(i).toString(16)).substr(-2, 2)); + } + return out.join(''); + }, + + createHash: function createHash(algorithm) { + return cryptoLib.createHash(algorithm); + } + + }, + + /** @!ignore */ + + /* Abort constant */ + abort: {}, + + each: function each(object, iterFunction) { + for (var key in object) { + if (object.hasOwnProperty(key)) { + var ret = iterFunction.call(this, key, object[key]); + if (ret === AWS.util.abort) break; + } + } + }, + + arrayEach: function arrayEach(array, iterFunction) { + for (var idx in array) { + if (array.hasOwnProperty(idx)) { + var ret = iterFunction.call(this, array[idx], parseInt(idx, 10)); + if (ret === AWS.util.abort) break; + } + } + }, + + update: function update(obj1, obj2) { + AWS.util.each(obj2, function iterator(key, item) { + obj1[key] = item; + }); + return obj1; + }, + + merge: function merge(obj1, obj2) { + return AWS.util.update(AWS.util.copy(obj1), obj2); + }, + + copy: function copy(object) { + if (object === null || object === undefined) return object; + var dupe = {}; + for (var key in object) { + dupe[key] = object[key]; + } + return dupe; + }, + + isEmpty: function isEmpty(obj) { + for (var prop in obj) { + if (obj.hasOwnProperty(prop)) { + return false; + } + } + return true; + }, + + isType: function isType(obj, type) { + // handle cross-"frame" objects + if (typeof type === 'function') type = AWS.util.typeName(type); + return Object.prototype.toString.call(obj) === '[object ' + type + ']'; + }, + + typeName: function typeName(type) { + if (type.hasOwnProperty('name')) return type.name; + var str = type.toString(); + var match = str.match(/^\s*function (.+)\(/); + return match ? match[1] : str; + }, + + error: function error(err, options) { + var originalError = null; + if (typeof err.message === 'string' && err.message !== '') { + if (typeof options === 'string' || (options && options.message)) { + originalError = AWS.util.copy(err); + originalError.message = err.message; + } + } + err.message = err.message || null; + + if (typeof options === 'string') { + err.message = options; + } else { + AWS.util.update(err, options); + } + + if (typeof Object.defineProperty === 'function') { + Object.defineProperty(err, 'name', {writable: true, enumerable: false}); + Object.defineProperty(err, 'message', {enumerable: true}); + } + + err.name = err.name || err.code || 'Error'; + err.time = new Date(); + + if (originalError) err.originalError = originalError; + + return err; + }, + + /** + * @api private + */ + inherit: function inherit(klass, features) { + var newObject = null; + if (features === undefined) { + features = klass; + klass = Object; + newObject = {}; + } else { + var ctor = function ConstructorWrapper() {}; + ctor.prototype = klass.prototype; + newObject = new ctor(); + } + + // constructor not supplied, create pass-through ctor + if (features.constructor === Object) { + features.constructor = function() { + if (klass !== Object) { + return klass.apply(this, arguments); + } + }; + } + + features.constructor.prototype = newObject; + AWS.util.update(features.constructor.prototype, features); + features.constructor.__super__ = klass; + return features.constructor; + }, + + /** + * @api private + */ + mixin: function mixin() { + var klass = arguments[0]; + for (var i = 1; i < arguments.length; i++) { + for (var prop in arguments[i].prototype) { + var fn = arguments[i].prototype[prop]; + if (prop !== 'constructor') { + klass.prototype[prop] = fn; + } + } + } + return klass; + }, + + /** + * @api private + */ + hideProperties: function hideProperties(obj, props) { + if (typeof Object.defineProperty !== 'function') return; + + AWS.util.arrayEach(props, function (key) { + Object.defineProperty(obj, key, { + enumerable: false, writable: true, configurable: true }); + }); + } +}; + +module.exports = AWS.util; diff --git a/node_modules/aws-sdk/lib/xml/browser_parser.js b/node_modules/aws-sdk/lib/xml/browser_parser.js new file mode 100644 index 00000000..b2135d5b --- /dev/null +++ b/node_modules/aws-sdk/lib/xml/browser_parser.js @@ -0,0 +1,170 @@ +var AWS = require('../core'); +var inherit = AWS.util.inherit; + +/** + * @api private + */ +AWS.XML.Parser = inherit({ + constructor: function XMLParser(rules) { + this.rules = (rules || {}).members || {}; + }, + + parse: function parse(xml) { + if (xml.replace(/^\s+/, '') === '') return {}; + + var result, error; + try { + if (window.DOMParser) { + var parser = new DOMParser(); + result = parser.parseFromString(xml, 'text/xml'); + + if (result.documentElement === null) { + throw new Error('Cannot parse empty document.'); + } + + var isError = result.getElementsByTagName('parsererror')[0]; + if (isError && (isError.parentNode === result || + isError.parentNode.nodeName === 'body')) { + throw new Error(isError.getElementsByTagName('div')[0].textContent); + } + } else if (window.ActiveXObject) { + result = new window.ActiveXObject('Microsoft.XMLDOM'); + result.async = false; + + if (!result.loadXML(xml)) { + throw new Error('Parse error in document'); + } + } else { + throw new Error('Cannot load XML parser'); + } + } catch (e) { + error = e; + } + + if (result && result.documentElement && !error) { + return this.parseStructure(result.documentElement, this.rules); + } else if (error) { + throw AWS.util.error(error || new Error(), {code: 'XMLParserError'}); + } else { // empty xml document + return {}; + } + }, + + parseStructure: function parseStructure(structure, rules) { + var data = {}; + + // force array members to always be present + AWS.util.each.call(this, rules, function(memberName, memberRules) { + if (memberRules.type === 'list') { + data[memberRules.name || memberName] = []; + } + }); + + for (var j = 0; j < structure.attributes.length; j++) { + var attr = structure.attributes[j]; + var attrRule = rules[attr.name]; + if (attrRule) { + var value = this.parseMember({ textContent: attr.value }, attrRule); + data[attrRule.name || attr.name] = value; + } + } + + var child = structure.firstElementChild; + while (child) { + var rule = rules[child.nodeName] || {}; + var key = rule.name || child.nodeName; + var inData = rule.flattened ? data[key] : null; + data[key] = this.parseMember(child, rule, inData); + child = child.nextElementSibling; + } + + return data; + }, + + parseMap: function parseMap(map, rules, data) { + data = data || {}; + var keyRules = rules.keys || {}; + var valueRules = rules.members || {}; + var keyName = keyRules.name || 'key'; + var valueName = valueRules.name || 'value'; + + function run(item) { + var key = item.getElementsByTagName(keyName)[0].textContent; + var value = item.getElementsByTagName(valueName)[0]; + value = this.parseMember(value, valueRules); + data[key] = value; + } + + if (rules.flattened) { + run.call(this, map); + } else { + var child = map.firstElementChild; + while (child) { + run.call(this, child); + child = child.nextElementSibling; + } + } + return data; + }, + + parseList: function parseList(list, rules, data) { + data = data || []; + var memberRules = rules.members || {}; + var memberName = memberRules.name || 'member'; + if (rules.flattened) { + data.push(this.parseMember(list, memberRules)); + } else { + var child = list.firstElementChild; + while (child) { + if (child.nodeName === memberName) { + data.push(this.parseMember(child, memberRules)); + } + child = child.nextElementSibling; + } + } + return data; + }, + + parseMember: function parseMember(member, rules, data) { + if (!rules.type) { + if (member.childElementCount > 0) { + rules.type = 'structure'; + } else { + rules.type = 'string'; + } + } + + if (rules.type === 'structure') { + return this.parseStructure(member, rules.members || {}, data); + } else if (rules.type === 'list') { + return this.parseList(member, rules, data); + } else if (rules.type === 'map') { + return this.parseMap(member, rules, data); + } + + if (rules.type === 'string') { + if (member.attributes && member.attributes.encoding && + member.attributes.encoding.value === 'base64') { + return AWS.util.base64.decode(member.textContent); + } else { + return member.textContent; + } + } + + // return null for empty nodes of any other type + if (member.textContent === '') return null; + + if (rules.type === 'integer') { + return parseInt(member.textContent, 10); + } else if (rules.type === 'float') { + return parseFloat(member.textContent); + } else if (rules.type === 'timestamp') { + return AWS.util.date.parseTimestamp(member.textContent); + } else if (rules.type === 'boolean') { + return member.textContent === 'true'; + } else { + var msg = 'unhandled type: ' + rules.type; + throw AWS.util.error(new Error(msg), {code: 'XMLParserError'}); + } + } +}); diff --git a/node_modules/aws-sdk/lib/xml/builder.js b/node_modules/aws-sdk/lib/xml/builder.js new file mode 100644 index 00000000..99a8980f --- /dev/null +++ b/node_modules/aws-sdk/lib/xml/builder.js @@ -0,0 +1,79 @@ +var AWS = require('../core'); +var builder = require('xmlbuilder'); +var inherit = AWS.util.inherit; + +/** + * @api private + */ +AWS.XML.Builder = inherit({ + + constructor: function XMLBuilder(root, rules, options) { + this.root = root; + this.rules = rules; + this.xmlns = options.xmlnamespace; + this.timestampFormat = options.timestampFormat; + }, + + toXML: function toXML(params) { + var xml = builder.create(this.root); + if (this.xmlns) xml.att('xmlns', this.xmlns); + this.serializeStructure(this.rules, params, xml); + return xml.root().toString(); + }, + + serializeStructure: function serializeStructure(rules, params, xml) { + AWS.util.each.call(this, rules || {}, function (memberName, memberRules) { + var value = params[memberName]; + if (value !== undefined) { + if (memberRules.attribute) { + xml.att(memberRules.name, value); + } else { + this.serializeMember(memberName, memberRules, value, xml); + } + } + }); + }, + + serializeList: function serializeList(name, rules, list, xml) { + if (rules.flattened) { + AWS.util.arrayEach.call(this, list, function (value) { + this.serializeMember(rules.name || name, rules.members, value, xml); + }); + } else { + xml = xml.ele(rules.name || name); + AWS.util.arrayEach.call(this, list, function (value) { + var memberName = rules.members.name || 'member'; + this.serializeMember(memberName, rules.members, value, xml); + }); + } + }, + + serializeMember: function serializeMember(memberName, rules, params, xml) { + if (params === null || params === undefined) return; + + var name = memberName; + if (rules.type === 'structure') { + xml = xml.ele(name); + this.serializeStructure(rules.members, params, xml); + } else if (rules.type === 'list') { + this.serializeList(name, rules, params, xml); + } else if (rules.type === 'timestamp') { + var timestampFormat = rules.format || this.timestampFormat; + var date = AWS.util.date.format(params, timestampFormat); + xml = xml.ele(name, String(date)); + } else { + xml = xml.ele(name, String(params)); + } + this.applyNamespaces(xml, rules); + }, + + applyNamespaces: function applyNamespaces(xml, rules) { + if (rules.xmlns) { + var attr = 'xmlns'; + if (rules.xmlns.prefix) attr += ':' + rules.xmlns.prefix; + xml.att(attr, rules.xmlns.uri); + } + } + + +}); diff --git a/node_modules/aws-sdk/lib/xml/node_parser.js b/node_modules/aws-sdk/lib/xml/node_parser.js new file mode 100644 index 00000000..9aaf3cc7 --- /dev/null +++ b/node_modules/aws-sdk/lib/xml/node_parser.js @@ -0,0 +1,153 @@ +var AWS = require('../core'); +var inherit = AWS.util.inherit; +var xml2js = require('xml2js'); + +/** + * @api private + */ +AWS.XML.Parser = inherit({ + constructor: function XMLParser(rules) { + this.rules = (rules || {}).members || {}; + }, + + // options passed to xml2js parser + options: { + explicitCharkey: false, // undocumented + trim: false, // trim the leading/trailing whitespace from text nodes + normalize: false, // trim interior whitespace inside text nodes + explicitRoot: false, // return the root node in the resulting object? + emptyTag: null, // the default value for empty nodes + explicitArray: true, // always put child nodes in an array + ignoreAttrs: false, // ignore attributes, only create text nodes + mergeAttrs: false, // merge attributes and child elements + validator: null // a callable validator + }, + + parse: function parse(xml) { + + var result = null; + var error = null; + var parser = new xml2js.Parser(this.options); + parser.parseString(xml, function (e, r) { + error = e; + result = r; + }); + + if (result) { + delete result.xmlns; + return this.parseStructure(result, this.rules); + } else if (error) { + throw AWS.util.error(error, {code: 'XMLParserError'}); + } else { // empty xml document + return this.parseStructure({}, this.rules); + } + }, + + parseStructure: function parseStructure(structure, rules) { + var data = {}; + + // force array members to always be present + AWS.util.each.call(this, rules, function(memberName, memberRules) { + if (memberRules.type === 'list') { + data[memberRules.name || memberName] = []; + } + }); + + AWS.util.each.call(this, structure, function (xmlName, value) { + var rule; + if (xmlName === '$') { + AWS.util.each.call(this, value, function (attrName, attrValue) { + if (rules[attrName]) { + rule = rules[attrName]; + data[rule.name || xmlName] = this.parseMember([attrValue], rule); + } + }); + } else { + rule = rules[xmlName] || {}; + data[rule.name || xmlName] = this.parseMember(value, rule); + } + }); + + return data; + }, + + parseMap: function parseMap(map, rules) { + var data = {}; + var keyRules = rules.keys || {}; + var valueRules = rules.members || {}; + var keyName = keyRules.name || 'key'; + var valueName = valueRules.name || 'value'; + if (!rules.flattened) { + map = map[0].entry; + } + AWS.util.arrayEach.call(this, map, function (entry) { + var value = this.parseMember(entry[valueName], valueRules); + data[entry[keyName][0]] = value; + }); + return data; + }, + + parseList: function parseList(list, rules) { + var data = []; + var memberRules = rules.members || {}; + var memberName = memberRules.name || 'member'; + if (rules.flattened) { + AWS.util.arrayEach.call(this, list, function (value) { + data.push(this.parseMember([value], memberRules)); + }); + } else { + AWS.util.arrayEach.call(this, list, function (member) { + AWS.util.arrayEach.call(this, member[memberName], function (value) { + data.push(this.parseMember([value], memberRules)); + }); + }); + } + return data; + }, + + parseMember: function parseMember(values, rules) { + if (values[0] === null) { + if (rules.type === 'structure') return {}; + if (rules.type === 'list') return []; + if (rules.type === 'map') return {}; + if (!rules.type || rules.type === 'string') return ''; + return null; + } + + if (values[0]['$'] && values[0]['$'].encoding === 'base64') { + return AWS.util.base64.decode(values[0]['_']); + } + + if (!rules.type) { + if (typeof values[0] === 'string') { + rules.type = 'string'; + } else if (values[0]['_']) { + rules.type = 'string'; + values = [values[0]['_']]; + } else { + rules.type = 'structure'; + } + } + + if (rules.type === 'string') { + return values[0] === null ? '' : values[0]; + } else if (rules.type === 'structure') { + return this.parseStructure(values[0], rules.members || {}); + } else if (rules.type === 'list') { + return this.parseList(values, rules); + } else if (rules.type === 'map') { + return this.parseMap(values, rules); + } else if (rules.type === 'integer') { + return parseInt(values[0], 10); + } else if (rules.type === 'float') { + return parseFloat(values[0]); + } else if (rules.type === 'timestamp') { + return AWS.util.date.parseTimestamp(values[0]); + } else if (rules.type === 'boolean') { + return values[0] === 'true'; + } else { + var msg = 'unhandled type: ' + rules.type; + throw AWS.util.error(new Error(msg), {code: 'XMLParserError'}); + } + } +}); diff --git a/node_modules/aws-sdk/node_modules/aws-sdk-apis/.npmignore b/node_modules/aws-sdk/node_modules/aws-sdk-apis/.npmignore new file mode 100644 index 00000000..f1bfdd2c --- /dev/null +++ b/node_modules/aws-sdk/node_modules/aws-sdk-apis/.npmignore @@ -0,0 +1,4 @@ +apis/source +samus.json +scripts +vendor diff --git a/node_modules/aws-sdk/node_modules/aws-sdk-apis/LICENSE.txt b/node_modules/aws-sdk/node_modules/aws-sdk-apis/LICENSE.txt new file mode 100644 index 00000000..ab7da479 --- /dev/null +++ b/node_modules/aws-sdk/node_modules/aws-sdk-apis/LICENSE.txt @@ -0,0 +1,12 @@ +Copyright 2012-2014 Amazon.com, Inc. or its affiliates. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"). You +may not use this file except in compliance with the License. A copy of +the License is located at + + http://aws.amazon.com/apache2.0/ + +or in the "license" file accompanying this file. This file is +distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +ANY KIND, either express or implied. See the License for the specific +language governing permissions and limitations under the License. diff --git a/node_modules/aws-sdk/node_modules/aws-sdk-apis/README.md b/node_modules/aws-sdk/node_modules/aws-sdk-apis/README.md new file mode 100644 index 00000000..f2897a14 --- /dev/null +++ b/node_modules/aws-sdk/node_modules/aws-sdk-apis/README.md @@ -0,0 +1,4 @@ +# AWS SDK for JavaScript APIs Package + +This package contains all of the API definitions used by the +[aws-sdk](https://github.com/aws/aws-sdk-js) package. diff --git a/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/AutoScaling-2011-01-01.json b/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/AutoScaling-2011-01-01.json new file mode 100644 index 00000000..85b56a09 --- /dev/null +++ b/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/AutoScaling-2011-01-01.json @@ -0,0 +1,1281 @@ +{ + "format": "query", + "apiVersion": "2011-01-01", + "endpointPrefix": "autoscaling", + "resultWrapped": true, + "serviceFullName": "Auto Scaling", + "signatureVersion": "v4", + "timestampFormat": "iso8601", + "operations": { + "attachInstances": { + "name": "AttachInstances", + "input": { + "type": "structure", + "members": { + "InstanceIds": { + "type": "list", + "members": {} + }, + "AutoScalingGroupName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "createAutoScalingGroup": { + "name": "CreateAutoScalingGroup", + "input": { + "type": "structure", + "members": { + "AutoScalingGroupName": { + "required": true + }, + "LaunchConfigurationName": {}, + "InstanceId": {}, + "MinSize": { + "type": "integer", + "required": true + }, + "MaxSize": { + "type": "integer", + "required": true + }, + "DesiredCapacity": { + "type": "integer" + }, + "DefaultCooldown": { + "type": "integer" + }, + "AvailabilityZones": { + "type": "list", + "members": {} + }, + "LoadBalancerNames": { + "type": "list", + "members": {} + }, + "HealthCheckType": {}, + "HealthCheckGracePeriod": { + "type": "integer" + }, + "PlacementGroup": {}, + "VPCZoneIdentifier": {}, + "TerminationPolicies": { + "type": "list", + "members": {} + }, + "Tags": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ResourceId": {}, + "ResourceType": {}, + "Key": { + "required": true + }, + "Value": {}, + "PropagateAtLaunch": { + "type": "boolean" + } + } + } + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "createLaunchConfiguration": { + "name": "CreateLaunchConfiguration", + "input": { + "type": "structure", + "members": { + "LaunchConfigurationName": { + "required": true + }, + "ImageId": {}, + "KeyName": {}, + "SecurityGroups": { + "type": "list", + "members": {} + }, + "UserData": {}, + "InstanceId": {}, + "InstanceType": {}, + "KernelId": {}, + "RamdiskId": {}, + "BlockDeviceMappings": { + "type": "list", + "members": { + "type": "structure", + "members": { + "VirtualName": {}, + "DeviceName": { + "required": true + }, + "Ebs": { + "type": "structure", + "members": { + "SnapshotId": {}, + "VolumeSize": { + "type": "integer" + }, + "VolumeType": {}, + "DeleteOnTermination": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + } + } + }, + "NoDevice": { + "type": "boolean" + } + } + } + }, + "InstanceMonitoring": { + "type": "structure", + "members": { + "Enabled": { + "type": "boolean" + } + } + }, + "SpotPrice": {}, + "IamInstanceProfile": {}, + "EbsOptimized": { + "type": "boolean" + }, + "AssociatePublicIpAddress": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "createOrUpdateTags": { + "name": "CreateOrUpdateTags", + "input": { + "type": "structure", + "members": { + "Tags": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ResourceId": {}, + "ResourceType": {}, + "Key": { + "required": true + }, + "Value": {}, + "PropagateAtLaunch": { + "type": "boolean" + } + } + }, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteAutoScalingGroup": { + "name": "DeleteAutoScalingGroup", + "input": { + "type": "structure", + "members": { + "AutoScalingGroupName": { + "required": true + }, + "ForceDelete": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteLaunchConfiguration": { + "name": "DeleteLaunchConfiguration", + "input": { + "type": "structure", + "members": { + "LaunchConfigurationName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteNotificationConfiguration": { + "name": "DeleteNotificationConfiguration", + "input": { + "type": "structure", + "members": { + "AutoScalingGroupName": { + "required": true + }, + "TopicARN": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deletePolicy": { + "name": "DeletePolicy", + "input": { + "type": "structure", + "members": { + "AutoScalingGroupName": {}, + "PolicyName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteScheduledAction": { + "name": "DeleteScheduledAction", + "input": { + "type": "structure", + "members": { + "AutoScalingGroupName": {}, + "ScheduledActionName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteTags": { + "name": "DeleteTags", + "input": { + "type": "structure", + "members": { + "Tags": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ResourceId": {}, + "ResourceType": {}, + "Key": { + "required": true + }, + "Value": {}, + "PropagateAtLaunch": { + "type": "boolean" + } + } + }, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "describeAccountLimits": { + "name": "DescribeAccountLimits", + "input": { + "type": "structure", + "members": {} + }, + "output": { + "type": "structure", + "members": { + "MaxNumberOfAutoScalingGroups": { + "type": "integer" + }, + "MaxNumberOfLaunchConfigurations": { + "type": "integer" + } + } + } + }, + "describeAdjustmentTypes": { + "name": "DescribeAdjustmentTypes", + "input": { + "type": "structure", + "members": {} + }, + "output": { + "type": "structure", + "members": { + "AdjustmentTypes": { + "type": "list", + "members": { + "type": "structure", + "members": { + "AdjustmentType": {} + } + } + } + } + } + }, + "describeAutoScalingGroups": { + "name": "DescribeAutoScalingGroups", + "input": { + "type": "structure", + "members": { + "AutoScalingGroupNames": { + "type": "list", + "members": {} + }, + "NextToken": {}, + "MaxRecords": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "AutoScalingGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "AutoScalingGroupName": {}, + "AutoScalingGroupARN": {}, + "LaunchConfigurationName": {}, + "MinSize": { + "type": "integer" + }, + "MaxSize": { + "type": "integer" + }, + "DesiredCapacity": { + "type": "integer" + }, + "DefaultCooldown": { + "type": "integer" + }, + "AvailabilityZones": { + "type": "list", + "members": {} + }, + "LoadBalancerNames": { + "type": "list", + "members": {} + }, + "HealthCheckType": {}, + "HealthCheckGracePeriod": { + "type": "integer" + }, + "Instances": { + "type": "list", + "members": { + "type": "structure", + "members": { + "InstanceId": {}, + "AvailabilityZone": {}, + "LifecycleState": {}, + "HealthStatus": {}, + "LaunchConfigurationName": {} + } + } + }, + "CreatedTime": { + "type": "timestamp" + }, + "SuspendedProcesses": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ProcessName": {}, + "SuspensionReason": {} + } + } + }, + "PlacementGroup": {}, + "VPCZoneIdentifier": {}, + "EnabledMetrics": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Metric": {}, + "Granularity": {} + } + } + }, + "Status": {}, + "Tags": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ResourceId": {}, + "ResourceType": {}, + "Key": {}, + "Value": {}, + "PropagateAtLaunch": { + "type": "boolean" + } + } + } + }, + "TerminationPolicies": { + "type": "list", + "members": {} + } + } + } + }, + "NextToken": {} + } + } + }, + "describeAutoScalingInstances": { + "name": "DescribeAutoScalingInstances", + "input": { + "type": "structure", + "members": { + "InstanceIds": { + "type": "list", + "members": {} + }, + "MaxRecords": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "AutoScalingInstances": { + "type": "list", + "members": { + "type": "structure", + "members": { + "InstanceId": {}, + "AutoScalingGroupName": {}, + "AvailabilityZone": {}, + "LifecycleState": {}, + "HealthStatus": {}, + "LaunchConfigurationName": {} + } + } + }, + "NextToken": {} + } + } + }, + "describeAutoScalingNotificationTypes": { + "name": "DescribeAutoScalingNotificationTypes", + "input": { + "type": "structure", + "members": {} + }, + "output": { + "type": "structure", + "members": { + "AutoScalingNotificationTypes": { + "type": "list", + "members": {} + } + } + } + }, + "describeLaunchConfigurations": { + "name": "DescribeLaunchConfigurations", + "input": { + "type": "structure", + "members": { + "LaunchConfigurationNames": { + "type": "list", + "members": {} + }, + "NextToken": {}, + "MaxRecords": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "LaunchConfigurations": { + "type": "list", + "members": { + "type": "structure", + "members": { + "LaunchConfigurationName": {}, + "LaunchConfigurationARN": {}, + "ImageId": {}, + "KeyName": {}, + "SecurityGroups": { + "type": "list", + "members": {} + }, + "UserData": {}, + "InstanceType": {}, + "KernelId": {}, + "RamdiskId": {}, + "BlockDeviceMappings": { + "type": "list", + "members": { + "type": "structure", + "members": { + "VirtualName": {}, + "DeviceName": {}, + "Ebs": { + "type": "structure", + "members": { + "SnapshotId": {}, + "VolumeSize": { + "type": "integer" + }, + "VolumeType": {}, + "DeleteOnTermination": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + } + } + }, + "NoDevice": { + "type": "boolean" + } + } + } + }, + "InstanceMonitoring": { + "type": "structure", + "members": { + "Enabled": { + "type": "boolean" + } + } + }, + "SpotPrice": {}, + "IamInstanceProfile": {}, + "CreatedTime": { + "type": "timestamp" + }, + "EbsOptimized": { + "type": "boolean" + }, + "AssociatePublicIpAddress": { + "type": "boolean" + } + } + } + }, + "NextToken": {} + } + } + }, + "describeMetricCollectionTypes": { + "name": "DescribeMetricCollectionTypes", + "input": { + "type": "structure", + "members": {} + }, + "output": { + "type": "structure", + "members": { + "Metrics": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Metric": {} + } + } + }, + "Granularities": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Granularity": {} + } + } + } + } + } + }, + "describeNotificationConfigurations": { + "name": "DescribeNotificationConfigurations", + "input": { + "type": "structure", + "members": { + "AutoScalingGroupNames": { + "type": "list", + "members": {} + }, + "NextToken": {}, + "MaxRecords": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "NotificationConfigurations": { + "type": "list", + "members": { + "type": "structure", + "members": { + "AutoScalingGroupName": {}, + "TopicARN": {}, + "NotificationType": {} + } + } + }, + "NextToken": {} + } + } + }, + "describePolicies": { + "name": "DescribePolicies", + "input": { + "type": "structure", + "members": { + "AutoScalingGroupName": {}, + "PolicyNames": { + "type": "list", + "members": {} + }, + "NextToken": {}, + "MaxRecords": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "ScalingPolicies": { + "type": "list", + "members": { + "type": "structure", + "members": { + "AutoScalingGroupName": {}, + "PolicyName": {}, + "ScalingAdjustment": { + "type": "integer" + }, + "AdjustmentType": {}, + "Cooldown": { + "type": "integer" + }, + "PolicyARN": {}, + "Alarms": { + "type": "list", + "members": { + "type": "structure", + "members": { + "AlarmName": {}, + "AlarmARN": {} + } + } + }, + "MinAdjustmentStep": { + "type": "integer" + } + } + } + }, + "NextToken": {} + } + } + }, + "describeScalingActivities": { + "name": "DescribeScalingActivities", + "input": { + "type": "structure", + "members": { + "ActivityIds": { + "type": "list", + "members": {} + }, + "AutoScalingGroupName": {}, + "MaxRecords": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "Activities": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ActivityId": {}, + "AutoScalingGroupName": {}, + "Description": {}, + "Cause": {}, + "StartTime": { + "type": "timestamp" + }, + "EndTime": { + "type": "timestamp" + }, + "StatusCode": {}, + "StatusMessage": {}, + "Progress": { + "type": "integer" + }, + "Details": {} + } + } + }, + "NextToken": {} + } + } + }, + "describeScalingProcessTypes": { + "name": "DescribeScalingProcessTypes", + "input": { + "type": "structure", + "members": {} + }, + "output": { + "type": "structure", + "members": { + "Processes": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ProcessName": {} + } + } + } + } + } + }, + "describeScheduledActions": { + "name": "DescribeScheduledActions", + "input": { + "type": "structure", + "members": { + "AutoScalingGroupName": {}, + "ScheduledActionNames": { + "type": "list", + "members": {} + }, + "StartTime": { + "type": "timestamp" + }, + "EndTime": { + "type": "timestamp" + }, + "NextToken": {}, + "MaxRecords": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "ScheduledUpdateGroupActions": { + "type": "list", + "members": { + "type": "structure", + "members": { + "AutoScalingGroupName": {}, + "ScheduledActionName": {}, + "ScheduledActionARN": {}, + "Time": { + "type": "timestamp" + }, + "StartTime": { + "type": "timestamp" + }, + "EndTime": { + "type": "timestamp" + }, + "Recurrence": {}, + "MinSize": { + "type": "integer" + }, + "MaxSize": { + "type": "integer" + }, + "DesiredCapacity": { + "type": "integer" + } + } + } + }, + "NextToken": {} + } + } + }, + "describeTags": { + "name": "DescribeTags", + "input": { + "type": "structure", + "members": { + "Filters": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": {}, + "Values": { + "type": "list", + "members": {} + } + } + } + }, + "NextToken": {}, + "MaxRecords": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "Tags": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ResourceId": {}, + "ResourceType": {}, + "Key": {}, + "Value": {}, + "PropagateAtLaunch": { + "type": "boolean" + } + } + } + }, + "NextToken": {} + } + } + }, + "describeTerminationPolicyTypes": { + "name": "DescribeTerminationPolicyTypes", + "input": { + "type": "structure", + "members": {} + }, + "output": { + "type": "structure", + "members": { + "TerminationPolicyTypes": { + "type": "list", + "members": {} + } + } + } + }, + "disableMetricsCollection": { + "name": "DisableMetricsCollection", + "input": { + "type": "structure", + "members": { + "AutoScalingGroupName": { + "required": true + }, + "Metrics": { + "type": "list", + "members": {} + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "enableMetricsCollection": { + "name": "EnableMetricsCollection", + "input": { + "type": "structure", + "members": { + "AutoScalingGroupName": { + "required": true + }, + "Metrics": { + "type": "list", + "members": {} + }, + "Granularity": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "executePolicy": { + "name": "ExecutePolicy", + "input": { + "type": "structure", + "members": { + "AutoScalingGroupName": {}, + "PolicyName": { + "required": true + }, + "HonorCooldown": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "putNotificationConfiguration": { + "name": "PutNotificationConfiguration", + "input": { + "type": "structure", + "members": { + "AutoScalingGroupName": { + "required": true + }, + "TopicARN": { + "required": true + }, + "NotificationTypes": { + "type": "list", + "members": {}, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "putScalingPolicy": { + "name": "PutScalingPolicy", + "input": { + "type": "structure", + "members": { + "AutoScalingGroupName": { + "required": true + }, + "PolicyName": { + "required": true + }, + "ScalingAdjustment": { + "type": "integer", + "required": true + }, + "AdjustmentType": { + "required": true + }, + "Cooldown": { + "type": "integer" + }, + "MinAdjustmentStep": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "PolicyARN": {} + } + } + }, + "putScheduledUpdateGroupAction": { + "name": "PutScheduledUpdateGroupAction", + "input": { + "type": "structure", + "members": { + "AutoScalingGroupName": { + "required": true + }, + "ScheduledActionName": { + "required": true + }, + "Time": { + "type": "timestamp" + }, + "StartTime": { + "type": "timestamp" + }, + "EndTime": { + "type": "timestamp" + }, + "Recurrence": {}, + "MinSize": { + "type": "integer" + }, + "MaxSize": { + "type": "integer" + }, + "DesiredCapacity": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "resumeProcesses": { + "name": "ResumeProcesses", + "input": { + "type": "structure", + "members": { + "AutoScalingGroupName": { + "required": true + }, + "ScalingProcesses": { + "type": "list", + "members": {} + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "setDesiredCapacity": { + "name": "SetDesiredCapacity", + "input": { + "type": "structure", + "members": { + "AutoScalingGroupName": { + "required": true + }, + "DesiredCapacity": { + "type": "integer", + "required": true + }, + "HonorCooldown": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "setInstanceHealth": { + "name": "SetInstanceHealth", + "input": { + "type": "structure", + "members": { + "InstanceId": { + "required": true + }, + "HealthStatus": { + "required": true + }, + "ShouldRespectGracePeriod": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "suspendProcesses": { + "name": "SuspendProcesses", + "input": { + "type": "structure", + "members": { + "AutoScalingGroupName": { + "required": true + }, + "ScalingProcesses": { + "type": "list", + "members": {} + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "terminateInstanceInAutoScalingGroup": { + "name": "TerminateInstanceInAutoScalingGroup", + "input": { + "type": "structure", + "members": { + "InstanceId": { + "required": true + }, + "ShouldDecrementDesiredCapacity": { + "type": "boolean", + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "Activity": { + "type": "structure", + "members": { + "ActivityId": {}, + "AutoScalingGroupName": {}, + "Description": {}, + "Cause": {}, + "StartTime": { + "type": "timestamp" + }, + "EndTime": { + "type": "timestamp" + }, + "StatusCode": {}, + "StatusMessage": {}, + "Progress": { + "type": "integer" + }, + "Details": {} + } + } + } + } + }, + "updateAutoScalingGroup": { + "name": "UpdateAutoScalingGroup", + "input": { + "type": "structure", + "members": { + "AutoScalingGroupName": { + "required": true + }, + "LaunchConfigurationName": {}, + "MinSize": { + "type": "integer" + }, + "MaxSize": { + "type": "integer" + }, + "DesiredCapacity": { + "type": "integer" + }, + "DefaultCooldown": { + "type": "integer" + }, + "AvailabilityZones": { + "type": "list", + "members": {} + }, + "HealthCheckType": {}, + "HealthCheckGracePeriod": { + "type": "integer" + }, + "PlacementGroup": {}, + "VPCZoneIdentifier": {}, + "TerminationPolicies": { + "type": "list", + "members": {} + } + } + }, + "output": { + "type": "structure", + "members": {} + } + } + }, + "pagination": { + "describeAutoScalingGroups": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "limitKey": "MaxRecords", + "resultKey": "AutoScalingGroups" + }, + "describeAutoScalingInstances": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "limitKey": "MaxRecords", + "resultKey": "AutoScalingInstances" + }, + "describeLaunchConfigurations": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "limitKey": "MaxRecords", + "resultKey": "LaunchConfigurations" + }, + "describeNotificationConfigurations": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "limitKey": "MaxRecords", + "resultKey": "NotificationConfigurations" + }, + "describePolicies": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "limitKey": "MaxRecords", + "resultKey": "ScalingPolicies" + }, + "describeScalingActivities": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "limitKey": "MaxRecords", + "resultKey": "Activities" + }, + "describeScheduledActions": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "limitKey": "MaxRecords", + "resultKey": "ScheduledUpdateGroupActions" + }, + "describeTags": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "limitKey": "MaxRecords", + "resultKey": "Tags" + } + } +} \ No newline at end of file diff --git a/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/CloudFormation-2010-05-15.json b/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/CloudFormation-2010-05-15.json new file mode 100644 index 00000000..ab9c4c92 --- /dev/null +++ b/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/CloudFormation-2010-05-15.json @@ -0,0 +1,533 @@ +{ + "format": "query", + "apiVersion": "2010-05-15", + "endpointPrefix": "cloudformation", + "resultWrapped": true, + "serviceFullName": "AWS CloudFormation", + "signatureVersion": "v4", + "timestampFormat": "iso8601", + "operations": { + "cancelUpdateStack": { + "name": "CancelUpdateStack", + "input": { + "type": "structure", + "members": { + "StackName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "createStack": { + "name": "CreateStack", + "input": { + "type": "structure", + "members": { + "StackName": { + "required": true + }, + "TemplateBody": {}, + "TemplateURL": {}, + "Parameters": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ParameterKey": {}, + "ParameterValue": {} + } + } + }, + "DisableRollback": { + "type": "boolean" + }, + "TimeoutInMinutes": { + "type": "integer" + }, + "NotificationARNs": { + "type": "list", + "members": {} + }, + "Capabilities": { + "type": "list", + "members": {} + }, + "OnFailure": {}, + "StackPolicyBody": {}, + "StackPolicyURL": {}, + "Tags": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Key": {}, + "Value": {} + } + } + } + } + }, + "output": { + "type": "structure", + "members": { + "StackId": {} + } + } + }, + "deleteStack": { + "name": "DeleteStack", + "input": { + "type": "structure", + "members": { + "StackName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "describeStackEvents": { + "name": "DescribeStackEvents", + "input": { + "type": "structure", + "members": { + "StackName": {}, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "StackEvents": { + "type": "list", + "members": { + "type": "structure", + "members": { + "StackId": {}, + "EventId": {}, + "StackName": {}, + "LogicalResourceId": {}, + "PhysicalResourceId": {}, + "ResourceType": {}, + "Timestamp": { + "type": "timestamp" + }, + "ResourceStatus": {}, + "ResourceStatusReason": {}, + "ResourceProperties": {} + } + } + }, + "NextToken": {} + } + } + }, + "describeStackResource": { + "name": "DescribeStackResource", + "input": { + "type": "structure", + "members": { + "StackName": { + "required": true + }, + "LogicalResourceId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "StackResourceDetail": { + "type": "structure", + "members": { + "StackName": {}, + "StackId": {}, + "LogicalResourceId": {}, + "PhysicalResourceId": {}, + "ResourceType": {}, + "LastUpdatedTimestamp": { + "type": "timestamp" + }, + "ResourceStatus": {}, + "ResourceStatusReason": {}, + "Description": {}, + "Metadata": {} + } + } + } + } + }, + "describeStackResources": { + "name": "DescribeStackResources", + "input": { + "type": "structure", + "members": { + "StackName": {}, + "LogicalResourceId": {}, + "PhysicalResourceId": {} + } + }, + "output": { + "type": "structure", + "members": { + "StackResources": { + "type": "list", + "members": { + "type": "structure", + "members": { + "StackName": {}, + "StackId": {}, + "LogicalResourceId": {}, + "PhysicalResourceId": {}, + "ResourceType": {}, + "Timestamp": { + "type": "timestamp" + }, + "ResourceStatus": {}, + "ResourceStatusReason": {}, + "Description": {} + } + } + } + } + } + }, + "describeStacks": { + "name": "DescribeStacks", + "input": { + "type": "structure", + "members": { + "StackName": {}, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "Stacks": { + "type": "list", + "members": { + "type": "structure", + "members": { + "StackId": {}, + "StackName": {}, + "Description": {}, + "Parameters": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ParameterKey": {}, + "ParameterValue": {} + } + } + }, + "CreationTime": { + "type": "timestamp" + }, + "LastUpdatedTime": { + "type": "timestamp" + }, + "StackStatus": {}, + "StackStatusReason": {}, + "DisableRollback": { + "type": "boolean" + }, + "NotificationARNs": { + "type": "list", + "members": {} + }, + "TimeoutInMinutes": { + "type": "integer" + }, + "Capabilities": { + "type": "list", + "members": {} + }, + "Outputs": { + "type": "list", + "members": { + "type": "structure", + "members": { + "OutputKey": {}, + "OutputValue": {}, + "Description": {} + } + } + }, + "Tags": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Key": {}, + "Value": {} + } + } + } + } + } + }, + "NextToken": {} + } + } + }, + "estimateTemplateCost": { + "name": "EstimateTemplateCost", + "input": { + "type": "structure", + "members": { + "TemplateBody": {}, + "TemplateURL": {}, + "Parameters": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ParameterKey": {}, + "ParameterValue": {} + } + } + } + } + }, + "output": { + "type": "structure", + "members": { + "Url": {} + } + } + }, + "getStackPolicy": { + "name": "GetStackPolicy", + "input": { + "type": "structure", + "members": { + "StackName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "StackPolicyBody": {} + } + } + }, + "getTemplate": { + "name": "GetTemplate", + "input": { + "type": "structure", + "members": { + "StackName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "TemplateBody": {} + } + } + }, + "listStackResources": { + "name": "ListStackResources", + "input": { + "type": "structure", + "members": { + "StackName": { + "required": true + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "StackResourceSummaries": { + "type": "list", + "members": { + "type": "structure", + "members": { + "LogicalResourceId": {}, + "PhysicalResourceId": {}, + "ResourceType": {}, + "LastUpdatedTimestamp": { + "type": "timestamp" + }, + "ResourceStatus": {}, + "ResourceStatusReason": {} + } + } + }, + "NextToken": {} + } + } + }, + "listStacks": { + "name": "ListStacks", + "input": { + "type": "structure", + "members": { + "NextToken": {}, + "StackStatusFilter": { + "type": "list", + "members": {} + } + } + }, + "output": { + "type": "structure", + "members": { + "StackSummaries": { + "type": "list", + "members": { + "type": "structure", + "members": { + "StackId": {}, + "StackName": {}, + "TemplateDescription": {}, + "CreationTime": { + "type": "timestamp" + }, + "LastUpdatedTime": { + "type": "timestamp" + }, + "DeletionTime": { + "type": "timestamp" + }, + "StackStatus": {}, + "StackStatusReason": {} + } + } + }, + "NextToken": {} + } + } + }, + "setStackPolicy": { + "name": "SetStackPolicy", + "input": { + "type": "structure", + "members": { + "StackName": { + "required": true + }, + "StackPolicyBody": {}, + "StackPolicyURL": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "updateStack": { + "name": "UpdateStack", + "input": { + "type": "structure", + "members": { + "StackName": { + "required": true + }, + "TemplateBody": {}, + "TemplateURL": {}, + "StackPolicyDuringUpdateBody": {}, + "StackPolicyDuringUpdateURL": {}, + "Parameters": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ParameterKey": {}, + "ParameterValue": {} + } + } + }, + "Capabilities": { + "type": "list", + "members": {} + }, + "StackPolicyBody": {}, + "StackPolicyURL": {} + } + }, + "output": { + "type": "structure", + "members": { + "StackId": {} + } + } + }, + "validateTemplate": { + "name": "ValidateTemplate", + "input": { + "type": "structure", + "members": { + "TemplateBody": {}, + "TemplateURL": {} + } + }, + "output": { + "type": "structure", + "members": { + "Parameters": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ParameterKey": {}, + "DefaultValue": {}, + "NoEcho": { + "type": "boolean" + }, + "Description": {} + } + } + }, + "Description": {}, + "Capabilities": { + "type": "list", + "members": {} + }, + "CapabilitiesReason": {} + } + } + } + }, + "pagination": { + "describeStackEvents": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "resultKey": "StackEvents" + }, + "describeStackResources": { + "resultKey": "StackResources" + }, + "describeStacks": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "resultKey": "Stacks" + }, + "listStackResources": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "resultKey": "StackResourceSummaries" + }, + "listStacks": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "resultKey": "StackSummaries" + } + } +} \ No newline at end of file diff --git a/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/CloudFront-2014-01-31.json b/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/CloudFront-2014-01-31.json new file mode 100644 index 00000000..65a75957 --- /dev/null +++ b/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/CloudFront-2014-01-31.json @@ -0,0 +1,3653 @@ +{ + "format": "rest-xml", + "apiVersion": "2014-01-31", + "endpointPrefix": "cloudfront", + "globalEndpoint": "cloudfront.amazonaws.com", + "serviceAbbreviation": "CloudFront", + "serviceFullName": "Amazon CloudFront", + "signatureVersion": "v4", + "timestampFormat": "iso8601", + "xmlnamespace": "http://cloudfront.amazonaws.com/doc/2014-01-31/", + "operations": { + "createCloudFrontOriginAccessIdentity": { + "name": "CreateCloudFrontOriginAccessIdentity2014_01_31", + "http": { + "uri": "/2014-01-31/origin-access-identity/cloudfront", + "method": "POST" + }, + "input": { + "payload": "CloudFrontOriginAccessIdentityConfig", + "type": "structure", + "members": { + "CloudFrontOriginAccessIdentityConfig": { + "type": "structure", + "members": { + "CallerReference": { + "required": true + }, + "Comment": { + "required": true + } + }, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "Location": { + "location": "header", + "name": "Location" + }, + "ETag": { + "location": "header", + "name": "ETag" + }, + "Id": {}, + "S3CanonicalUserId": {}, + "CloudFrontOriginAccessIdentityConfig": { + "type": "structure", + "members": { + "CallerReference": {}, + "Comment": {} + } + } + } + } + }, + "createDistribution": { + "name": "CreateDistribution2014_01_31", + "http": { + "uri": "/2014-01-31/distribution", + "method": "POST" + }, + "input": { + "payload": "DistributionConfig", + "type": "structure", + "members": { + "DistributionConfig": { + "type": "structure", + "members": { + "CallerReference": { + "required": true + }, + "Aliases": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer", + "required": true + }, + "Items": { + "type": "list", + "members": { + "name": "CNAME" + } + } + }, + "required": true + }, + "DefaultRootObject": { + "required": true + }, + "Origins": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer", + "required": true + }, + "Items": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Id": { + "required": true + }, + "DomainName": { + "required": true + }, + "S3OriginConfig": { + "type": "structure", + "members": { + "OriginAccessIdentity": { + "required": true + } + } + }, + "CustomOriginConfig": { + "type": "structure", + "members": { + "HTTPPort": { + "type": "integer", + "required": true + }, + "HTTPSPort": { + "type": "integer", + "required": true + }, + "OriginProtocolPolicy": { + "required": true + } + } + } + }, + "name": "Origin" + } + } + }, + "required": true + }, + "DefaultCacheBehavior": { + "type": "structure", + "members": { + "TargetOriginId": { + "required": true + }, + "ForwardedValues": { + "type": "structure", + "members": { + "QueryString": { + "type": "boolean", + "required": true + }, + "Cookies": { + "type": "structure", + "members": { + "Forward": { + "required": true + }, + "WhitelistedNames": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer", + "required": true + }, + "Items": { + "type": "list", + "members": { + "name": "Name" + } + } + } + } + }, + "required": true + } + }, + "required": true + }, + "TrustedSigners": { + "type": "structure", + "members": { + "Enabled": { + "type": "boolean", + "required": true + }, + "Quantity": { + "type": "integer", + "required": true + }, + "Items": { + "type": "list", + "members": { + "name": "AwsAccountNumber" + } + } + }, + "required": true + }, + "ViewerProtocolPolicy": { + "required": true + }, + "MinTTL": { + "type": "integer", + "required": true + }, + "AllowedMethods": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer", + "required": true + }, + "Items": { + "type": "list", + "members": { + "name": "Method" + } + } + } + }, + "SmoothStreaming": { + "type": "boolean" + } + }, + "required": true + }, + "CacheBehaviors": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer", + "required": true + }, + "Items": { + "type": "list", + "members": { + "type": "structure", + "members": { + "PathPattern": { + "required": true + }, + "TargetOriginId": { + "required": true + }, + "ForwardedValues": { + "type": "structure", + "members": { + "QueryString": { + "type": "boolean", + "required": true + }, + "Cookies": { + "type": "structure", + "members": { + "Forward": { + "required": true + }, + "WhitelistedNames": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer", + "required": true + }, + "Items": { + "type": "list", + "members": { + "name": "Name" + } + } + } + } + }, + "required": true + } + }, + "required": true + }, + "TrustedSigners": { + "type": "structure", + "members": { + "Enabled": { + "type": "boolean", + "required": true + }, + "Quantity": { + "type": "integer", + "required": true + }, + "Items": { + "type": "list", + "members": { + "name": "AwsAccountNumber" + } + } + }, + "required": true + }, + "ViewerProtocolPolicy": { + "required": true + }, + "MinTTL": { + "type": "integer", + "required": true + }, + "AllowedMethods": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer", + "required": true + }, + "Items": { + "type": "list", + "members": { + "name": "Method" + } + } + } + }, + "SmoothStreaming": { + "type": "boolean" + } + }, + "name": "CacheBehavior" + } + } + }, + "required": true + }, + "CustomErrorResponses": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer", + "required": true + }, + "Items": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ErrorCode": { + "type": "integer", + "required": true + }, + "ResponsePagePath": {}, + "ResponseCode": {}, + "ErrorCachingMinTTL": { + "type": "integer" + } + }, + "name": "CustomErrorResponse" + } + } + } + }, + "Comment": { + "required": true + }, + "Logging": { + "type": "structure", + "members": { + "Enabled": { + "type": "boolean", + "required": true + }, + "IncludeCookies": { + "type": "boolean", + "required": true + }, + "Bucket": { + "required": true + }, + "Prefix": { + "required": true + } + }, + "required": true + }, + "PriceClass": { + "required": true + }, + "Enabled": { + "type": "boolean", + "required": true + }, + "ViewerCertificate": { + "type": "structure", + "members": { + "IAMCertificateId": {}, + "CloudFrontDefaultCertificate": { + "type": "boolean" + }, + "SSLSupportMethod": {} + } + }, + "Restrictions": { + "type": "structure", + "members": { + "GeoRestriction": { + "type": "structure", + "members": { + "RestrictionType": { + "required": true + }, + "Quantity": { + "type": "integer", + "required": true + }, + "Items": { + "type": "list", + "members": { + "name": "Location" + } + } + }, + "required": true + } + } + } + }, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "Location": { + "location": "header", + "name": "Location" + }, + "ETag": { + "location": "header", + "name": "ETag" + }, + "Id": {}, + "Status": {}, + "LastModifiedTime": { + "type": "timestamp" + }, + "InProgressInvalidationBatches": { + "type": "integer" + }, + "DomainName": {}, + "ActiveTrustedSigners": { + "type": "structure", + "members": { + "Enabled": { + "type": "boolean" + }, + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "type": "structure", + "members": { + "AwsAccountNumber": {}, + "KeyPairIds": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "name": "KeyPairId" + } + } + } + } + }, + "name": "Signer" + } + } + } + }, + "DistributionConfig": { + "type": "structure", + "members": { + "CallerReference": {}, + "Aliases": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "name": "CNAME" + } + } + } + }, + "DefaultRootObject": {}, + "Origins": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Id": {}, + "DomainName": {}, + "S3OriginConfig": { + "type": "structure", + "members": { + "OriginAccessIdentity": {} + } + }, + "CustomOriginConfig": { + "type": "structure", + "members": { + "HTTPPort": { + "type": "integer" + }, + "HTTPSPort": { + "type": "integer" + }, + "OriginProtocolPolicy": {} + } + } + }, + "name": "Origin" + } + } + } + }, + "DefaultCacheBehavior": { + "type": "structure", + "members": { + "TargetOriginId": {}, + "ForwardedValues": { + "type": "structure", + "members": { + "QueryString": { + "type": "boolean" + }, + "Cookies": { + "type": "structure", + "members": { + "Forward": {}, + "WhitelistedNames": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "name": "Name" + } + } + } + } + } + } + } + }, + "TrustedSigners": { + "type": "structure", + "members": { + "Enabled": { + "type": "boolean" + }, + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "name": "AwsAccountNumber" + } + } + } + }, + "ViewerProtocolPolicy": {}, + "MinTTL": { + "type": "integer" + }, + "AllowedMethods": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "name": "Method" + } + } + } + }, + "SmoothStreaming": { + "type": "boolean" + } + } + }, + "CacheBehaviors": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "type": "structure", + "members": { + "PathPattern": {}, + "TargetOriginId": {}, + "ForwardedValues": { + "type": "structure", + "members": { + "QueryString": { + "type": "boolean" + }, + "Cookies": { + "type": "structure", + "members": { + "Forward": {}, + "WhitelistedNames": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "name": "Name" + } + } + } + } + } + } + } + }, + "TrustedSigners": { + "type": "structure", + "members": { + "Enabled": { + "type": "boolean" + }, + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "name": "AwsAccountNumber" + } + } + } + }, + "ViewerProtocolPolicy": {}, + "MinTTL": { + "type": "integer" + }, + "AllowedMethods": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "name": "Method" + } + } + } + }, + "SmoothStreaming": { + "type": "boolean" + } + }, + "name": "CacheBehavior" + } + } + } + }, + "CustomErrorResponses": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ErrorCode": { + "type": "integer" + }, + "ResponsePagePath": {}, + "ResponseCode": {}, + "ErrorCachingMinTTL": { + "type": "integer" + } + }, + "name": "CustomErrorResponse" + } + } + } + }, + "Comment": {}, + "Logging": { + "type": "structure", + "members": { + "Enabled": { + "type": "boolean" + }, + "IncludeCookies": { + "type": "boolean" + }, + "Bucket": {}, + "Prefix": {} + } + }, + "PriceClass": {}, + "Enabled": { + "type": "boolean" + }, + "ViewerCertificate": { + "type": "structure", + "members": { + "IAMCertificateId": {}, + "CloudFrontDefaultCertificate": { + "type": "boolean" + }, + "SSLSupportMethod": {} + } + }, + "Restrictions": { + "type": "structure", + "members": { + "GeoRestriction": { + "type": "structure", + "members": { + "RestrictionType": {}, + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "name": "Location" + } + } + } + } + } + } + } + } + } + } + }, + "createInvalidation": { + "name": "CreateInvalidation2014_01_31", + "http": { + "uri": "/2014-01-31/distribution/{DistributionId}/invalidation", + "method": "POST" + }, + "input": { + "payload": "InvalidationBatch", + "type": "structure", + "members": { + "DistributionId": { + "required": true, + "location": "uri" + }, + "InvalidationBatch": { + "type": "structure", + "members": { + "Paths": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer", + "required": true + }, + "Items": { + "type": "list", + "members": { + "name": "Path" + } + } + }, + "required": true + }, + "CallerReference": { + "required": true + } + }, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "Location": { + "location": "header", + "name": "Location" + }, + "Id": {}, + "Status": {}, + "CreateTime": { + "type": "timestamp" + }, + "InvalidationBatch": { + "type": "structure", + "members": { + "Paths": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "name": "Path" + } + } + } + }, + "CallerReference": {} + } + } + } + } + }, + "createStreamingDistribution": { + "name": "CreateStreamingDistribution2014_01_31", + "http": { + "uri": "/2014-01-31/streaming-distribution", + "method": "POST" + }, + "input": { + "payload": "StreamingDistributionConfig", + "type": "structure", + "members": { + "StreamingDistributionConfig": { + "type": "structure", + "members": { + "CallerReference": { + "required": true + }, + "S3Origin": { + "type": "structure", + "members": { + "DomainName": { + "required": true + }, + "OriginAccessIdentity": { + "required": true + } + }, + "required": true + }, + "Aliases": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer", + "required": true + }, + "Items": { + "type": "list", + "members": { + "name": "CNAME" + } + } + }, + "required": true + }, + "Comment": { + "required": true + }, + "Logging": { + "type": "structure", + "members": { + "Enabled": { + "type": "boolean", + "required": true + }, + "Bucket": { + "required": true + }, + "Prefix": { + "required": true + } + }, + "required": true + }, + "TrustedSigners": { + "type": "structure", + "members": { + "Enabled": { + "type": "boolean", + "required": true + }, + "Quantity": { + "type": "integer", + "required": true + }, + "Items": { + "type": "list", + "members": { + "name": "AwsAccountNumber" + } + } + }, + "required": true + }, + "PriceClass": { + "required": true + }, + "Enabled": { + "type": "boolean", + "required": true + } + }, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "Location": { + "location": "header", + "name": "Location" + }, + "ETag": { + "location": "header", + "name": "ETag" + }, + "Id": {}, + "Status": {}, + "LastModifiedTime": { + "type": "timestamp" + }, + "DomainName": {}, + "ActiveTrustedSigners": { + "type": "structure", + "members": { + "Enabled": { + "type": "boolean" + }, + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "type": "structure", + "members": { + "AwsAccountNumber": {}, + "KeyPairIds": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "name": "KeyPairId" + } + } + } + } + }, + "name": "Signer" + } + } + } + }, + "StreamingDistributionConfig": { + "type": "structure", + "members": { + "CallerReference": {}, + "S3Origin": { + "type": "structure", + "members": { + "DomainName": {}, + "OriginAccessIdentity": {} + } + }, + "Aliases": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "name": "CNAME" + } + } + } + }, + "Comment": {}, + "Logging": { + "type": "structure", + "members": { + "Enabled": { + "type": "boolean" + }, + "Bucket": {}, + "Prefix": {} + } + }, + "TrustedSigners": { + "type": "structure", + "members": { + "Enabled": { + "type": "boolean" + }, + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "name": "AwsAccountNumber" + } + } + } + }, + "PriceClass": {}, + "Enabled": { + "type": "boolean" + } + } + } + } + } + }, + "deleteCloudFrontOriginAccessIdentity": { + "name": "DeleteCloudFrontOriginAccessIdentity2014_01_31", + "http": { + "uri": "/2014-01-31/origin-access-identity/cloudfront/{Id}", + "method": "DELETE" + }, + "input": { + "type": "structure", + "members": { + "Id": { + "location": "uri" + }, + "IfMatch": { + "location": "header", + "name": "If-Match" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteDistribution": { + "name": "DeleteDistribution2014_01_31", + "http": { + "uri": "/2014-01-31/distribution/{Id}", + "method": "DELETE" + }, + "input": { + "type": "structure", + "members": { + "Id": { + "location": "uri" + }, + "IfMatch": { + "location": "header", + "name": "If-Match" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteStreamingDistribution": { + "name": "DeleteStreamingDistribution2014_01_31", + "http": { + "uri": "/2014-01-31/streaming-distribution/{Id}", + "method": "DELETE" + }, + "input": { + "type": "structure", + "members": { + "Id": { + "location": "uri" + }, + "IfMatch": { + "location": "header", + "name": "If-Match" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "getCloudFrontOriginAccessIdentity": { + "name": "GetCloudFrontOriginAccessIdentity2014_01_31", + "http": { + "uri": "/2014-01-31/origin-access-identity/cloudfront/{Id}", + "method": "GET" + }, + "input": { + "type": "structure", + "members": { + "Id": { + "location": "uri" + } + } + }, + "output": { + "type": "structure", + "members": { + "ETag": { + "location": "header", + "name": "ETag" + }, + "Id": {}, + "S3CanonicalUserId": {}, + "CloudFrontOriginAccessIdentityConfig": { + "type": "structure", + "members": { + "CallerReference": {}, + "Comment": {} + } + } + } + } + }, + "getCloudFrontOriginAccessIdentityConfig": { + "name": "GetCloudFrontOriginAccessIdentityConfig2014_01_31", + "http": { + "uri": "/2014-01-31/origin-access-identity/cloudfront/{Id}/config", + "method": "GET" + }, + "input": { + "type": "structure", + "members": { + "Id": { + "location": "uri" + } + } + }, + "output": { + "type": "structure", + "members": { + "ETag": { + "location": "header", + "name": "ETag" + }, + "CallerReference": {}, + "Comment": {} + } + } + }, + "getDistribution": { + "name": "GetDistribution2014_01_31", + "http": { + "uri": "/2014-01-31/distribution/{Id}", + "method": "GET" + }, + "input": { + "type": "structure", + "members": { + "Id": { + "location": "uri" + } + } + }, + "output": { + "type": "structure", + "members": { + "ETag": { + "location": "header", + "name": "ETag" + }, + "Id": {}, + "Status": {}, + "LastModifiedTime": { + "type": "timestamp" + }, + "InProgressInvalidationBatches": { + "type": "integer" + }, + "DomainName": {}, + "ActiveTrustedSigners": { + "type": "structure", + "members": { + "Enabled": { + "type": "boolean" + }, + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "type": "structure", + "members": { + "AwsAccountNumber": {}, + "KeyPairIds": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "name": "KeyPairId" + } + } + } + } + }, + "name": "Signer" + } + } + } + }, + "DistributionConfig": { + "type": "structure", + "members": { + "CallerReference": {}, + "Aliases": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "name": "CNAME" + } + } + } + }, + "DefaultRootObject": {}, + "Origins": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Id": {}, + "DomainName": {}, + "S3OriginConfig": { + "type": "structure", + "members": { + "OriginAccessIdentity": {} + } + }, + "CustomOriginConfig": { + "type": "structure", + "members": { + "HTTPPort": { + "type": "integer" + }, + "HTTPSPort": { + "type": "integer" + }, + "OriginProtocolPolicy": {} + } + } + }, + "name": "Origin" + } + } + } + }, + "DefaultCacheBehavior": { + "type": "structure", + "members": { + "TargetOriginId": {}, + "ForwardedValues": { + "type": "structure", + "members": { + "QueryString": { + "type": "boolean" + }, + "Cookies": { + "type": "structure", + "members": { + "Forward": {}, + "WhitelistedNames": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "name": "Name" + } + } + } + } + } + } + } + }, + "TrustedSigners": { + "type": "structure", + "members": { + "Enabled": { + "type": "boolean" + }, + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "name": "AwsAccountNumber" + } + } + } + }, + "ViewerProtocolPolicy": {}, + "MinTTL": { + "type": "integer" + }, + "AllowedMethods": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "name": "Method" + } + } + } + }, + "SmoothStreaming": { + "type": "boolean" + } + } + }, + "CacheBehaviors": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "type": "structure", + "members": { + "PathPattern": {}, + "TargetOriginId": {}, + "ForwardedValues": { + "type": "structure", + "members": { + "QueryString": { + "type": "boolean" + }, + "Cookies": { + "type": "structure", + "members": { + "Forward": {}, + "WhitelistedNames": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "name": "Name" + } + } + } + } + } + } + } + }, + "TrustedSigners": { + "type": "structure", + "members": { + "Enabled": { + "type": "boolean" + }, + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "name": "AwsAccountNumber" + } + } + } + }, + "ViewerProtocolPolicy": {}, + "MinTTL": { + "type": "integer" + }, + "AllowedMethods": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "name": "Method" + } + } + } + }, + "SmoothStreaming": { + "type": "boolean" + } + }, + "name": "CacheBehavior" + } + } + } + }, + "CustomErrorResponses": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ErrorCode": { + "type": "integer" + }, + "ResponsePagePath": {}, + "ResponseCode": {}, + "ErrorCachingMinTTL": { + "type": "integer" + } + }, + "name": "CustomErrorResponse" + } + } + } + }, + "Comment": {}, + "Logging": { + "type": "structure", + "members": { + "Enabled": { + "type": "boolean" + }, + "IncludeCookies": { + "type": "boolean" + }, + "Bucket": {}, + "Prefix": {} + } + }, + "PriceClass": {}, + "Enabled": { + "type": "boolean" + }, + "ViewerCertificate": { + "type": "structure", + "members": { + "IAMCertificateId": {}, + "CloudFrontDefaultCertificate": { + "type": "boolean" + }, + "SSLSupportMethod": {} + } + }, + "Restrictions": { + "type": "structure", + "members": { + "GeoRestriction": { + "type": "structure", + "members": { + "RestrictionType": {}, + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "name": "Location" + } + } + } + } + } + } + } + } + } + } + }, + "getDistributionConfig": { + "name": "GetDistributionConfig2014_01_31", + "http": { + "uri": "/2014-01-31/distribution/{Id}/config", + "method": "GET" + }, + "input": { + "type": "structure", + "members": { + "Id": { + "location": "uri" + } + } + }, + "output": { + "type": "structure", + "members": { + "ETag": { + "location": "header", + "name": "ETag" + }, + "CallerReference": {}, + "Aliases": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "name": "CNAME" + } + } + } + }, + "DefaultRootObject": {}, + "Origins": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Id": {}, + "DomainName": {}, + "S3OriginConfig": { + "type": "structure", + "members": { + "OriginAccessIdentity": {} + } + }, + "CustomOriginConfig": { + "type": "structure", + "members": { + "HTTPPort": { + "type": "integer" + }, + "HTTPSPort": { + "type": "integer" + }, + "OriginProtocolPolicy": {} + } + } + }, + "name": "Origin" + } + } + } + }, + "DefaultCacheBehavior": { + "type": "structure", + "members": { + "TargetOriginId": {}, + "ForwardedValues": { + "type": "structure", + "members": { + "QueryString": { + "type": "boolean" + }, + "Cookies": { + "type": "structure", + "members": { + "Forward": {}, + "WhitelistedNames": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "name": "Name" + } + } + } + } + } + } + } + }, + "TrustedSigners": { + "type": "structure", + "members": { + "Enabled": { + "type": "boolean" + }, + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "name": "AwsAccountNumber" + } + } + } + }, + "ViewerProtocolPolicy": {}, + "MinTTL": { + "type": "integer" + }, + "AllowedMethods": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "name": "Method" + } + } + } + }, + "SmoothStreaming": { + "type": "boolean" + } + } + }, + "CacheBehaviors": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "type": "structure", + "members": { + "PathPattern": {}, + "TargetOriginId": {}, + "ForwardedValues": { + "type": "structure", + "members": { + "QueryString": { + "type": "boolean" + }, + "Cookies": { + "type": "structure", + "members": { + "Forward": {}, + "WhitelistedNames": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "name": "Name" + } + } + } + } + } + } + } + }, + "TrustedSigners": { + "type": "structure", + "members": { + "Enabled": { + "type": "boolean" + }, + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "name": "AwsAccountNumber" + } + } + } + }, + "ViewerProtocolPolicy": {}, + "MinTTL": { + "type": "integer" + }, + "AllowedMethods": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "name": "Method" + } + } + } + }, + "SmoothStreaming": { + "type": "boolean" + } + }, + "name": "CacheBehavior" + } + } + } + }, + "CustomErrorResponses": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ErrorCode": { + "type": "integer" + }, + "ResponsePagePath": {}, + "ResponseCode": {}, + "ErrorCachingMinTTL": { + "type": "integer" + } + }, + "name": "CustomErrorResponse" + } + } + } + }, + "Comment": {}, + "Logging": { + "type": "structure", + "members": { + "Enabled": { + "type": "boolean" + }, + "IncludeCookies": { + "type": "boolean" + }, + "Bucket": {}, + "Prefix": {} + } + }, + "PriceClass": {}, + "Enabled": { + "type": "boolean" + }, + "ViewerCertificate": { + "type": "structure", + "members": { + "IAMCertificateId": {}, + "CloudFrontDefaultCertificate": { + "type": "boolean" + }, + "SSLSupportMethod": {} + } + }, + "Restrictions": { + "type": "structure", + "members": { + "GeoRestriction": { + "type": "structure", + "members": { + "RestrictionType": {}, + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "name": "Location" + } + } + } + } + } + } + } + } + }, + "getInvalidation": { + "name": "GetInvalidation2014_01_31", + "http": { + "uri": "/2014-01-31/distribution/{DistributionId}/invalidation/{Id}", + "method": "GET" + }, + "input": { + "type": "structure", + "members": { + "DistributionId": { + "required": true, + "location": "uri" + }, + "Id": { + "required": true, + "location": "uri" + } + } + }, + "output": { + "type": "structure", + "members": { + "Id": {}, + "Status": {}, + "CreateTime": { + "type": "timestamp" + }, + "InvalidationBatch": { + "type": "structure", + "members": { + "Paths": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "name": "Path" + } + } + } + }, + "CallerReference": {} + } + } + } + } + }, + "getStreamingDistribution": { + "name": "GetStreamingDistribution2014_01_31", + "http": { + "uri": "/2014-01-31/streaming-distribution/{Id}", + "method": "GET" + }, + "input": { + "type": "structure", + "members": { + "Id": { + "location": "uri" + } + } + }, + "output": { + "type": "structure", + "members": { + "ETag": { + "location": "header", + "name": "ETag" + }, + "Id": {}, + "Status": {}, + "LastModifiedTime": { + "type": "timestamp" + }, + "DomainName": {}, + "ActiveTrustedSigners": { + "type": "structure", + "members": { + "Enabled": { + "type": "boolean" + }, + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "type": "structure", + "members": { + "AwsAccountNumber": {}, + "KeyPairIds": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "name": "KeyPairId" + } + } + } + } + }, + "name": "Signer" + } + } + } + }, + "StreamingDistributionConfig": { + "type": "structure", + "members": { + "CallerReference": {}, + "S3Origin": { + "type": "structure", + "members": { + "DomainName": {}, + "OriginAccessIdentity": {} + } + }, + "Aliases": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "name": "CNAME" + } + } + } + }, + "Comment": {}, + "Logging": { + "type": "structure", + "members": { + "Enabled": { + "type": "boolean" + }, + "Bucket": {}, + "Prefix": {} + } + }, + "TrustedSigners": { + "type": "structure", + "members": { + "Enabled": { + "type": "boolean" + }, + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "name": "AwsAccountNumber" + } + } + } + }, + "PriceClass": {}, + "Enabled": { + "type": "boolean" + } + } + } + } + } + }, + "getStreamingDistributionConfig": { + "name": "GetStreamingDistributionConfig2014_01_31", + "http": { + "uri": "/2014-01-31/streaming-distribution/{Id}/config", + "method": "GET" + }, + "input": { + "type": "structure", + "members": { + "Id": { + "location": "uri" + } + } + }, + "output": { + "type": "structure", + "members": { + "ETag": { + "location": "header", + "name": "ETag" + }, + "CallerReference": {}, + "S3Origin": { + "type": "structure", + "members": { + "DomainName": {}, + "OriginAccessIdentity": {} + } + }, + "Aliases": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "name": "CNAME" + } + } + } + }, + "Comment": {}, + "Logging": { + "type": "structure", + "members": { + "Enabled": { + "type": "boolean" + }, + "Bucket": {}, + "Prefix": {} + } + }, + "TrustedSigners": { + "type": "structure", + "members": { + "Enabled": { + "type": "boolean" + }, + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "name": "AwsAccountNumber" + } + } + } + }, + "PriceClass": {}, + "Enabled": { + "type": "boolean" + } + } + } + }, + "listCloudFrontOriginAccessIdentities": { + "name": "ListCloudFrontOriginAccessIdentities2014_01_31", + "http": { + "uri": "/2014-01-31/origin-access-identity/cloudfront?Marker={Marker}&MaxItems={MaxItems}", + "method": "GET" + }, + "input": { + "type": "structure", + "members": { + "Marker": { + "location": "uri" + }, + "MaxItems": { + "location": "uri" + } + } + }, + "output": { + "type": "structure", + "members": { + "Marker": {}, + "NextMarker": {}, + "MaxItems": { + "type": "integer" + }, + "IsTruncated": { + "type": "boolean" + }, + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Id": {}, + "S3CanonicalUserId": {}, + "Comment": {} + }, + "name": "CloudFrontOriginAccessIdentitySummary" + } + } + } + } + }, + "listDistributions": { + "name": "ListDistributions2014_01_31", + "http": { + "uri": "/2014-01-31/distribution?Marker={Marker}&MaxItems={MaxItems}", + "method": "GET" + }, + "input": { + "type": "structure", + "members": { + "Marker": { + "location": "uri" + }, + "MaxItems": { + "location": "uri" + } + } + }, + "output": { + "type": "structure", + "members": { + "Marker": {}, + "NextMarker": {}, + "MaxItems": { + "type": "integer" + }, + "IsTruncated": { + "type": "boolean" + }, + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Id": {}, + "Status": {}, + "LastModifiedTime": { + "type": "timestamp" + }, + "DomainName": {}, + "Aliases": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "name": "CNAME" + } + } + } + }, + "Origins": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Id": {}, + "DomainName": {}, + "S3OriginConfig": { + "type": "structure", + "members": { + "OriginAccessIdentity": {} + } + }, + "CustomOriginConfig": { + "type": "structure", + "members": { + "HTTPPort": { + "type": "integer" + }, + "HTTPSPort": { + "type": "integer" + }, + "OriginProtocolPolicy": {} + } + } + }, + "name": "Origin" + } + } + } + }, + "DefaultCacheBehavior": { + "type": "structure", + "members": { + "TargetOriginId": {}, + "ForwardedValues": { + "type": "structure", + "members": { + "QueryString": { + "type": "boolean" + }, + "Cookies": { + "type": "structure", + "members": { + "Forward": {}, + "WhitelistedNames": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "name": "Name" + } + } + } + } + } + } + } + }, + "TrustedSigners": { + "type": "structure", + "members": { + "Enabled": { + "type": "boolean" + }, + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "name": "AwsAccountNumber" + } + } + } + }, + "ViewerProtocolPolicy": {}, + "MinTTL": { + "type": "integer" + }, + "AllowedMethods": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "name": "Method" + } + } + } + }, + "SmoothStreaming": { + "type": "boolean" + } + } + }, + "CacheBehaviors": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "type": "structure", + "members": { + "PathPattern": {}, + "TargetOriginId": {}, + "ForwardedValues": { + "type": "structure", + "members": { + "QueryString": { + "type": "boolean" + }, + "Cookies": { + "type": "structure", + "members": { + "Forward": {}, + "WhitelistedNames": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "name": "Name" + } + } + } + } + } + } + } + }, + "TrustedSigners": { + "type": "structure", + "members": { + "Enabled": { + "type": "boolean" + }, + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "name": "AwsAccountNumber" + } + } + } + }, + "ViewerProtocolPolicy": {}, + "MinTTL": { + "type": "integer" + }, + "AllowedMethods": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "name": "Method" + } + } + } + }, + "SmoothStreaming": { + "type": "boolean" + } + }, + "name": "CacheBehavior" + } + } + } + }, + "CustomErrorResponses": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ErrorCode": { + "type": "integer" + }, + "ResponsePagePath": {}, + "ResponseCode": {}, + "ErrorCachingMinTTL": { + "type": "integer" + } + }, + "name": "CustomErrorResponse" + } + } + } + }, + "Comment": {}, + "PriceClass": {}, + "Enabled": { + "type": "boolean" + }, + "ViewerCertificate": { + "type": "structure", + "members": { + "IAMCertificateId": {}, + "CloudFrontDefaultCertificate": { + "type": "boolean" + }, + "SSLSupportMethod": {} + } + }, + "Restrictions": { + "type": "structure", + "members": { + "GeoRestriction": { + "type": "structure", + "members": { + "RestrictionType": {}, + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "name": "Location" + } + } + } + } + } + } + }, + "name": "DistributionSummary" + } + } + } + } + }, + "listInvalidations": { + "name": "ListInvalidations2014_01_31", + "http": { + "uri": "/2014-01-31/distribution/{DistributionId}/invalidation?Marker={Marker}&MaxItems={MaxItems}", + "method": "GET" + }, + "input": { + "type": "structure", + "members": { + "DistributionId": { + "required": true, + "location": "uri" + }, + "Marker": { + "location": "uri" + }, + "MaxItems": { + "location": "uri" + } + } + }, + "output": { + "type": "structure", + "members": { + "Marker": {}, + "NextMarker": {}, + "MaxItems": { + "type": "integer" + }, + "IsTruncated": { + "type": "boolean" + }, + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Id": {}, + "CreateTime": { + "type": "timestamp" + }, + "Status": {} + }, + "name": "InvalidationSummary" + } + } + } + } + }, + "listStreamingDistributions": { + "name": "ListStreamingDistributions2014_01_31", + "http": { + "uri": "/2014-01-31/streaming-distribution?Marker={Marker}&MaxItems={MaxItems}", + "method": "GET" + }, + "input": { + "type": "structure", + "members": { + "Marker": { + "location": "uri" + }, + "MaxItems": { + "location": "uri" + } + } + }, + "output": { + "type": "structure", + "members": { + "Marker": {}, + "NextMarker": {}, + "MaxItems": { + "type": "integer" + }, + "IsTruncated": { + "type": "boolean" + }, + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Id": {}, + "Status": {}, + "LastModifiedTime": { + "type": "timestamp" + }, + "DomainName": {}, + "S3Origin": { + "type": "structure", + "members": { + "DomainName": {}, + "OriginAccessIdentity": {} + } + }, + "Aliases": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "name": "CNAME" + } + } + } + }, + "TrustedSigners": { + "type": "structure", + "members": { + "Enabled": { + "type": "boolean" + }, + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "name": "AwsAccountNumber" + } + } + } + }, + "Comment": {}, + "PriceClass": {}, + "Enabled": { + "type": "boolean" + } + }, + "name": "StreamingDistributionSummary" + } + } + } + } + }, + "updateCloudFrontOriginAccessIdentity": { + "name": "UpdateCloudFrontOriginAccessIdentity2014_01_31", + "http": { + "uri": "/2014-01-31/origin-access-identity/cloudfront/{Id}/config", + "method": "PUT" + }, + "input": { + "payload": "CloudFrontOriginAccessIdentityConfig", + "type": "structure", + "members": { + "CloudFrontOriginAccessIdentityConfig": { + "type": "structure", + "members": { + "CallerReference": { + "required": true + }, + "Comment": { + "required": true + } + }, + "required": true + }, + "Id": { + "location": "uri" + }, + "IfMatch": { + "location": "header", + "name": "If-Match" + } + } + }, + "output": { + "type": "structure", + "members": { + "ETag": { + "location": "header", + "name": "ETag" + }, + "Id": {}, + "S3CanonicalUserId": {}, + "CloudFrontOriginAccessIdentityConfig": { + "type": "structure", + "members": { + "CallerReference": {}, + "Comment": {} + } + } + } + } + }, + "updateDistribution": { + "name": "UpdateDistribution2014_01_31", + "http": { + "uri": "/2014-01-31/distribution/{Id}/config", + "method": "PUT" + }, + "input": { + "payload": "DistributionConfig", + "type": "structure", + "members": { + "DistributionConfig": { + "type": "structure", + "members": { + "CallerReference": { + "required": true + }, + "Aliases": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer", + "required": true + }, + "Items": { + "type": "list", + "members": { + "name": "CNAME" + } + } + }, + "required": true + }, + "DefaultRootObject": { + "required": true + }, + "Origins": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer", + "required": true + }, + "Items": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Id": { + "required": true + }, + "DomainName": { + "required": true + }, + "S3OriginConfig": { + "type": "structure", + "members": { + "OriginAccessIdentity": { + "required": true + } + } + }, + "CustomOriginConfig": { + "type": "structure", + "members": { + "HTTPPort": { + "type": "integer", + "required": true + }, + "HTTPSPort": { + "type": "integer", + "required": true + }, + "OriginProtocolPolicy": { + "required": true + } + } + } + }, + "name": "Origin" + } + } + }, + "required": true + }, + "DefaultCacheBehavior": { + "type": "structure", + "members": { + "TargetOriginId": { + "required": true + }, + "ForwardedValues": { + "type": "structure", + "members": { + "QueryString": { + "type": "boolean", + "required": true + }, + "Cookies": { + "type": "structure", + "members": { + "Forward": { + "required": true + }, + "WhitelistedNames": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer", + "required": true + }, + "Items": { + "type": "list", + "members": { + "name": "Name" + } + } + } + } + }, + "required": true + } + }, + "required": true + }, + "TrustedSigners": { + "type": "structure", + "members": { + "Enabled": { + "type": "boolean", + "required": true + }, + "Quantity": { + "type": "integer", + "required": true + }, + "Items": { + "type": "list", + "members": { + "name": "AwsAccountNumber" + } + } + }, + "required": true + }, + "ViewerProtocolPolicy": { + "required": true + }, + "MinTTL": { + "type": "integer", + "required": true + }, + "AllowedMethods": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer", + "required": true + }, + "Items": { + "type": "list", + "members": { + "name": "Method" + } + } + } + }, + "SmoothStreaming": { + "type": "boolean" + } + }, + "required": true + }, + "CacheBehaviors": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer", + "required": true + }, + "Items": { + "type": "list", + "members": { + "type": "structure", + "members": { + "PathPattern": { + "required": true + }, + "TargetOriginId": { + "required": true + }, + "ForwardedValues": { + "type": "structure", + "members": { + "QueryString": { + "type": "boolean", + "required": true + }, + "Cookies": { + "type": "structure", + "members": { + "Forward": { + "required": true + }, + "WhitelistedNames": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer", + "required": true + }, + "Items": { + "type": "list", + "members": { + "name": "Name" + } + } + } + } + }, + "required": true + } + }, + "required": true + }, + "TrustedSigners": { + "type": "structure", + "members": { + "Enabled": { + "type": "boolean", + "required": true + }, + "Quantity": { + "type": "integer", + "required": true + }, + "Items": { + "type": "list", + "members": { + "name": "AwsAccountNumber" + } + } + }, + "required": true + }, + "ViewerProtocolPolicy": { + "required": true + }, + "MinTTL": { + "type": "integer", + "required": true + }, + "AllowedMethods": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer", + "required": true + }, + "Items": { + "type": "list", + "members": { + "name": "Method" + } + } + } + }, + "SmoothStreaming": { + "type": "boolean" + } + }, + "name": "CacheBehavior" + } + } + }, + "required": true + }, + "CustomErrorResponses": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer", + "required": true + }, + "Items": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ErrorCode": { + "type": "integer", + "required": true + }, + "ResponsePagePath": {}, + "ResponseCode": {}, + "ErrorCachingMinTTL": { + "type": "integer" + } + }, + "name": "CustomErrorResponse" + } + } + } + }, + "Comment": { + "required": true + }, + "Logging": { + "type": "structure", + "members": { + "Enabled": { + "type": "boolean", + "required": true + }, + "IncludeCookies": { + "type": "boolean", + "required": true + }, + "Bucket": { + "required": true + }, + "Prefix": { + "required": true + } + }, + "required": true + }, + "PriceClass": { + "required": true + }, + "Enabled": { + "type": "boolean", + "required": true + }, + "ViewerCertificate": { + "type": "structure", + "members": { + "IAMCertificateId": {}, + "CloudFrontDefaultCertificate": { + "type": "boolean" + }, + "SSLSupportMethod": {} + } + }, + "Restrictions": { + "type": "structure", + "members": { + "GeoRestriction": { + "type": "structure", + "members": { + "RestrictionType": { + "required": true + }, + "Quantity": { + "type": "integer", + "required": true + }, + "Items": { + "type": "list", + "members": { + "name": "Location" + } + } + }, + "required": true + } + } + } + }, + "required": true + }, + "Id": { + "location": "uri" + }, + "IfMatch": { + "location": "header", + "name": "If-Match" + } + } + }, + "output": { + "type": "structure", + "members": { + "ETag": { + "location": "header", + "name": "ETag" + }, + "Id": {}, + "Status": {}, + "LastModifiedTime": { + "type": "timestamp" + }, + "InProgressInvalidationBatches": { + "type": "integer" + }, + "DomainName": {}, + "ActiveTrustedSigners": { + "type": "structure", + "members": { + "Enabled": { + "type": "boolean" + }, + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "type": "structure", + "members": { + "AwsAccountNumber": {}, + "KeyPairIds": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "name": "KeyPairId" + } + } + } + } + }, + "name": "Signer" + } + } + } + }, + "DistributionConfig": { + "type": "structure", + "members": { + "CallerReference": {}, + "Aliases": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "name": "CNAME" + } + } + } + }, + "DefaultRootObject": {}, + "Origins": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Id": {}, + "DomainName": {}, + "S3OriginConfig": { + "type": "structure", + "members": { + "OriginAccessIdentity": {} + } + }, + "CustomOriginConfig": { + "type": "structure", + "members": { + "HTTPPort": { + "type": "integer" + }, + "HTTPSPort": { + "type": "integer" + }, + "OriginProtocolPolicy": {} + } + } + }, + "name": "Origin" + } + } + } + }, + "DefaultCacheBehavior": { + "type": "structure", + "members": { + "TargetOriginId": {}, + "ForwardedValues": { + "type": "structure", + "members": { + "QueryString": { + "type": "boolean" + }, + "Cookies": { + "type": "structure", + "members": { + "Forward": {}, + "WhitelistedNames": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "name": "Name" + } + } + } + } + } + } + } + }, + "TrustedSigners": { + "type": "structure", + "members": { + "Enabled": { + "type": "boolean" + }, + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "name": "AwsAccountNumber" + } + } + } + }, + "ViewerProtocolPolicy": {}, + "MinTTL": { + "type": "integer" + }, + "AllowedMethods": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "name": "Method" + } + } + } + }, + "SmoothStreaming": { + "type": "boolean" + } + } + }, + "CacheBehaviors": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "type": "structure", + "members": { + "PathPattern": {}, + "TargetOriginId": {}, + "ForwardedValues": { + "type": "structure", + "members": { + "QueryString": { + "type": "boolean" + }, + "Cookies": { + "type": "structure", + "members": { + "Forward": {}, + "WhitelistedNames": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "name": "Name" + } + } + } + } + } + } + } + }, + "TrustedSigners": { + "type": "structure", + "members": { + "Enabled": { + "type": "boolean" + }, + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "name": "AwsAccountNumber" + } + } + } + }, + "ViewerProtocolPolicy": {}, + "MinTTL": { + "type": "integer" + }, + "AllowedMethods": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "name": "Method" + } + } + } + }, + "SmoothStreaming": { + "type": "boolean" + } + }, + "name": "CacheBehavior" + } + } + } + }, + "CustomErrorResponses": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ErrorCode": { + "type": "integer" + }, + "ResponsePagePath": {}, + "ResponseCode": {}, + "ErrorCachingMinTTL": { + "type": "integer" + } + }, + "name": "CustomErrorResponse" + } + } + } + }, + "Comment": {}, + "Logging": { + "type": "structure", + "members": { + "Enabled": { + "type": "boolean" + }, + "IncludeCookies": { + "type": "boolean" + }, + "Bucket": {}, + "Prefix": {} + } + }, + "PriceClass": {}, + "Enabled": { + "type": "boolean" + }, + "ViewerCertificate": { + "type": "structure", + "members": { + "IAMCertificateId": {}, + "CloudFrontDefaultCertificate": { + "type": "boolean" + }, + "SSLSupportMethod": {} + } + }, + "Restrictions": { + "type": "structure", + "members": { + "GeoRestriction": { + "type": "structure", + "members": { + "RestrictionType": {}, + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "name": "Location" + } + } + } + } + } + } + } + } + } + } + }, + "updateStreamingDistribution": { + "name": "UpdateStreamingDistribution2014_01_31", + "http": { + "uri": "/2014-01-31/streaming-distribution/{Id}/config", + "method": "PUT" + }, + "input": { + "payload": "StreamingDistributionConfig", + "type": "structure", + "members": { + "StreamingDistributionConfig": { + "type": "structure", + "members": { + "CallerReference": { + "required": true + }, + "S3Origin": { + "type": "structure", + "members": { + "DomainName": { + "required": true + }, + "OriginAccessIdentity": { + "required": true + } + }, + "required": true + }, + "Aliases": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer", + "required": true + }, + "Items": { + "type": "list", + "members": { + "name": "CNAME" + } + } + }, + "required": true + }, + "Comment": { + "required": true + }, + "Logging": { + "type": "structure", + "members": { + "Enabled": { + "type": "boolean", + "required": true + }, + "Bucket": { + "required": true + }, + "Prefix": { + "required": true + } + }, + "required": true + }, + "TrustedSigners": { + "type": "structure", + "members": { + "Enabled": { + "type": "boolean", + "required": true + }, + "Quantity": { + "type": "integer", + "required": true + }, + "Items": { + "type": "list", + "members": { + "name": "AwsAccountNumber" + } + } + }, + "required": true + }, + "PriceClass": { + "required": true + }, + "Enabled": { + "type": "boolean", + "required": true + } + }, + "required": true + }, + "Id": { + "location": "uri" + }, + "IfMatch": { + "location": "header", + "name": "If-Match" + } + } + }, + "output": { + "type": "structure", + "members": { + "ETag": { + "location": "header", + "name": "ETag" + }, + "Id": {}, + "Status": {}, + "LastModifiedTime": { + "type": "timestamp" + }, + "DomainName": {}, + "ActiveTrustedSigners": { + "type": "structure", + "members": { + "Enabled": { + "type": "boolean" + }, + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "type": "structure", + "members": { + "AwsAccountNumber": {}, + "KeyPairIds": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "name": "KeyPairId" + } + } + } + } + }, + "name": "Signer" + } + } + } + }, + "StreamingDistributionConfig": { + "type": "structure", + "members": { + "CallerReference": {}, + "S3Origin": { + "type": "structure", + "members": { + "DomainName": {}, + "OriginAccessIdentity": {} + } + }, + "Aliases": { + "type": "structure", + "members": { + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "name": "CNAME" + } + } + } + }, + "Comment": {}, + "Logging": { + "type": "structure", + "members": { + "Enabled": { + "type": "boolean" + }, + "Bucket": {}, + "Prefix": {} + } + }, + "TrustedSigners": { + "type": "structure", + "members": { + "Enabled": { + "type": "boolean" + }, + "Quantity": { + "type": "integer" + }, + "Items": { + "type": "list", + "members": { + "name": "AwsAccountNumber" + } + } + } + }, + "PriceClass": {}, + "Enabled": { + "type": "boolean" + } + } + } + } + } + } + }, + "pagination": { + "listCloudFrontOriginAccessIdentities": { + "inputToken": "Marker", + "outputToken": "NextMarker", + "limitKey": "MaxItems", + "moreResults": "IsTruncated", + "resultKey": "Items" + }, + "listDistributions": { + "inputToken": "Marker", + "outputToken": "NextMarker", + "limitKey": "MaxItems", + "moreResults": "IsTruncated", + "resultKey": "Items" + }, + "listInvalidations": { + "inputToken": "Marker", + "outputToken": "NextMarker", + "limitKey": "MaxItems", + "moreResults": "IsTruncated", + "resultKey": "Items" + }, + "listStreamingDistributions": { + "inputToken": "Marker", + "outputToken": "NextMarker", + "limitKey": "MaxItems", + "moreResults": "IsTruncated", + "resultKey": "Items" + } + }, + "waiters": { + "__default__": { + "successType": "output", + "successPath": "Status" + }, + "streamingDistributionDeployed": { + "operation": "GetStreamingDistribution", + "description": "Wait until a streaming distribution is deployed.", + "interval": 60, + "maxAttempts": 25, + "successValue": "Deployed" + }, + "distributionDeployed": { + "operation": "GetDistribution", + "description": "Wait until a distribution is deployed.", + "interval": 60, + "maxAttempts": 25, + "successValue": "Deployed" + }, + "invalidationCompleted": { + "operation": "GetInvalidation", + "description": "Wait until an invalidation has completed.", + "interval": 20, + "maxAttempts": 30, + "successValue": "Completed" + } + } +} \ No newline at end of file diff --git a/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/CloudSearch-2011-02-01.json b/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/CloudSearch-2011-02-01.json new file mode 100644 index 00000000..1dc3771d --- /dev/null +++ b/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/CloudSearch-2011-02-01.json @@ -0,0 +1,1258 @@ +{ + "format": "query", + "apiVersion": "2011-02-01", + "endpointPrefix": "cloudsearch", + "resultWrapped": true, + "serviceFullName": "Amazon CloudSearch", + "signatureVersion": "v4", + "timestampFormat": "iso8601", + "operations": { + "createDomain": { + "name": "CreateDomain", + "input": { + "type": "structure", + "members": { + "DomainName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "DomainStatus": { + "type": "structure", + "members": { + "DomainId": {}, + "DomainName": {}, + "Created": { + "type": "boolean" + }, + "Deleted": { + "type": "boolean" + }, + "NumSearchableDocs": { + "type": "integer" + }, + "DocService": { + "type": "structure", + "members": { + "Arn": {}, + "Endpoint": {} + } + }, + "SearchService": { + "type": "structure", + "members": { + "Arn": {}, + "Endpoint": {} + } + }, + "RequiresIndexDocuments": { + "type": "boolean" + }, + "Processing": { + "type": "boolean" + }, + "SearchInstanceType": {}, + "SearchPartitionCount": { + "type": "integer" + }, + "SearchInstanceCount": { + "type": "integer" + } + } + } + } + } + }, + "defineIndexField": { + "name": "DefineIndexField", + "input": { + "type": "structure", + "members": { + "DomainName": { + "required": true + }, + "IndexField": { + "type": "structure", + "members": { + "IndexFieldName": { + "required": true + }, + "IndexFieldType": { + "required": true + }, + "UIntOptions": { + "type": "structure", + "members": { + "DefaultValue": { + "type": "integer" + } + } + }, + "LiteralOptions": { + "type": "structure", + "members": { + "DefaultValue": {}, + "SearchEnabled": { + "type": "boolean" + }, + "FacetEnabled": { + "type": "boolean" + }, + "ResultEnabled": { + "type": "boolean" + } + } + }, + "TextOptions": { + "type": "structure", + "members": { + "DefaultValue": {}, + "FacetEnabled": { + "type": "boolean" + }, + "ResultEnabled": { + "type": "boolean" + }, + "TextProcessor": {} + } + }, + "SourceAttributes": { + "type": "list", + "members": { + "type": "structure", + "members": { + "SourceDataFunction": { + "required": true + }, + "SourceDataCopy": { + "type": "structure", + "members": { + "SourceName": { + "required": true + }, + "DefaultValue": {} + } + }, + "SourceDataTrimTitle": { + "type": "structure", + "members": { + "SourceName": { + "required": true + }, + "DefaultValue": {}, + "Separator": {}, + "Language": {} + } + }, + "SourceDataMap": { + "type": "structure", + "members": { + "SourceName": { + "required": true + }, + "DefaultValue": {}, + "Cases": { + "type": "map", + "keys": {}, + "members": {} + } + } + } + } + } + } + }, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "IndexField": { + "type": "structure", + "members": { + "Options": { + "type": "structure", + "members": { + "IndexFieldName": {}, + "IndexFieldType": {}, + "UIntOptions": { + "type": "structure", + "members": { + "DefaultValue": { + "type": "integer" + } + } + }, + "LiteralOptions": { + "type": "structure", + "members": { + "DefaultValue": {}, + "SearchEnabled": { + "type": "boolean" + }, + "FacetEnabled": { + "type": "boolean" + }, + "ResultEnabled": { + "type": "boolean" + } + } + }, + "TextOptions": { + "type": "structure", + "members": { + "DefaultValue": {}, + "FacetEnabled": { + "type": "boolean" + }, + "ResultEnabled": { + "type": "boolean" + }, + "TextProcessor": {} + } + }, + "SourceAttributes": { + "type": "list", + "members": { + "type": "structure", + "members": { + "SourceDataFunction": {}, + "SourceDataCopy": { + "type": "structure", + "members": { + "SourceName": {}, + "DefaultValue": {} + } + }, + "SourceDataTrimTitle": { + "type": "structure", + "members": { + "SourceName": {}, + "DefaultValue": {}, + "Separator": {}, + "Language": {} + } + }, + "SourceDataMap": { + "type": "structure", + "members": { + "SourceName": {}, + "DefaultValue": {}, + "Cases": { + "type": "map", + "keys": {}, + "members": {} + } + } + } + } + } + } + } + }, + "Status": { + "type": "structure", + "members": { + "CreationDate": { + "type": "timestamp" + }, + "UpdateDate": { + "type": "timestamp" + }, + "UpdateVersion": { + "type": "integer" + }, + "State": {}, + "PendingDeletion": { + "type": "boolean" + } + } + } + } + } + } + } + }, + "defineRankExpression": { + "name": "DefineRankExpression", + "input": { + "type": "structure", + "members": { + "DomainName": { + "required": true + }, + "RankExpression": { + "type": "structure", + "members": { + "RankName": { + "required": true + }, + "RankExpression": { + "required": true + } + }, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "RankExpression": { + "type": "structure", + "members": { + "Options": { + "type": "structure", + "members": { + "RankName": {}, + "RankExpression": {} + } + }, + "Status": { + "type": "structure", + "members": { + "CreationDate": { + "type": "timestamp" + }, + "UpdateDate": { + "type": "timestamp" + }, + "UpdateVersion": { + "type": "integer" + }, + "State": {}, + "PendingDeletion": { + "type": "boolean" + } + } + } + } + } + } + } + }, + "deleteDomain": { + "name": "DeleteDomain", + "input": { + "type": "structure", + "members": { + "DomainName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "DomainStatus": { + "type": "structure", + "members": { + "DomainId": {}, + "DomainName": {}, + "Created": { + "type": "boolean" + }, + "Deleted": { + "type": "boolean" + }, + "NumSearchableDocs": { + "type": "integer" + }, + "DocService": { + "type": "structure", + "members": { + "Arn": {}, + "Endpoint": {} + } + }, + "SearchService": { + "type": "structure", + "members": { + "Arn": {}, + "Endpoint": {} + } + }, + "RequiresIndexDocuments": { + "type": "boolean" + }, + "Processing": { + "type": "boolean" + }, + "SearchInstanceType": {}, + "SearchPartitionCount": { + "type": "integer" + }, + "SearchInstanceCount": { + "type": "integer" + } + } + } + } + } + }, + "deleteIndexField": { + "name": "DeleteIndexField", + "input": { + "type": "structure", + "members": { + "DomainName": { + "required": true + }, + "IndexFieldName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "IndexField": { + "type": "structure", + "members": { + "Options": { + "type": "structure", + "members": { + "IndexFieldName": {}, + "IndexFieldType": {}, + "UIntOptions": { + "type": "structure", + "members": { + "DefaultValue": { + "type": "integer" + } + } + }, + "LiteralOptions": { + "type": "structure", + "members": { + "DefaultValue": {}, + "SearchEnabled": { + "type": "boolean" + }, + "FacetEnabled": { + "type": "boolean" + }, + "ResultEnabled": { + "type": "boolean" + } + } + }, + "TextOptions": { + "type": "structure", + "members": { + "DefaultValue": {}, + "FacetEnabled": { + "type": "boolean" + }, + "ResultEnabled": { + "type": "boolean" + }, + "TextProcessor": {} + } + }, + "SourceAttributes": { + "type": "list", + "members": { + "type": "structure", + "members": { + "SourceDataFunction": {}, + "SourceDataCopy": { + "type": "structure", + "members": { + "SourceName": {}, + "DefaultValue": {} + } + }, + "SourceDataTrimTitle": { + "type": "structure", + "members": { + "SourceName": {}, + "DefaultValue": {}, + "Separator": {}, + "Language": {} + } + }, + "SourceDataMap": { + "type": "structure", + "members": { + "SourceName": {}, + "DefaultValue": {}, + "Cases": { + "type": "map", + "keys": {}, + "members": {} + } + } + } + } + } + } + } + }, + "Status": { + "type": "structure", + "members": { + "CreationDate": { + "type": "timestamp" + }, + "UpdateDate": { + "type": "timestamp" + }, + "UpdateVersion": { + "type": "integer" + }, + "State": {}, + "PendingDeletion": { + "type": "boolean" + } + } + } + } + } + } + } + }, + "deleteRankExpression": { + "name": "DeleteRankExpression", + "input": { + "type": "structure", + "members": { + "DomainName": { + "required": true + }, + "RankName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "RankExpression": { + "type": "structure", + "members": { + "Options": { + "type": "structure", + "members": { + "RankName": {}, + "RankExpression": {} + } + }, + "Status": { + "type": "structure", + "members": { + "CreationDate": { + "type": "timestamp" + }, + "UpdateDate": { + "type": "timestamp" + }, + "UpdateVersion": { + "type": "integer" + }, + "State": {}, + "PendingDeletion": { + "type": "boolean" + } + } + } + } + } + } + } + }, + "describeDefaultSearchField": { + "name": "DescribeDefaultSearchField", + "input": { + "type": "structure", + "members": { + "DomainName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "DefaultSearchField": { + "type": "structure", + "members": { + "Options": {}, + "Status": { + "type": "structure", + "members": { + "CreationDate": { + "type": "timestamp" + }, + "UpdateDate": { + "type": "timestamp" + }, + "UpdateVersion": { + "type": "integer" + }, + "State": {}, + "PendingDeletion": { + "type": "boolean" + } + } + } + } + } + } + } + }, + "describeDomains": { + "name": "DescribeDomains", + "input": { + "type": "structure", + "members": { + "DomainNames": { + "type": "list", + "members": {} + } + } + }, + "output": { + "type": "structure", + "members": { + "DomainStatusList": { + "type": "list", + "members": { + "type": "structure", + "members": { + "DomainId": {}, + "DomainName": {}, + "Created": { + "type": "boolean" + }, + "Deleted": { + "type": "boolean" + }, + "NumSearchableDocs": { + "type": "integer" + }, + "DocService": { + "type": "structure", + "members": { + "Arn": {}, + "Endpoint": {} + } + }, + "SearchService": { + "type": "structure", + "members": { + "Arn": {}, + "Endpoint": {} + } + }, + "RequiresIndexDocuments": { + "type": "boolean" + }, + "Processing": { + "type": "boolean" + }, + "SearchInstanceType": {}, + "SearchPartitionCount": { + "type": "integer" + }, + "SearchInstanceCount": { + "type": "integer" + } + } + } + } + } + } + }, + "describeIndexFields": { + "name": "DescribeIndexFields", + "input": { + "type": "structure", + "members": { + "DomainName": { + "required": true + }, + "FieldNames": { + "type": "list", + "members": {} + } + } + }, + "output": { + "type": "structure", + "members": { + "IndexFields": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Options": { + "type": "structure", + "members": { + "IndexFieldName": {}, + "IndexFieldType": {}, + "UIntOptions": { + "type": "structure", + "members": { + "DefaultValue": { + "type": "integer" + } + } + }, + "LiteralOptions": { + "type": "structure", + "members": { + "DefaultValue": {}, + "SearchEnabled": { + "type": "boolean" + }, + "FacetEnabled": { + "type": "boolean" + }, + "ResultEnabled": { + "type": "boolean" + } + } + }, + "TextOptions": { + "type": "structure", + "members": { + "DefaultValue": {}, + "FacetEnabled": { + "type": "boolean" + }, + "ResultEnabled": { + "type": "boolean" + }, + "TextProcessor": {} + } + }, + "SourceAttributes": { + "type": "list", + "members": { + "type": "structure", + "members": { + "SourceDataFunction": {}, + "SourceDataCopy": { + "type": "structure", + "members": { + "SourceName": {}, + "DefaultValue": {} + } + }, + "SourceDataTrimTitle": { + "type": "structure", + "members": { + "SourceName": {}, + "DefaultValue": {}, + "Separator": {}, + "Language": {} + } + }, + "SourceDataMap": { + "type": "structure", + "members": { + "SourceName": {}, + "DefaultValue": {}, + "Cases": { + "type": "map", + "keys": {}, + "members": {} + } + } + } + } + } + } + } + }, + "Status": { + "type": "structure", + "members": { + "CreationDate": { + "type": "timestamp" + }, + "UpdateDate": { + "type": "timestamp" + }, + "UpdateVersion": { + "type": "integer" + }, + "State": {}, + "PendingDeletion": { + "type": "boolean" + } + } + } + } + } + } + } + } + }, + "describeRankExpressions": { + "name": "DescribeRankExpressions", + "input": { + "type": "structure", + "members": { + "DomainName": { + "required": true + }, + "RankNames": { + "type": "list", + "members": {} + } + } + }, + "output": { + "type": "structure", + "members": { + "RankExpressions": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Options": { + "type": "structure", + "members": { + "RankName": {}, + "RankExpression": {} + } + }, + "Status": { + "type": "structure", + "members": { + "CreationDate": { + "type": "timestamp" + }, + "UpdateDate": { + "type": "timestamp" + }, + "UpdateVersion": { + "type": "integer" + }, + "State": {}, + "PendingDeletion": { + "type": "boolean" + } + } + } + } + } + } + } + } + }, + "describeServiceAccessPolicies": { + "name": "DescribeServiceAccessPolicies", + "input": { + "type": "structure", + "members": { + "DomainName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "AccessPolicies": { + "type": "structure", + "members": { + "Options": {}, + "Status": { + "type": "structure", + "members": { + "CreationDate": { + "type": "timestamp" + }, + "UpdateDate": { + "type": "timestamp" + }, + "UpdateVersion": { + "type": "integer" + }, + "State": {}, + "PendingDeletion": { + "type": "boolean" + } + } + } + } + } + } + } + }, + "describeStemmingOptions": { + "name": "DescribeStemmingOptions", + "input": { + "type": "structure", + "members": { + "DomainName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "Stems": { + "type": "structure", + "members": { + "Options": {}, + "Status": { + "type": "structure", + "members": { + "CreationDate": { + "type": "timestamp" + }, + "UpdateDate": { + "type": "timestamp" + }, + "UpdateVersion": { + "type": "integer" + }, + "State": {}, + "PendingDeletion": { + "type": "boolean" + } + } + } + } + } + } + } + }, + "describeStopwordOptions": { + "name": "DescribeStopwordOptions", + "input": { + "type": "structure", + "members": { + "DomainName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "Stopwords": { + "type": "structure", + "members": { + "Options": {}, + "Status": { + "type": "structure", + "members": { + "CreationDate": { + "type": "timestamp" + }, + "UpdateDate": { + "type": "timestamp" + }, + "UpdateVersion": { + "type": "integer" + }, + "State": {}, + "PendingDeletion": { + "type": "boolean" + } + } + } + } + } + } + } + }, + "describeSynonymOptions": { + "name": "DescribeSynonymOptions", + "input": { + "type": "structure", + "members": { + "DomainName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "Synonyms": { + "type": "structure", + "members": { + "Options": {}, + "Status": { + "type": "structure", + "members": { + "CreationDate": { + "type": "timestamp" + }, + "UpdateDate": { + "type": "timestamp" + }, + "UpdateVersion": { + "type": "integer" + }, + "State": {}, + "PendingDeletion": { + "type": "boolean" + } + } + } + } + } + } + } + }, + "indexDocuments": { + "name": "IndexDocuments", + "input": { + "type": "structure", + "members": { + "DomainName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "FieldNames": { + "type": "list", + "members": {} + } + } + } + }, + "updateDefaultSearchField": { + "name": "UpdateDefaultSearchField", + "input": { + "type": "structure", + "members": { + "DomainName": { + "required": true + }, + "DefaultSearchField": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "DefaultSearchField": { + "type": "structure", + "members": { + "Options": {}, + "Status": { + "type": "structure", + "members": { + "CreationDate": { + "type": "timestamp" + }, + "UpdateDate": { + "type": "timestamp" + }, + "UpdateVersion": { + "type": "integer" + }, + "State": {}, + "PendingDeletion": { + "type": "boolean" + } + } + } + } + } + } + } + }, + "updateServiceAccessPolicies": { + "name": "UpdateServiceAccessPolicies", + "input": { + "type": "structure", + "members": { + "DomainName": { + "required": true + }, + "AccessPolicies": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "AccessPolicies": { + "type": "structure", + "members": { + "Options": {}, + "Status": { + "type": "structure", + "members": { + "CreationDate": { + "type": "timestamp" + }, + "UpdateDate": { + "type": "timestamp" + }, + "UpdateVersion": { + "type": "integer" + }, + "State": {}, + "PendingDeletion": { + "type": "boolean" + } + } + } + } + } + } + } + }, + "updateStemmingOptions": { + "name": "UpdateStemmingOptions", + "input": { + "type": "structure", + "members": { + "DomainName": { + "required": true + }, + "Stems": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "Stems": { + "type": "structure", + "members": { + "Options": {}, + "Status": { + "type": "structure", + "members": { + "CreationDate": { + "type": "timestamp" + }, + "UpdateDate": { + "type": "timestamp" + }, + "UpdateVersion": { + "type": "integer" + }, + "State": {}, + "PendingDeletion": { + "type": "boolean" + } + } + } + } + } + } + } + }, + "updateStopwordOptions": { + "name": "UpdateStopwordOptions", + "input": { + "type": "structure", + "members": { + "DomainName": { + "required": true + }, + "Stopwords": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "Stopwords": { + "type": "structure", + "members": { + "Options": {}, + "Status": { + "type": "structure", + "members": { + "CreationDate": { + "type": "timestamp" + }, + "UpdateDate": { + "type": "timestamp" + }, + "UpdateVersion": { + "type": "integer" + }, + "State": {}, + "PendingDeletion": { + "type": "boolean" + } + } + } + } + } + } + } + }, + "updateSynonymOptions": { + "name": "UpdateSynonymOptions", + "input": { + "type": "structure", + "members": { + "DomainName": { + "required": true + }, + "Synonyms": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "Synonyms": { + "type": "structure", + "members": { + "Options": {}, + "Status": { + "type": "structure", + "members": { + "CreationDate": { + "type": "timestamp" + }, + "UpdateDate": { + "type": "timestamp" + }, + "UpdateVersion": { + "type": "integer" + }, + "State": {}, + "PendingDeletion": { + "type": "boolean" + } + } + } + } + } + } + } + } + }, + "pagination": { + "describeDomains": { + "resultKey": "DomainStatusList" + }, + "describeIndexFields": { + "resultKey": "IndexFields" + }, + "describeRankExpressions": { + "resultKey": "RankExpressions" + } + } +} \ No newline at end of file diff --git a/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/CloudSearch-2013-01-01.json b/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/CloudSearch-2013-01-01.json new file mode 100644 index 00000000..dc1ac991 --- /dev/null +++ b/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/CloudSearch-2013-01-01.json @@ -0,0 +1,2046 @@ +{ + "format": "query", + "apiVersion": "2013-01-01", + "endpointPrefix": "cloudsearch", + "resultWrapped": true, + "serviceFullName": "Amazon CloudSearch", + "signatureVersion": "v4", + "timestampFormat": "iso8601", + "operations": { + "buildSuggesters": { + "name": "BuildSuggesters", + "input": { + "type": "structure", + "members": { + "DomainName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "FieldNames": { + "type": "list", + "members": {} + } + } + } + }, + "createDomain": { + "name": "CreateDomain", + "input": { + "type": "structure", + "members": { + "DomainName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "DomainStatus": { + "type": "structure", + "members": { + "DomainId": {}, + "DomainName": {}, + "ARN": {}, + "Created": { + "type": "boolean" + }, + "Deleted": { + "type": "boolean" + }, + "DocService": { + "type": "structure", + "members": { + "Endpoint": {} + } + }, + "SearchService": { + "type": "structure", + "members": { + "Endpoint": {} + } + }, + "RequiresIndexDocuments": { + "type": "boolean" + }, + "Processing": { + "type": "boolean" + }, + "SearchInstanceType": {}, + "SearchPartitionCount": { + "type": "integer" + }, + "SearchInstanceCount": { + "type": "integer" + } + } + } + } + } + }, + "defineAnalysisScheme": { + "name": "DefineAnalysisScheme", + "input": { + "type": "structure", + "members": { + "DomainName": { + "required": true + }, + "AnalysisScheme": { + "type": "structure", + "members": { + "AnalysisSchemeName": { + "required": true + }, + "AnalysisSchemeLanguage": { + "required": true + }, + "AnalysisOptions": { + "type": "structure", + "members": { + "Synonyms": {}, + "Stopwords": {}, + "StemmingDictionary": {}, + "AlgorithmicStemming": {} + } + } + }, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "AnalysisScheme": { + "type": "structure", + "members": { + "Options": { + "type": "structure", + "members": { + "AnalysisSchemeName": {}, + "AnalysisSchemeLanguage": {}, + "AnalysisOptions": { + "type": "structure", + "members": { + "Synonyms": {}, + "Stopwords": {}, + "StemmingDictionary": {}, + "AlgorithmicStemming": {} + } + } + } + }, + "Status": { + "type": "structure", + "members": { + "CreationDate": { + "type": "timestamp" + }, + "UpdateDate": { + "type": "timestamp" + }, + "UpdateVersion": { + "type": "integer" + }, + "State": {}, + "PendingDeletion": { + "type": "boolean" + } + } + } + } + } + } + } + }, + "defineExpression": { + "name": "DefineExpression", + "input": { + "type": "structure", + "members": { + "DomainName": { + "required": true + }, + "Expression": { + "type": "structure", + "members": { + "ExpressionName": { + "required": true + }, + "ExpressionValue": { + "required": true + } + }, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "Expression": { + "type": "structure", + "members": { + "Options": { + "type": "structure", + "members": { + "ExpressionName": {}, + "ExpressionValue": {} + } + }, + "Status": { + "type": "structure", + "members": { + "CreationDate": { + "type": "timestamp" + }, + "UpdateDate": { + "type": "timestamp" + }, + "UpdateVersion": { + "type": "integer" + }, + "State": {}, + "PendingDeletion": { + "type": "boolean" + } + } + } + } + } + } + } + }, + "defineIndexField": { + "name": "DefineIndexField", + "input": { + "type": "structure", + "members": { + "DomainName": { + "required": true + }, + "IndexField": { + "type": "structure", + "members": { + "IndexFieldName": { + "required": true + }, + "IndexFieldType": { + "required": true + }, + "IntOptions": { + "type": "structure", + "members": { + "DefaultValue": { + "type": "integer" + }, + "SourceField": {}, + "FacetEnabled": { + "type": "boolean" + }, + "SearchEnabled": { + "type": "boolean" + }, + "ReturnEnabled": { + "type": "boolean" + }, + "SortEnabled": { + "type": "boolean" + } + } + }, + "DoubleOptions": { + "type": "structure", + "members": { + "DefaultValue": { + "type": "float" + }, + "SourceField": {}, + "FacetEnabled": { + "type": "boolean" + }, + "SearchEnabled": { + "type": "boolean" + }, + "ReturnEnabled": { + "type": "boolean" + }, + "SortEnabled": { + "type": "boolean" + } + } + }, + "LiteralOptions": { + "type": "structure", + "members": { + "DefaultValue": {}, + "SourceField": {}, + "FacetEnabled": { + "type": "boolean" + }, + "SearchEnabled": { + "type": "boolean" + }, + "ReturnEnabled": { + "type": "boolean" + }, + "SortEnabled": { + "type": "boolean" + } + } + }, + "TextOptions": { + "type": "structure", + "members": { + "DefaultValue": {}, + "SourceField": {}, + "ReturnEnabled": { + "type": "boolean" + }, + "SortEnabled": { + "type": "boolean" + }, + "HighlightEnabled": { + "type": "boolean" + }, + "AnalysisScheme": {} + } + }, + "DateOptions": { + "type": "structure", + "members": { + "DefaultValue": {}, + "SourceField": {}, + "FacetEnabled": { + "type": "boolean" + }, + "SearchEnabled": { + "type": "boolean" + }, + "ReturnEnabled": { + "type": "boolean" + }, + "SortEnabled": { + "type": "boolean" + } + } + }, + "LatLonOptions": { + "type": "structure", + "members": { + "DefaultValue": {}, + "SourceField": {}, + "FacetEnabled": { + "type": "boolean" + }, + "SearchEnabled": { + "type": "boolean" + }, + "ReturnEnabled": { + "type": "boolean" + }, + "SortEnabled": { + "type": "boolean" + } + } + }, + "IntArrayOptions": { + "type": "structure", + "members": { + "DefaultValue": { + "type": "integer" + }, + "SourceFields": {}, + "FacetEnabled": { + "type": "boolean" + }, + "SearchEnabled": { + "type": "boolean" + }, + "ReturnEnabled": { + "type": "boolean" + } + } + }, + "DoubleArrayOptions": { + "type": "structure", + "members": { + "DefaultValue": { + "type": "float" + }, + "SourceFields": {}, + "FacetEnabled": { + "type": "boolean" + }, + "SearchEnabled": { + "type": "boolean" + }, + "ReturnEnabled": { + "type": "boolean" + } + } + }, + "LiteralArrayOptions": { + "type": "structure", + "members": { + "DefaultValue": {}, + "SourceFields": {}, + "FacetEnabled": { + "type": "boolean" + }, + "SearchEnabled": { + "type": "boolean" + }, + "ReturnEnabled": { + "type": "boolean" + } + } + }, + "TextArrayOptions": { + "type": "structure", + "members": { + "DefaultValue": {}, + "SourceFields": {}, + "ReturnEnabled": { + "type": "boolean" + }, + "HighlightEnabled": { + "type": "boolean" + }, + "AnalysisScheme": {} + } + }, + "DateArrayOptions": { + "type": "structure", + "members": { + "DefaultValue": {}, + "SourceFields": {}, + "FacetEnabled": { + "type": "boolean" + }, + "SearchEnabled": { + "type": "boolean" + }, + "ReturnEnabled": { + "type": "boolean" + } + } + } + }, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "IndexField": { + "type": "structure", + "members": { + "Options": { + "type": "structure", + "members": { + "IndexFieldName": {}, + "IndexFieldType": {}, + "IntOptions": { + "type": "structure", + "members": { + "DefaultValue": { + "type": "integer" + }, + "SourceField": {}, + "FacetEnabled": { + "type": "boolean" + }, + "SearchEnabled": { + "type": "boolean" + }, + "ReturnEnabled": { + "type": "boolean" + }, + "SortEnabled": { + "type": "boolean" + } + } + }, + "DoubleOptions": { + "type": "structure", + "members": { + "DefaultValue": { + "type": "float" + }, + "SourceField": {}, + "FacetEnabled": { + "type": "boolean" + }, + "SearchEnabled": { + "type": "boolean" + }, + "ReturnEnabled": { + "type": "boolean" + }, + "SortEnabled": { + "type": "boolean" + } + } + }, + "LiteralOptions": { + "type": "structure", + "members": { + "DefaultValue": {}, + "SourceField": {}, + "FacetEnabled": { + "type": "boolean" + }, + "SearchEnabled": { + "type": "boolean" + }, + "ReturnEnabled": { + "type": "boolean" + }, + "SortEnabled": { + "type": "boolean" + } + } + }, + "TextOptions": { + "type": "structure", + "members": { + "DefaultValue": {}, + "SourceField": {}, + "ReturnEnabled": { + "type": "boolean" + }, + "SortEnabled": { + "type": "boolean" + }, + "HighlightEnabled": { + "type": "boolean" + }, + "AnalysisScheme": {} + } + }, + "DateOptions": { + "type": "structure", + "members": { + "DefaultValue": {}, + "SourceField": {}, + "FacetEnabled": { + "type": "boolean" + }, + "SearchEnabled": { + "type": "boolean" + }, + "ReturnEnabled": { + "type": "boolean" + }, + "SortEnabled": { + "type": "boolean" + } + } + }, + "LatLonOptions": { + "type": "structure", + "members": { + "DefaultValue": {}, + "SourceField": {}, + "FacetEnabled": { + "type": "boolean" + }, + "SearchEnabled": { + "type": "boolean" + }, + "ReturnEnabled": { + "type": "boolean" + }, + "SortEnabled": { + "type": "boolean" + } + } + }, + "IntArrayOptions": { + "type": "structure", + "members": { + "DefaultValue": { + "type": "integer" + }, + "SourceFields": {}, + "FacetEnabled": { + "type": "boolean" + }, + "SearchEnabled": { + "type": "boolean" + }, + "ReturnEnabled": { + "type": "boolean" + } + } + }, + "DoubleArrayOptions": { + "type": "structure", + "members": { + "DefaultValue": { + "type": "float" + }, + "SourceFields": {}, + "FacetEnabled": { + "type": "boolean" + }, + "SearchEnabled": { + "type": "boolean" + }, + "ReturnEnabled": { + "type": "boolean" + } + } + }, + "LiteralArrayOptions": { + "type": "structure", + "members": { + "DefaultValue": {}, + "SourceFields": {}, + "FacetEnabled": { + "type": "boolean" + }, + "SearchEnabled": { + "type": "boolean" + }, + "ReturnEnabled": { + "type": "boolean" + } + } + }, + "TextArrayOptions": { + "type": "structure", + "members": { + "DefaultValue": {}, + "SourceFields": {}, + "ReturnEnabled": { + "type": "boolean" + }, + "HighlightEnabled": { + "type": "boolean" + }, + "AnalysisScheme": {} + } + }, + "DateArrayOptions": { + "type": "structure", + "members": { + "DefaultValue": {}, + "SourceFields": {}, + "FacetEnabled": { + "type": "boolean" + }, + "SearchEnabled": { + "type": "boolean" + }, + "ReturnEnabled": { + "type": "boolean" + } + } + } + } + }, + "Status": { + "type": "structure", + "members": { + "CreationDate": { + "type": "timestamp" + }, + "UpdateDate": { + "type": "timestamp" + }, + "UpdateVersion": { + "type": "integer" + }, + "State": {}, + "PendingDeletion": { + "type": "boolean" + } + } + } + } + } + } + } + }, + "defineSuggester": { + "name": "DefineSuggester", + "input": { + "type": "structure", + "members": { + "DomainName": { + "required": true + }, + "Suggester": { + "type": "structure", + "members": { + "SuggesterName": { + "required": true + }, + "DocumentSuggesterOptions": { + "type": "structure", + "members": { + "SourceField": { + "required": true + }, + "FuzzyMatching": {}, + "SortExpression": {} + }, + "required": true + } + }, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "Suggester": { + "type": "structure", + "members": { + "Options": { + "type": "structure", + "members": { + "SuggesterName": {}, + "DocumentSuggesterOptions": { + "type": "structure", + "members": { + "SourceField": {}, + "FuzzyMatching": {}, + "SortExpression": {} + } + } + } + }, + "Status": { + "type": "structure", + "members": { + "CreationDate": { + "type": "timestamp" + }, + "UpdateDate": { + "type": "timestamp" + }, + "UpdateVersion": { + "type": "integer" + }, + "State": {}, + "PendingDeletion": { + "type": "boolean" + } + } + } + } + } + } + } + }, + "deleteAnalysisScheme": { + "name": "DeleteAnalysisScheme", + "input": { + "type": "structure", + "members": { + "DomainName": { + "required": true + }, + "AnalysisSchemeName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "AnalysisScheme": { + "type": "structure", + "members": { + "Options": { + "type": "structure", + "members": { + "AnalysisSchemeName": {}, + "AnalysisSchemeLanguage": {}, + "AnalysisOptions": { + "type": "structure", + "members": { + "Synonyms": {}, + "Stopwords": {}, + "StemmingDictionary": {}, + "AlgorithmicStemming": {} + } + } + } + }, + "Status": { + "type": "structure", + "members": { + "CreationDate": { + "type": "timestamp" + }, + "UpdateDate": { + "type": "timestamp" + }, + "UpdateVersion": { + "type": "integer" + }, + "State": {}, + "PendingDeletion": { + "type": "boolean" + } + } + } + } + } + } + } + }, + "deleteDomain": { + "name": "DeleteDomain", + "input": { + "type": "structure", + "members": { + "DomainName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "DomainStatus": { + "type": "structure", + "members": { + "DomainId": {}, + "DomainName": {}, + "ARN": {}, + "Created": { + "type": "boolean" + }, + "Deleted": { + "type": "boolean" + }, + "DocService": { + "type": "structure", + "members": { + "Endpoint": {} + } + }, + "SearchService": { + "type": "structure", + "members": { + "Endpoint": {} + } + }, + "RequiresIndexDocuments": { + "type": "boolean" + }, + "Processing": { + "type": "boolean" + }, + "SearchInstanceType": {}, + "SearchPartitionCount": { + "type": "integer" + }, + "SearchInstanceCount": { + "type": "integer" + } + } + } + } + } + }, + "deleteExpression": { + "name": "DeleteExpression", + "input": { + "type": "structure", + "members": { + "DomainName": { + "required": true + }, + "ExpressionName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "Expression": { + "type": "structure", + "members": { + "Options": { + "type": "structure", + "members": { + "ExpressionName": {}, + "ExpressionValue": {} + } + }, + "Status": { + "type": "structure", + "members": { + "CreationDate": { + "type": "timestamp" + }, + "UpdateDate": { + "type": "timestamp" + }, + "UpdateVersion": { + "type": "integer" + }, + "State": {}, + "PendingDeletion": { + "type": "boolean" + } + } + } + } + } + } + } + }, + "deleteIndexField": { + "name": "DeleteIndexField", + "input": { + "type": "structure", + "members": { + "DomainName": { + "required": true + }, + "IndexFieldName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "IndexField": { + "type": "structure", + "members": { + "Options": { + "type": "structure", + "members": { + "IndexFieldName": {}, + "IndexFieldType": {}, + "IntOptions": { + "type": "structure", + "members": { + "DefaultValue": { + "type": "integer" + }, + "SourceField": {}, + "FacetEnabled": { + "type": "boolean" + }, + "SearchEnabled": { + "type": "boolean" + }, + "ReturnEnabled": { + "type": "boolean" + }, + "SortEnabled": { + "type": "boolean" + } + } + }, + "DoubleOptions": { + "type": "structure", + "members": { + "DefaultValue": { + "type": "float" + }, + "SourceField": {}, + "FacetEnabled": { + "type": "boolean" + }, + "SearchEnabled": { + "type": "boolean" + }, + "ReturnEnabled": { + "type": "boolean" + }, + "SortEnabled": { + "type": "boolean" + } + } + }, + "LiteralOptions": { + "type": "structure", + "members": { + "DefaultValue": {}, + "SourceField": {}, + "FacetEnabled": { + "type": "boolean" + }, + "SearchEnabled": { + "type": "boolean" + }, + "ReturnEnabled": { + "type": "boolean" + }, + "SortEnabled": { + "type": "boolean" + } + } + }, + "TextOptions": { + "type": "structure", + "members": { + "DefaultValue": {}, + "SourceField": {}, + "ReturnEnabled": { + "type": "boolean" + }, + "SortEnabled": { + "type": "boolean" + }, + "HighlightEnabled": { + "type": "boolean" + }, + "AnalysisScheme": {} + } + }, + "DateOptions": { + "type": "structure", + "members": { + "DefaultValue": {}, + "SourceField": {}, + "FacetEnabled": { + "type": "boolean" + }, + "SearchEnabled": { + "type": "boolean" + }, + "ReturnEnabled": { + "type": "boolean" + }, + "SortEnabled": { + "type": "boolean" + } + } + }, + "LatLonOptions": { + "type": "structure", + "members": { + "DefaultValue": {}, + "SourceField": {}, + "FacetEnabled": { + "type": "boolean" + }, + "SearchEnabled": { + "type": "boolean" + }, + "ReturnEnabled": { + "type": "boolean" + }, + "SortEnabled": { + "type": "boolean" + } + } + }, + "IntArrayOptions": { + "type": "structure", + "members": { + "DefaultValue": { + "type": "integer" + }, + "SourceFields": {}, + "FacetEnabled": { + "type": "boolean" + }, + "SearchEnabled": { + "type": "boolean" + }, + "ReturnEnabled": { + "type": "boolean" + } + } + }, + "DoubleArrayOptions": { + "type": "structure", + "members": { + "DefaultValue": { + "type": "float" + }, + "SourceFields": {}, + "FacetEnabled": { + "type": "boolean" + }, + "SearchEnabled": { + "type": "boolean" + }, + "ReturnEnabled": { + "type": "boolean" + } + } + }, + "LiteralArrayOptions": { + "type": "structure", + "members": { + "DefaultValue": {}, + "SourceFields": {}, + "FacetEnabled": { + "type": "boolean" + }, + "SearchEnabled": { + "type": "boolean" + }, + "ReturnEnabled": { + "type": "boolean" + } + } + }, + "TextArrayOptions": { + "type": "structure", + "members": { + "DefaultValue": {}, + "SourceFields": {}, + "ReturnEnabled": { + "type": "boolean" + }, + "HighlightEnabled": { + "type": "boolean" + }, + "AnalysisScheme": {} + } + }, + "DateArrayOptions": { + "type": "structure", + "members": { + "DefaultValue": {}, + "SourceFields": {}, + "FacetEnabled": { + "type": "boolean" + }, + "SearchEnabled": { + "type": "boolean" + }, + "ReturnEnabled": { + "type": "boolean" + } + } + } + } + }, + "Status": { + "type": "structure", + "members": { + "CreationDate": { + "type": "timestamp" + }, + "UpdateDate": { + "type": "timestamp" + }, + "UpdateVersion": { + "type": "integer" + }, + "State": {}, + "PendingDeletion": { + "type": "boolean" + } + } + } + } + } + } + } + }, + "deleteSuggester": { + "name": "DeleteSuggester", + "input": { + "type": "structure", + "members": { + "DomainName": { + "required": true + }, + "SuggesterName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "Suggester": { + "type": "structure", + "members": { + "Options": { + "type": "structure", + "members": { + "SuggesterName": {}, + "DocumentSuggesterOptions": { + "type": "structure", + "members": { + "SourceField": {}, + "FuzzyMatching": {}, + "SortExpression": {} + } + } + } + }, + "Status": { + "type": "structure", + "members": { + "CreationDate": { + "type": "timestamp" + }, + "UpdateDate": { + "type": "timestamp" + }, + "UpdateVersion": { + "type": "integer" + }, + "State": {}, + "PendingDeletion": { + "type": "boolean" + } + } + } + } + } + } + } + }, + "describeAnalysisSchemes": { + "name": "DescribeAnalysisSchemes", + "input": { + "type": "structure", + "members": { + "DomainName": { + "required": true + }, + "AnalysisSchemeNames": { + "type": "list", + "members": {} + }, + "Deployed": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "AnalysisSchemes": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Options": { + "type": "structure", + "members": { + "AnalysisSchemeName": {}, + "AnalysisSchemeLanguage": {}, + "AnalysisOptions": { + "type": "structure", + "members": { + "Synonyms": {}, + "Stopwords": {}, + "StemmingDictionary": {}, + "AlgorithmicStemming": {} + } + } + } + }, + "Status": { + "type": "structure", + "members": { + "CreationDate": { + "type": "timestamp" + }, + "UpdateDate": { + "type": "timestamp" + }, + "UpdateVersion": { + "type": "integer" + }, + "State": {}, + "PendingDeletion": { + "type": "boolean" + } + } + } + } + } + } + } + } + }, + "describeAvailabilityOptions": { + "name": "DescribeAvailabilityOptions", + "input": { + "type": "structure", + "members": { + "DomainName": { + "required": true + }, + "Deployed": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "AvailabilityOptions": { + "type": "structure", + "members": { + "Options": { + "type": "boolean" + }, + "Status": { + "type": "structure", + "members": { + "CreationDate": { + "type": "timestamp" + }, + "UpdateDate": { + "type": "timestamp" + }, + "UpdateVersion": { + "type": "integer" + }, + "State": {}, + "PendingDeletion": { + "type": "boolean" + } + } + } + } + } + } + } + }, + "describeDomains": { + "name": "DescribeDomains", + "input": { + "type": "structure", + "members": { + "DomainNames": { + "type": "list", + "members": {} + } + } + }, + "output": { + "type": "structure", + "members": { + "DomainStatusList": { + "type": "list", + "members": { + "type": "structure", + "members": { + "DomainId": {}, + "DomainName": {}, + "ARN": {}, + "Created": { + "type": "boolean" + }, + "Deleted": { + "type": "boolean" + }, + "DocService": { + "type": "structure", + "members": { + "Endpoint": {} + } + }, + "SearchService": { + "type": "structure", + "members": { + "Endpoint": {} + } + }, + "RequiresIndexDocuments": { + "type": "boolean" + }, + "Processing": { + "type": "boolean" + }, + "SearchInstanceType": {}, + "SearchPartitionCount": { + "type": "integer" + }, + "SearchInstanceCount": { + "type": "integer" + } + } + } + } + } + } + }, + "describeExpressions": { + "name": "DescribeExpressions", + "input": { + "type": "structure", + "members": { + "DomainName": { + "required": true + }, + "ExpressionNames": { + "type": "list", + "members": {} + }, + "Deployed": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "Expressions": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Options": { + "type": "structure", + "members": { + "ExpressionName": {}, + "ExpressionValue": {} + } + }, + "Status": { + "type": "structure", + "members": { + "CreationDate": { + "type": "timestamp" + }, + "UpdateDate": { + "type": "timestamp" + }, + "UpdateVersion": { + "type": "integer" + }, + "State": {}, + "PendingDeletion": { + "type": "boolean" + } + } + } + } + } + } + } + } + }, + "describeIndexFields": { + "name": "DescribeIndexFields", + "input": { + "type": "structure", + "members": { + "DomainName": { + "required": true + }, + "FieldNames": { + "type": "list", + "members": {} + }, + "Deployed": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "IndexFields": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Options": { + "type": "structure", + "members": { + "IndexFieldName": {}, + "IndexFieldType": {}, + "IntOptions": { + "type": "structure", + "members": { + "DefaultValue": { + "type": "integer" + }, + "SourceField": {}, + "FacetEnabled": { + "type": "boolean" + }, + "SearchEnabled": { + "type": "boolean" + }, + "ReturnEnabled": { + "type": "boolean" + }, + "SortEnabled": { + "type": "boolean" + } + } + }, + "DoubleOptions": { + "type": "structure", + "members": { + "DefaultValue": { + "type": "float" + }, + "SourceField": {}, + "FacetEnabled": { + "type": "boolean" + }, + "SearchEnabled": { + "type": "boolean" + }, + "ReturnEnabled": { + "type": "boolean" + }, + "SortEnabled": { + "type": "boolean" + } + } + }, + "LiteralOptions": { + "type": "structure", + "members": { + "DefaultValue": {}, + "SourceField": {}, + "FacetEnabled": { + "type": "boolean" + }, + "SearchEnabled": { + "type": "boolean" + }, + "ReturnEnabled": { + "type": "boolean" + }, + "SortEnabled": { + "type": "boolean" + } + } + }, + "TextOptions": { + "type": "structure", + "members": { + "DefaultValue": {}, + "SourceField": {}, + "ReturnEnabled": { + "type": "boolean" + }, + "SortEnabled": { + "type": "boolean" + }, + "HighlightEnabled": { + "type": "boolean" + }, + "AnalysisScheme": {} + } + }, + "DateOptions": { + "type": "structure", + "members": { + "DefaultValue": {}, + "SourceField": {}, + "FacetEnabled": { + "type": "boolean" + }, + "SearchEnabled": { + "type": "boolean" + }, + "ReturnEnabled": { + "type": "boolean" + }, + "SortEnabled": { + "type": "boolean" + } + } + }, + "LatLonOptions": { + "type": "structure", + "members": { + "DefaultValue": {}, + "SourceField": {}, + "FacetEnabled": { + "type": "boolean" + }, + "SearchEnabled": { + "type": "boolean" + }, + "ReturnEnabled": { + "type": "boolean" + }, + "SortEnabled": { + "type": "boolean" + } + } + }, + "IntArrayOptions": { + "type": "structure", + "members": { + "DefaultValue": { + "type": "integer" + }, + "SourceFields": {}, + "FacetEnabled": { + "type": "boolean" + }, + "SearchEnabled": { + "type": "boolean" + }, + "ReturnEnabled": { + "type": "boolean" + } + } + }, + "DoubleArrayOptions": { + "type": "structure", + "members": { + "DefaultValue": { + "type": "float" + }, + "SourceFields": {}, + "FacetEnabled": { + "type": "boolean" + }, + "SearchEnabled": { + "type": "boolean" + }, + "ReturnEnabled": { + "type": "boolean" + } + } + }, + "LiteralArrayOptions": { + "type": "structure", + "members": { + "DefaultValue": {}, + "SourceFields": {}, + "FacetEnabled": { + "type": "boolean" + }, + "SearchEnabled": { + "type": "boolean" + }, + "ReturnEnabled": { + "type": "boolean" + } + } + }, + "TextArrayOptions": { + "type": "structure", + "members": { + "DefaultValue": {}, + "SourceFields": {}, + "ReturnEnabled": { + "type": "boolean" + }, + "HighlightEnabled": { + "type": "boolean" + }, + "AnalysisScheme": {} + } + }, + "DateArrayOptions": { + "type": "structure", + "members": { + "DefaultValue": {}, + "SourceFields": {}, + "FacetEnabled": { + "type": "boolean" + }, + "SearchEnabled": { + "type": "boolean" + }, + "ReturnEnabled": { + "type": "boolean" + } + } + } + } + }, + "Status": { + "type": "structure", + "members": { + "CreationDate": { + "type": "timestamp" + }, + "UpdateDate": { + "type": "timestamp" + }, + "UpdateVersion": { + "type": "integer" + }, + "State": {}, + "PendingDeletion": { + "type": "boolean" + } + } + } + } + } + } + } + } + }, + "describeScalingParameters": { + "name": "DescribeScalingParameters", + "input": { + "type": "structure", + "members": { + "DomainName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "ScalingParameters": { + "type": "structure", + "members": { + "Options": { + "type": "structure", + "members": { + "DesiredInstanceType": {}, + "DesiredReplicationCount": { + "type": "integer" + } + } + }, + "Status": { + "type": "structure", + "members": { + "CreationDate": { + "type": "timestamp" + }, + "UpdateDate": { + "type": "timestamp" + }, + "UpdateVersion": { + "type": "integer" + }, + "State": {}, + "PendingDeletion": { + "type": "boolean" + } + } + } + } + } + } + } + }, + "describeServiceAccessPolicies": { + "name": "DescribeServiceAccessPolicies", + "input": { + "type": "structure", + "members": { + "DomainName": { + "required": true + }, + "Deployed": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "AccessPolicies": { + "type": "structure", + "members": { + "Options": {}, + "Status": { + "type": "structure", + "members": { + "CreationDate": { + "type": "timestamp" + }, + "UpdateDate": { + "type": "timestamp" + }, + "UpdateVersion": { + "type": "integer" + }, + "State": {}, + "PendingDeletion": { + "type": "boolean" + } + } + } + } + } + } + } + }, + "describeSuggesters": { + "name": "DescribeSuggesters", + "input": { + "type": "structure", + "members": { + "DomainName": { + "required": true + }, + "SuggesterNames": { + "type": "list", + "members": {} + }, + "Deployed": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "Suggesters": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Options": { + "type": "structure", + "members": { + "SuggesterName": {}, + "DocumentSuggesterOptions": { + "type": "structure", + "members": { + "SourceField": {}, + "FuzzyMatching": {}, + "SortExpression": {} + } + } + } + }, + "Status": { + "type": "structure", + "members": { + "CreationDate": { + "type": "timestamp" + }, + "UpdateDate": { + "type": "timestamp" + }, + "UpdateVersion": { + "type": "integer" + }, + "State": {}, + "PendingDeletion": { + "type": "boolean" + } + } + } + } + } + } + } + } + }, + "indexDocuments": { + "name": "IndexDocuments", + "input": { + "type": "structure", + "members": { + "DomainName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "FieldNames": { + "type": "list", + "members": {} + } + } + } + }, + "listDomainNames": { + "name": "ListDomainNames", + "input": { + "type": "structure", + "members": {} + }, + "output": { + "type": "structure", + "members": { + "DomainNames": { + "type": "map", + "keys": {}, + "members": {} + } + } + } + }, + "updateAvailabilityOptions": { + "name": "UpdateAvailabilityOptions", + "input": { + "type": "structure", + "members": { + "DomainName": { + "required": true + }, + "MultiAZ": { + "type": "boolean", + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "AvailabilityOptions": { + "type": "structure", + "members": { + "Options": { + "type": "boolean" + }, + "Status": { + "type": "structure", + "members": { + "CreationDate": { + "type": "timestamp" + }, + "UpdateDate": { + "type": "timestamp" + }, + "UpdateVersion": { + "type": "integer" + }, + "State": {}, + "PendingDeletion": { + "type": "boolean" + } + } + } + } + } + } + } + }, + "updateScalingParameters": { + "name": "UpdateScalingParameters", + "input": { + "type": "structure", + "members": { + "DomainName": { + "required": true + }, + "ScalingParameters": { + "type": "structure", + "members": { + "DesiredInstanceType": {}, + "DesiredReplicationCount": { + "type": "integer" + } + }, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "ScalingParameters": { + "type": "structure", + "members": { + "Options": { + "type": "structure", + "members": { + "DesiredInstanceType": {}, + "DesiredReplicationCount": { + "type": "integer" + } + } + }, + "Status": { + "type": "structure", + "members": { + "CreationDate": { + "type": "timestamp" + }, + "UpdateDate": { + "type": "timestamp" + }, + "UpdateVersion": { + "type": "integer" + }, + "State": {}, + "PendingDeletion": { + "type": "boolean" + } + } + } + } + } + } + } + }, + "updateServiceAccessPolicies": { + "name": "UpdateServiceAccessPolicies", + "input": { + "type": "structure", + "members": { + "DomainName": { + "required": true + }, + "AccessPolicies": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "AccessPolicies": { + "type": "structure", + "members": { + "Options": {}, + "Status": { + "type": "structure", + "members": { + "CreationDate": { + "type": "timestamp" + }, + "UpdateDate": { + "type": "timestamp" + }, + "UpdateVersion": { + "type": "integer" + }, + "State": {}, + "PendingDeletion": { + "type": "boolean" + } + } + } + } + } + } + } + } + }, + "pagination": { + "describeAnalysisSchemes": { + "resultKey": "AnalysisSchemes" + }, + "describeDomains": { + "resultKey": "DomainStatusList" + }, + "describeExpressions": { + "resultKey": "Expressions" + }, + "describeIndexFields": { + "resultKey": "IndexFields" + }, + "describeSuggesters": { + "resultKey": "Suggesters" + } + } +} \ No newline at end of file diff --git a/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/CloudTrail-2013-11-01.json b/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/CloudTrail-2013-11-01.json new file mode 100644 index 00000000..a322d290 --- /dev/null +++ b/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/CloudTrail-2013-11-01.json @@ -0,0 +1,231 @@ +{ + "format": "json", + "apiVersion": "2013-11-01", + "endpointPrefix": "cloudtrail", + "jsonVersion": "1.1", + "serviceAbbreviation": "CloudTrail", + "serviceFullName": "AWS CloudTrail", + "signatureVersion": "v4", + "targetPrefix": "com.amazonaws.cloudtrail.v20131101.CloudTrail_20131101", + "timestampFormat": "iso8601", + "operations": { + "createTrail": { + "name": "CreateTrail", + "input": { + "type": "structure", + "members": { + "Name": {}, + "S3BucketName": {}, + "S3KeyPrefix": {}, + "SnsTopicName": {}, + "IncludeGlobalServiceEvents": { + "type": "boolean" + }, + "trail": { + "type": "structure", + "members": { + "Name": {}, + "S3BucketName": {}, + "S3KeyPrefix": {}, + "SnsTopicName": {}, + "IncludeGlobalServiceEvents": { + "type": "boolean" + } + } + } + } + }, + "output": { + "type": "structure", + "members": { + "Name": {}, + "S3BucketName": {}, + "S3KeyPrefix": {}, + "SnsTopicName": {}, + "IncludeGlobalServiceEvents": { + "type": "boolean" + }, + "trail": { + "type": "structure", + "members": { + "Name": {}, + "S3BucketName": {}, + "S3KeyPrefix": {}, + "SnsTopicName": {}, + "IncludeGlobalServiceEvents": { + "type": "boolean" + } + } + } + } + } + }, + "deleteTrail": { + "name": "DeleteTrail", + "input": { + "type": "structure", + "members": { + "Name": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "describeTrails": { + "name": "DescribeTrails", + "input": { + "type": "structure", + "members": { + "trailNameList": { + "type": "list", + "members": {} + } + } + }, + "output": { + "type": "structure", + "members": { + "trailList": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": {}, + "S3BucketName": {}, + "S3KeyPrefix": {}, + "SnsTopicName": {}, + "IncludeGlobalServiceEvents": { + "type": "boolean" + } + } + } + } + } + } + }, + "getTrailStatus": { + "name": "GetTrailStatus", + "input": { + "type": "structure", + "members": { + "Name": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "IsLogging": { + "type": "boolean" + }, + "LatestDeliveryError": {}, + "LatestNotificationError": {}, + "LatestDeliveryTime": { + "type": "timestamp" + }, + "LatestNotificationTime": { + "type": "timestamp" + }, + "StartLoggingTime": { + "type": "timestamp" + }, + "StopLoggingTime": { + "type": "timestamp" + }, + "LatestDeliveryAttemptTime": {}, + "LatestNotificationAttemptTime": {}, + "LatestNotificationAttemptSucceeded": {}, + "LatestDeliveryAttemptSucceeded": {}, + "TimeLoggingStarted": {}, + "TimeLoggingStopped": {} + } + } + }, + "startLogging": { + "name": "StartLogging", + "input": { + "type": "structure", + "members": { + "Name": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "stopLogging": { + "name": "StopLogging", + "input": { + "type": "structure", + "members": { + "Name": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "updateTrail": { + "name": "UpdateTrail", + "input": { + "type": "structure", + "members": { + "Name": {}, + "S3BucketName": {}, + "S3KeyPrefix": {}, + "SnsTopicName": {}, + "IncludeGlobalServiceEvents": { + "type": "boolean" + }, + "trail": { + "type": "structure", + "members": { + "Name": {}, + "S3BucketName": {}, + "S3KeyPrefix": {}, + "SnsTopicName": {}, + "IncludeGlobalServiceEvents": { + "type": "boolean" + } + } + } + } + }, + "output": { + "type": "structure", + "members": { + "Name": {}, + "S3BucketName": {}, + "S3KeyPrefix": {}, + "SnsTopicName": {}, + "IncludeGlobalServiceEvents": { + "type": "boolean" + }, + "trail": { + "type": "structure", + "members": { + "Name": {}, + "S3BucketName": {}, + "S3KeyPrefix": {}, + "SnsTopicName": {}, + "IncludeGlobalServiceEvents": { + "type": "boolean" + } + } + } + } + } + } + } +} \ No newline at end of file diff --git a/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/CloudWatch-2010-08-01.json b/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/CloudWatch-2010-08-01.json new file mode 100644 index 00000000..d3c1e2d6 --- /dev/null +++ b/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/CloudWatch-2010-08-01.json @@ -0,0 +1,612 @@ +{ + "format": "query", + "apiVersion": "2010-08-01", + "endpointPrefix": "monitoring", + "resultWrapped": true, + "serviceAbbreviation": "CloudWatch", + "serviceFullName": "Amazon CloudWatch", + "signatureVersion": "v4", + "timestampFormat": "iso8601", + "operations": { + "deleteAlarms": { + "name": "DeleteAlarms", + "input": { + "type": "structure", + "members": { + "AlarmNames": { + "type": "list", + "members": {}, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "describeAlarmHistory": { + "name": "DescribeAlarmHistory", + "input": { + "type": "structure", + "members": { + "AlarmName": {}, + "HistoryItemType": {}, + "StartDate": { + "type": "timestamp" + }, + "EndDate": { + "type": "timestamp" + }, + "MaxRecords": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "AlarmHistoryItems": { + "type": "list", + "members": { + "type": "structure", + "members": { + "AlarmName": {}, + "Timestamp": { + "type": "timestamp" + }, + "HistoryItemType": {}, + "HistorySummary": {}, + "HistoryData": {} + } + } + }, + "NextToken": {} + } + } + }, + "describeAlarms": { + "name": "DescribeAlarms", + "input": { + "type": "structure", + "members": { + "AlarmNames": { + "type": "list", + "members": {} + }, + "AlarmNamePrefix": {}, + "StateValue": {}, + "ActionPrefix": {}, + "MaxRecords": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "MetricAlarms": { + "type": "list", + "members": { + "type": "structure", + "members": { + "AlarmName": {}, + "AlarmArn": {}, + "AlarmDescription": {}, + "AlarmConfigurationUpdatedTimestamp": { + "type": "timestamp" + }, + "ActionsEnabled": { + "type": "boolean" + }, + "OKActions": { + "type": "list", + "members": {} + }, + "AlarmActions": { + "type": "list", + "members": {} + }, + "InsufficientDataActions": { + "type": "list", + "members": {} + }, + "StateValue": {}, + "StateReason": {}, + "StateReasonData": {}, + "StateUpdatedTimestamp": { + "type": "timestamp" + }, + "MetricName": {}, + "Namespace": {}, + "Statistic": {}, + "Dimensions": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": {}, + "Value": {} + } + } + }, + "Period": { + "type": "integer" + }, + "Unit": {}, + "EvaluationPeriods": { + "type": "integer" + }, + "Threshold": { + "type": "float" + }, + "ComparisonOperator": {} + } + } + }, + "NextToken": {} + } + } + }, + "describeAlarmsForMetric": { + "name": "DescribeAlarmsForMetric", + "input": { + "type": "structure", + "members": { + "MetricName": { + "required": true + }, + "Namespace": { + "required": true + }, + "Statistic": {}, + "Dimensions": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": { + "required": true + }, + "Value": { + "required": true + } + }, + "order": [ + "Name", + "Value" + ] + } + }, + "Period": { + "type": "integer" + }, + "Unit": {} + } + }, + "output": { + "type": "structure", + "members": { + "MetricAlarms": { + "type": "list", + "members": { + "type": "structure", + "members": { + "AlarmName": {}, + "AlarmArn": {}, + "AlarmDescription": {}, + "AlarmConfigurationUpdatedTimestamp": { + "type": "timestamp" + }, + "ActionsEnabled": { + "type": "boolean" + }, + "OKActions": { + "type": "list", + "members": {} + }, + "AlarmActions": { + "type": "list", + "members": {} + }, + "InsufficientDataActions": { + "type": "list", + "members": {} + }, + "StateValue": {}, + "StateReason": {}, + "StateReasonData": {}, + "StateUpdatedTimestamp": { + "type": "timestamp" + }, + "MetricName": {}, + "Namespace": {}, + "Statistic": {}, + "Dimensions": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": {}, + "Value": {} + } + } + }, + "Period": { + "type": "integer" + }, + "Unit": {}, + "EvaluationPeriods": { + "type": "integer" + }, + "Threshold": { + "type": "float" + }, + "ComparisonOperator": {} + } + } + } + } + } + }, + "disableAlarmActions": { + "name": "DisableAlarmActions", + "input": { + "type": "structure", + "members": { + "AlarmNames": { + "type": "list", + "members": {}, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "enableAlarmActions": { + "name": "EnableAlarmActions", + "input": { + "type": "structure", + "members": { + "AlarmNames": { + "type": "list", + "members": {}, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "getMetricStatistics": { + "name": "GetMetricStatistics", + "input": { + "type": "structure", + "members": { + "Namespace": { + "required": true + }, + "MetricName": { + "required": true + }, + "Dimensions": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": { + "required": true + }, + "Value": { + "required": true + } + }, + "order": [ + "Name", + "Value" + ] + } + }, + "StartTime": { + "type": "timestamp", + "required": true + }, + "EndTime": { + "type": "timestamp", + "required": true + }, + "Period": { + "type": "integer", + "required": true + }, + "Statistics": { + "type": "list", + "members": {}, + "required": true + }, + "Unit": {} + } + }, + "output": { + "type": "structure", + "members": { + "Label": {}, + "Datapoints": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Timestamp": { + "type": "timestamp" + }, + "SampleCount": { + "type": "float" + }, + "Average": { + "type": "float" + }, + "Sum": { + "type": "float" + }, + "Minimum": { + "type": "float" + }, + "Maximum": { + "type": "float" + }, + "Unit": {} + } + } + } + } + } + }, + "listMetrics": { + "name": "ListMetrics", + "input": { + "type": "structure", + "members": { + "Namespace": {}, + "MetricName": {}, + "Dimensions": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": { + "required": true + }, + "Value": {} + } + } + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "Metrics": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Namespace": {}, + "MetricName": {}, + "Dimensions": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": {}, + "Value": {} + } + } + } + } + } + }, + "NextToken": {} + } + } + }, + "putMetricAlarm": { + "name": "PutMetricAlarm", + "input": { + "type": "structure", + "members": { + "AlarmName": { + "required": true + }, + "AlarmDescription": {}, + "ActionsEnabled": { + "type": "boolean" + }, + "OKActions": { + "type": "list", + "members": {} + }, + "AlarmActions": { + "type": "list", + "members": {} + }, + "InsufficientDataActions": { + "type": "list", + "members": {} + }, + "MetricName": { + "required": true + }, + "Namespace": { + "required": true + }, + "Statistic": { + "required": true + }, + "Dimensions": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": { + "required": true + }, + "Value": { + "required": true + } + }, + "order": [ + "Name", + "Value" + ] + } + }, + "Period": { + "type": "integer", + "required": true + }, + "Unit": {}, + "EvaluationPeriods": { + "type": "integer", + "required": true + }, + "Threshold": { + "type": "float", + "required": true + }, + "ComparisonOperator": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "putMetricData": { + "name": "PutMetricData", + "input": { + "type": "structure", + "members": { + "Namespace": { + "required": true + }, + "MetricData": { + "type": "list", + "members": { + "type": "structure", + "members": { + "MetricName": { + "required": true + }, + "Dimensions": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": { + "required": true + }, + "Value": { + "required": true + } + }, + "order": [ + "Name", + "Value" + ] + } + }, + "Timestamp": { + "type": "timestamp" + }, + "Value": { + "type": "float" + }, + "StatisticValues": { + "type": "structure", + "members": { + "SampleCount": { + "type": "float", + "required": true + }, + "Sum": { + "type": "float", + "required": true + }, + "Minimum": { + "type": "float", + "required": true + }, + "Maximum": { + "type": "float", + "required": true + } + } + }, + "Unit": {} + } + }, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "setAlarmState": { + "name": "SetAlarmState", + "input": { + "type": "structure", + "members": { + "AlarmName": { + "required": true + }, + "StateValue": { + "required": true + }, + "StateReason": { + "required": true + }, + "StateReasonData": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + } + }, + "pagination": { + "describeAlarmHistory": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "limitKey": "MaxRecords", + "resultKey": "AlarmHistoryItems" + }, + "describeAlarms": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "limitKey": "MaxRecords", + "resultKey": "MetricAlarms" + }, + "describeAlarmsForMetric": { + "resultKey": "MetricAlarms" + }, + "listMetrics": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "resultKey": "Metrics" + } + } +} \ No newline at end of file diff --git a/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/DataPipeline-2012-10-29.json b/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/DataPipeline-2012-10-29.json new file mode 100644 index 00000000..0686c8a0 --- /dev/null +++ b/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/DataPipeline-2012-10-29.json @@ -0,0 +1,606 @@ +{ + "format": "json", + "apiVersion": "2012-10-29", + "endpointPrefix": "datapipeline", + "jsonVersion": "1.1", + "serviceFullName": "AWS Data Pipeline", + "signatureVersion": "v4", + "targetPrefix": "DataPipeline", + "timestampFormat": "iso8601", + "operations": { + "activatePipeline": { + "name": "ActivatePipeline", + "input": { + "type": "structure", + "members": { + "pipelineId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "createPipeline": { + "name": "CreatePipeline", + "input": { + "type": "structure", + "members": { + "name": { + "required": true + }, + "uniqueId": { + "required": true + }, + "description": {} + } + }, + "output": { + "type": "structure", + "members": { + "pipelineId": {} + } + } + }, + "deletePipeline": { + "name": "DeletePipeline", + "input": { + "type": "structure", + "members": { + "pipelineId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "describeObjects": { + "name": "DescribeObjects", + "input": { + "type": "structure", + "members": { + "pipelineId": { + "required": true + }, + "objectIds": { + "type": "list", + "members": {}, + "required": true + }, + "evaluateExpressions": { + "type": "boolean" + }, + "marker": {} + } + }, + "output": { + "type": "structure", + "members": { + "pipelineObjects": { + "type": "list", + "members": { + "type": "structure", + "members": { + "id": {}, + "name": {}, + "fields": { + "type": "list", + "members": { + "type": "structure", + "members": { + "key": {}, + "stringValue": {}, + "refValue": {} + } + } + } + } + } + }, + "marker": {}, + "hasMoreResults": { + "type": "boolean" + } + } + } + }, + "describePipelines": { + "name": "DescribePipelines", + "input": { + "type": "structure", + "members": { + "pipelineIds": { + "type": "list", + "members": {}, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "pipelineDescriptionList": { + "type": "list", + "members": { + "type": "structure", + "members": { + "pipelineId": {}, + "name": {}, + "fields": { + "type": "list", + "members": { + "type": "structure", + "members": { + "key": {}, + "stringValue": {}, + "refValue": {} + } + } + }, + "description": {} + } + } + } + } + } + }, + "evaluateExpression": { + "name": "EvaluateExpression", + "input": { + "type": "structure", + "members": { + "pipelineId": { + "required": true + }, + "objectId": { + "required": true + }, + "expression": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "evaluatedExpression": {} + } + } + }, + "getPipelineDefinition": { + "name": "GetPipelineDefinition", + "input": { + "type": "structure", + "members": { + "pipelineId": { + "required": true + }, + "version": {} + } + }, + "output": { + "type": "structure", + "members": { + "pipelineObjects": { + "type": "list", + "members": { + "type": "structure", + "members": { + "id": {}, + "name": {}, + "fields": { + "type": "list", + "members": { + "type": "structure", + "members": { + "key": {}, + "stringValue": {}, + "refValue": {} + } + } + } + } + } + } + } + } + }, + "listPipelines": { + "name": "ListPipelines", + "input": { + "type": "structure", + "members": { + "marker": {} + } + }, + "output": { + "type": "structure", + "members": { + "pipelineIdList": { + "type": "list", + "members": { + "type": "structure", + "members": { + "id": {}, + "name": {} + } + } + }, + "marker": {}, + "hasMoreResults": { + "type": "boolean" + } + } + } + }, + "pollForTask": { + "name": "PollForTask", + "input": { + "type": "structure", + "members": { + "workerGroup": { + "required": true + }, + "hostname": {}, + "instanceIdentity": { + "type": "structure", + "members": { + "document": {}, + "signature": {} + } + } + } + }, + "output": { + "type": "structure", + "members": { + "taskObject": { + "type": "structure", + "members": { + "taskId": {}, + "pipelineId": {}, + "attemptId": {}, + "objects": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "id": {}, + "name": {}, + "fields": { + "type": "list", + "members": { + "type": "structure", + "members": { + "key": {}, + "stringValue": {}, + "refValue": {} + } + } + } + } + } + } + } + } + } + } + }, + "putPipelineDefinition": { + "name": "PutPipelineDefinition", + "input": { + "type": "structure", + "members": { + "pipelineId": { + "required": true + }, + "pipelineObjects": { + "type": "list", + "members": { + "type": "structure", + "members": { + "id": { + "required": true + }, + "name": { + "required": true + }, + "fields": { + "type": "list", + "members": { + "type": "structure", + "members": { + "key": { + "required": true + }, + "stringValue": {}, + "refValue": {} + } + }, + "required": true + } + } + }, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "validationErrors": { + "type": "list", + "members": { + "type": "structure", + "members": { + "id": {}, + "errors": { + "type": "list", + "members": {} + } + } + } + }, + "validationWarnings": { + "type": "list", + "members": { + "type": "structure", + "members": { + "id": {}, + "warnings": { + "type": "list", + "members": {} + } + } + } + }, + "errored": { + "type": "boolean" + } + } + } + }, + "queryObjects": { + "name": "QueryObjects", + "input": { + "type": "structure", + "members": { + "pipelineId": { + "required": true + }, + "query": { + "type": "structure", + "members": { + "selectors": { + "type": "list", + "members": { + "type": "structure", + "members": { + "fieldName": {}, + "operator": { + "type": "structure", + "members": { + "type": {}, + "values": { + "type": "list", + "members": {} + } + } + } + } + } + } + } + }, + "sphere": { + "required": true + }, + "marker": {}, + "limit": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "ids": { + "type": "list", + "members": {} + }, + "marker": {}, + "hasMoreResults": { + "type": "boolean" + } + } + } + }, + "reportTaskProgress": { + "name": "ReportTaskProgress", + "input": { + "type": "structure", + "members": { + "taskId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "canceled": { + "type": "boolean" + } + } + } + }, + "reportTaskRunnerHeartbeat": { + "name": "ReportTaskRunnerHeartbeat", + "input": { + "type": "structure", + "members": { + "taskrunnerId": { + "required": true + }, + "workerGroup": {}, + "hostname": {} + } + }, + "output": { + "type": "structure", + "members": { + "terminate": { + "type": "boolean" + } + } + } + }, + "setStatus": { + "name": "SetStatus", + "input": { + "type": "structure", + "members": { + "pipelineId": { + "required": true + }, + "objectIds": { + "type": "list", + "members": {}, + "required": true + }, + "status": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "setTaskStatus": { + "name": "SetTaskStatus", + "input": { + "type": "structure", + "members": { + "taskId": { + "required": true + }, + "taskStatus": { + "required": true + }, + "errorId": {}, + "errorMessage": {}, + "errorStackTrace": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "validatePipelineDefinition": { + "name": "ValidatePipelineDefinition", + "input": { + "type": "structure", + "members": { + "pipelineId": { + "required": true + }, + "pipelineObjects": { + "type": "list", + "members": { + "type": "structure", + "members": { + "id": { + "required": true + }, + "name": { + "required": true + }, + "fields": { + "type": "list", + "members": { + "type": "structure", + "members": { + "key": { + "required": true + }, + "stringValue": {}, + "refValue": {} + } + }, + "required": true + } + } + }, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "validationErrors": { + "type": "list", + "members": { + "type": "structure", + "members": { + "id": {}, + "errors": { + "type": "list", + "members": {} + } + } + } + }, + "validationWarnings": { + "type": "list", + "members": { + "type": "structure", + "members": { + "id": {}, + "warnings": { + "type": "list", + "members": {} + } + } + } + }, + "errored": { + "type": "boolean" + } + } + } + } + }, + "pagination": { + "listPipelines": { + "inputToken": "marker", + "outputToken": "marker", + "moreResults": "hasMoreResults", + "limitKey": "limit", + "resultKey": "pipelineIdList" + }, + "describeObjects": { + "inputToken": "marker", + "outputToken": "marker", + "moreResults": "hasMoreResults", + "limitKey": "limit", + "resultKey": "pipelineObjects" + }, + "queryObjects": { + "inputToken": "marker", + "outputToken": "marker", + "moreResults": "hasMoreResults", + "limitKey": "limit", + "resultKey": "ids" + } + } +} \ No newline at end of file diff --git a/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/DirectConnect-2012-10-25.json b/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/DirectConnect-2012-10-25.json new file mode 100644 index 00000000..063e8394 --- /dev/null +++ b/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/DirectConnect-2012-10-25.json @@ -0,0 +1,721 @@ +{ + "format": "json", + "apiVersion": "2012-10-25", + "endpointPrefix": "directconnect", + "jsonVersion": "1.1", + "serviceFullName": "AWS Direct Connect", + "signatureVersion": "v4", + "targetPrefix": "OvertureService", + "timestampFormat": "iso8601", + "operations": { + "allocateConnectionOnInterconnect": { + "name": "AllocateConnectionOnInterconnect", + "input": { + "type": "structure", + "members": { + "bandwidth": { + "required": true + }, + "connectionName": { + "required": true + }, + "ownerAccount": { + "required": true + }, + "interconnectId": { + "required": true + }, + "vlan": { + "type": "integer", + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "ownerAccount": {}, + "connectionId": {}, + "connectionName": {}, + "connectionState": {}, + "region": {}, + "location": {}, + "bandwidth": {}, + "vlan": { + "type": "integer" + }, + "partnerName": {} + } + } + }, + "allocatePrivateVirtualInterface": { + "name": "AllocatePrivateVirtualInterface", + "input": { + "type": "structure", + "members": { + "connectionId": { + "required": true + }, + "ownerAccount": { + "required": true + }, + "newPrivateVirtualInterfaceAllocation": { + "type": "structure", + "members": { + "virtualInterfaceName": { + "required": true + }, + "vlan": { + "type": "integer", + "required": true + }, + "asn": { + "type": "integer", + "required": true + }, + "authKey": {}, + "amazonAddress": {}, + "customerAddress": {} + }, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "ownerAccount": {}, + "virtualInterfaceId": {}, + "location": {}, + "connectionId": {}, + "virtualInterfaceType": {}, + "virtualInterfaceName": {}, + "vlan": { + "type": "integer" + }, + "asn": { + "type": "integer" + }, + "authKey": {}, + "amazonAddress": {}, + "customerAddress": {}, + "virtualInterfaceState": {}, + "customerRouterConfig": {}, + "virtualGatewayId": {}, + "routeFilterPrefixes": { + "type": "list", + "members": { + "type": "structure", + "members": { + "cidr": {} + } + } + } + } + } + }, + "allocatePublicVirtualInterface": { + "name": "AllocatePublicVirtualInterface", + "input": { + "type": "structure", + "members": { + "connectionId": { + "required": true + }, + "ownerAccount": { + "required": true + }, + "newPublicVirtualInterfaceAllocation": { + "type": "structure", + "members": { + "virtualInterfaceName": { + "required": true + }, + "vlan": { + "type": "integer", + "required": true + }, + "asn": { + "type": "integer", + "required": true + }, + "authKey": {}, + "amazonAddress": { + "required": true + }, + "customerAddress": { + "required": true + }, + "routeFilterPrefixes": { + "type": "list", + "members": { + "type": "structure", + "members": { + "cidr": {} + } + }, + "required": true + } + }, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "ownerAccount": {}, + "virtualInterfaceId": {}, + "location": {}, + "connectionId": {}, + "virtualInterfaceType": {}, + "virtualInterfaceName": {}, + "vlan": { + "type": "integer" + }, + "asn": { + "type": "integer" + }, + "authKey": {}, + "amazonAddress": {}, + "customerAddress": {}, + "virtualInterfaceState": {}, + "customerRouterConfig": {}, + "virtualGatewayId": {}, + "routeFilterPrefixes": { + "type": "list", + "members": { + "type": "structure", + "members": { + "cidr": {} + } + } + } + } + } + }, + "confirmConnection": { + "name": "ConfirmConnection", + "input": { + "type": "structure", + "members": { + "connectionId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "connectionState": {} + } + } + }, + "confirmPrivateVirtualInterface": { + "name": "ConfirmPrivateVirtualInterface", + "input": { + "type": "structure", + "members": { + "virtualInterfaceId": { + "required": true + }, + "virtualGatewayId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "virtualInterfaceState": {} + } + } + }, + "confirmPublicVirtualInterface": { + "name": "ConfirmPublicVirtualInterface", + "input": { + "type": "structure", + "members": { + "virtualInterfaceId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "virtualInterfaceState": {} + } + } + }, + "createConnection": { + "name": "CreateConnection", + "input": { + "type": "structure", + "members": { + "location": { + "required": true + }, + "bandwidth": { + "required": true + }, + "connectionName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "ownerAccount": {}, + "connectionId": {}, + "connectionName": {}, + "connectionState": {}, + "region": {}, + "location": {}, + "bandwidth": {}, + "vlan": { + "type": "integer" + }, + "partnerName": {} + } + } + }, + "createInterconnect": { + "name": "CreateInterconnect", + "input": { + "type": "structure", + "members": { + "interconnectName": { + "required": true + }, + "bandwidth": { + "required": true + }, + "location": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "interconnectId": {}, + "interconnectName": {}, + "interconnectState": {}, + "region": {}, + "location": {}, + "bandwidth": {} + } + } + }, + "createPrivateVirtualInterface": { + "name": "CreatePrivateVirtualInterface", + "input": { + "type": "structure", + "members": { + "connectionId": { + "required": true + }, + "newPrivateVirtualInterface": { + "type": "structure", + "members": { + "virtualInterfaceName": { + "required": true + }, + "vlan": { + "type": "integer", + "required": true + }, + "asn": { + "type": "integer", + "required": true + }, + "authKey": {}, + "amazonAddress": {}, + "customerAddress": {}, + "virtualGatewayId": { + "required": true + } + }, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "ownerAccount": {}, + "virtualInterfaceId": {}, + "location": {}, + "connectionId": {}, + "virtualInterfaceType": {}, + "virtualInterfaceName": {}, + "vlan": { + "type": "integer" + }, + "asn": { + "type": "integer" + }, + "authKey": {}, + "amazonAddress": {}, + "customerAddress": {}, + "virtualInterfaceState": {}, + "customerRouterConfig": {}, + "virtualGatewayId": {}, + "routeFilterPrefixes": { + "type": "list", + "members": { + "type": "structure", + "members": { + "cidr": {} + } + } + } + } + } + }, + "createPublicVirtualInterface": { + "name": "CreatePublicVirtualInterface", + "input": { + "type": "structure", + "members": { + "connectionId": { + "required": true + }, + "newPublicVirtualInterface": { + "type": "structure", + "members": { + "virtualInterfaceName": { + "required": true + }, + "vlan": { + "type": "integer", + "required": true + }, + "asn": { + "type": "integer", + "required": true + }, + "authKey": {}, + "amazonAddress": { + "required": true + }, + "customerAddress": { + "required": true + }, + "routeFilterPrefixes": { + "type": "list", + "members": { + "type": "structure", + "members": { + "cidr": {} + } + }, + "required": true + } + }, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "ownerAccount": {}, + "virtualInterfaceId": {}, + "location": {}, + "connectionId": {}, + "virtualInterfaceType": {}, + "virtualInterfaceName": {}, + "vlan": { + "type": "integer" + }, + "asn": { + "type": "integer" + }, + "authKey": {}, + "amazonAddress": {}, + "customerAddress": {}, + "virtualInterfaceState": {}, + "customerRouterConfig": {}, + "virtualGatewayId": {}, + "routeFilterPrefixes": { + "type": "list", + "members": { + "type": "structure", + "members": { + "cidr": {} + } + } + } + } + } + }, + "deleteConnection": { + "name": "DeleteConnection", + "input": { + "type": "structure", + "members": { + "connectionId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "ownerAccount": {}, + "connectionId": {}, + "connectionName": {}, + "connectionState": {}, + "region": {}, + "location": {}, + "bandwidth": {}, + "vlan": { + "type": "integer" + }, + "partnerName": {} + } + } + }, + "deleteInterconnect": { + "name": "DeleteInterconnect", + "input": { + "type": "structure", + "members": { + "interconnectId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "interconnectState": {} + } + } + }, + "deleteVirtualInterface": { + "name": "DeleteVirtualInterface", + "input": { + "type": "structure", + "members": { + "virtualInterfaceId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "virtualInterfaceState": {} + } + } + }, + "describeConnections": { + "name": "DescribeConnections", + "input": { + "type": "structure", + "members": { + "connectionId": {} + } + }, + "output": { + "type": "structure", + "members": { + "connections": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ownerAccount": {}, + "connectionId": {}, + "connectionName": {}, + "connectionState": {}, + "region": {}, + "location": {}, + "bandwidth": {}, + "vlan": { + "type": "integer" + }, + "partnerName": {} + } + } + } + } + } + }, + "describeConnectionsOnInterconnect": { + "name": "DescribeConnectionsOnInterconnect", + "input": { + "type": "structure", + "members": { + "interconnectId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "connections": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ownerAccount": {}, + "connectionId": {}, + "connectionName": {}, + "connectionState": {}, + "region": {}, + "location": {}, + "bandwidth": {}, + "vlan": { + "type": "integer" + }, + "partnerName": {} + } + } + } + } + } + }, + "describeInterconnects": { + "name": "DescribeInterconnects", + "input": { + "type": "structure", + "members": { + "interconnectId": {} + } + }, + "output": { + "type": "structure", + "members": { + "interconnects": { + "type": "list", + "members": { + "type": "structure", + "members": { + "interconnectId": {}, + "interconnectName": {}, + "interconnectState": {}, + "region": {}, + "location": {}, + "bandwidth": {} + } + } + } + } + } + }, + "describeLocations": { + "name": "DescribeLocations", + "input": { + "type": "structure", + "members": {} + }, + "output": { + "type": "structure", + "members": { + "locations": { + "type": "list", + "members": { + "type": "structure", + "members": { + "locationCode": {}, + "locationName": {} + } + } + } + } + } + }, + "describeVirtualGateways": { + "name": "DescribeVirtualGateways", + "input": { + "type": "structure", + "members": {} + }, + "output": { + "type": "structure", + "members": { + "virtualGateways": { + "type": "list", + "members": { + "type": "structure", + "members": { + "virtualGatewayId": {}, + "virtualGatewayState": {} + } + } + } + } + } + }, + "describeVirtualInterfaces": { + "name": "DescribeVirtualInterfaces", + "input": { + "type": "structure", + "members": { + "connectionId": {}, + "virtualInterfaceId": {} + } + }, + "output": { + "type": "structure", + "members": { + "virtualInterfaces": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ownerAccount": {}, + "virtualInterfaceId": {}, + "location": {}, + "connectionId": {}, + "virtualInterfaceType": {}, + "virtualInterfaceName": {}, + "vlan": { + "type": "integer" + }, + "asn": { + "type": "integer" + }, + "authKey": {}, + "amazonAddress": {}, + "customerAddress": {}, + "virtualInterfaceState": {}, + "customerRouterConfig": {}, + "virtualGatewayId": {}, + "routeFilterPrefixes": { + "type": "list", + "members": { + "type": "structure", + "members": { + "cidr": {} + } + } + } + } + } + } + } + } + } + }, + "pagination": { + "describeConnections": { + "resultKey": "connections" + }, + "describeOfferings": { + "resultKey": "offerings" + }, + "describeVirtualGateways": { + "resultKey": "virtualGateways" + }, + "describeVirtualInterfaces": { + "resultKey": "virtualInterfaces" + } + } +} \ No newline at end of file diff --git a/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/DynamoDB-2011-12-05.json b/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/DynamoDB-2011-12-05.json new file mode 100644 index 00000000..db07d0fa --- /dev/null +++ b/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/DynamoDB-2011-12-05.json @@ -0,0 +1,1847 @@ +{ + "format": "json", + "apiVersion": "2011-12-05", + "endpointPrefix": "dynamodb", + "jsonVersion": "1.0", + "serviceAbbreviation": "DynamoDB", + "serviceFullName": "Amazon DynamoDB", + "signatureVersion": "v4", + "targetPrefix": "DynamoDB_20111205", + "timestampFormat": "iso8601", + "operations": { + "batchGetItem": { + "name": "BatchGetItem", + "input": { + "type": "structure", + "members": { + "RequestItems": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "Keys": { + "type": "list", + "members": { + "type": "structure", + "members": { + "HashKeyElement": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "base64" + }, + "SS": { + "type": "list", + "members": {} + }, + "NS": { + "type": "list", + "members": {} + }, + "BS": { + "type": "list", + "members": { + "type": "base64" + } + } + }, + "required": true + }, + "RangeKeyElement": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "base64" + }, + "SS": { + "type": "list", + "members": {} + }, + "NS": { + "type": "list", + "members": {} + }, + "BS": { + "type": "list", + "members": { + "type": "base64" + } + } + } + } + } + }, + "required": true + }, + "AttributesToGet": { + "type": "list", + "members": {} + }, + "ConsistentRead": { + "type": "boolean" + } + } + }, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "Responses": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "Items": { + "type": "list", + "members": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "base64" + }, + "SS": { + "type": "list", + "members": {} + }, + "NS": { + "type": "list", + "members": {} + }, + "BS": { + "type": "list", + "members": { + "type": "base64" + } + } + } + } + } + }, + "ConsumedCapacityUnits": { + "type": "float" + } + } + } + }, + "UnprocessedKeys": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "Keys": { + "type": "list", + "members": { + "type": "structure", + "members": { + "HashKeyElement": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "base64" + }, + "SS": { + "type": "list", + "members": {} + }, + "NS": { + "type": "list", + "members": {} + }, + "BS": { + "type": "list", + "members": { + "type": "base64" + } + } + } + }, + "RangeKeyElement": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "base64" + }, + "SS": { + "type": "list", + "members": {} + }, + "NS": { + "type": "list", + "members": {} + }, + "BS": { + "type": "list", + "members": { + "type": "base64" + } + } + } + } + } + } + }, + "AttributesToGet": { + "type": "list", + "members": {} + }, + "ConsistentRead": { + "type": "boolean" + } + } + } + } + } + } + }, + "batchWriteItem": { + "name": "BatchWriteItem", + "input": { + "type": "structure", + "members": { + "RequestItems": { + "type": "map", + "keys": {}, + "members": { + "type": "list", + "members": { + "type": "structure", + "members": { + "PutRequest": { + "type": "structure", + "members": { + "Item": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "base64" + }, + "SS": { + "type": "list", + "members": {} + }, + "NS": { + "type": "list", + "members": {} + }, + "BS": { + "type": "list", + "members": { + "type": "base64" + } + } + } + }, + "required": true + } + } + }, + "DeleteRequest": { + "type": "structure", + "members": { + "Key": { + "type": "structure", + "members": { + "HashKeyElement": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "base64" + }, + "SS": { + "type": "list", + "members": {} + }, + "NS": { + "type": "list", + "members": {} + }, + "BS": { + "type": "list", + "members": { + "type": "base64" + } + } + }, + "required": true + }, + "RangeKeyElement": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "base64" + }, + "SS": { + "type": "list", + "members": {} + }, + "NS": { + "type": "list", + "members": {} + }, + "BS": { + "type": "list", + "members": { + "type": "base64" + } + } + } + } + }, + "required": true + } + } + } + } + } + }, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "Responses": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "ConsumedCapacityUnits": { + "type": "float" + } + } + } + }, + "UnprocessedItems": { + "type": "map", + "keys": {}, + "members": { + "type": "list", + "members": { + "type": "structure", + "members": { + "PutRequest": { + "type": "structure", + "members": { + "Item": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "base64" + }, + "SS": { + "type": "list", + "members": {} + }, + "NS": { + "type": "list", + "members": {} + }, + "BS": { + "type": "list", + "members": { + "type": "base64" + } + } + } + } + } + } + }, + "DeleteRequest": { + "type": "structure", + "members": { + "Key": { + "type": "structure", + "members": { + "HashKeyElement": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "base64" + }, + "SS": { + "type": "list", + "members": {} + }, + "NS": { + "type": "list", + "members": {} + }, + "BS": { + "type": "list", + "members": { + "type": "base64" + } + } + } + }, + "RangeKeyElement": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "base64" + }, + "SS": { + "type": "list", + "members": {} + }, + "NS": { + "type": "list", + "members": {} + }, + "BS": { + "type": "list", + "members": { + "type": "base64" + } + } + } + } + } + } + } + } + } + } + } + } + } + } + }, + "createTable": { + "name": "CreateTable", + "input": { + "type": "structure", + "members": { + "TableName": { + "required": true + }, + "KeySchema": { + "type": "structure", + "members": { + "HashKeyElement": { + "type": "structure", + "members": { + "AttributeName": { + "required": true + }, + "AttributeType": { + "required": true + } + }, + "required": true + }, + "RangeKeyElement": { + "type": "structure", + "members": { + "AttributeName": { + "required": true + }, + "AttributeType": { + "required": true + } + } + } + }, + "required": true + }, + "ProvisionedThroughput": { + "type": "structure", + "members": { + "ReadCapacityUnits": { + "type": "integer", + "required": true + }, + "WriteCapacityUnits": { + "type": "integer", + "required": true + } + }, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "TableDescription": { + "type": "structure", + "members": { + "TableName": {}, + "KeySchema": { + "type": "structure", + "members": { + "HashKeyElement": { + "type": "structure", + "members": { + "AttributeName": {}, + "AttributeType": {} + } + }, + "RangeKeyElement": { + "type": "structure", + "members": { + "AttributeName": {}, + "AttributeType": {} + } + } + } + }, + "TableStatus": {}, + "CreationDateTime": { + "type": "timestamp" + }, + "ProvisionedThroughput": { + "type": "structure", + "members": { + "LastIncreaseDateTime": { + "type": "timestamp" + }, + "LastDecreaseDateTime": { + "type": "timestamp" + }, + "NumberOfDecreasesToday": { + "type": "integer" + }, + "ReadCapacityUnits": { + "type": "integer" + }, + "WriteCapacityUnits": { + "type": "integer" + } + } + }, + "TableSizeBytes": { + "type": "integer" + }, + "ItemCount": { + "type": "integer" + } + } + } + } + } + }, + "deleteItem": { + "name": "DeleteItem", + "input": { + "type": "structure", + "members": { + "TableName": { + "required": true + }, + "Key": { + "type": "structure", + "members": { + "HashKeyElement": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "base64" + }, + "SS": { + "type": "list", + "members": {} + }, + "NS": { + "type": "list", + "members": {} + }, + "BS": { + "type": "list", + "members": { + "type": "base64" + } + } + }, + "required": true + }, + "RangeKeyElement": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "base64" + }, + "SS": { + "type": "list", + "members": {} + }, + "NS": { + "type": "list", + "members": {} + }, + "BS": { + "type": "list", + "members": { + "type": "base64" + } + } + } + } + }, + "required": true + }, + "Expected": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "Value": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "base64" + }, + "SS": { + "type": "list", + "members": {} + }, + "NS": { + "type": "list", + "members": {} + }, + "BS": { + "type": "list", + "members": { + "type": "base64" + } + } + } + }, + "Exists": { + "type": "boolean" + } + } + } + }, + "ReturnValues": {} + } + }, + "output": { + "type": "structure", + "members": { + "Attributes": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "base64" + }, + "SS": { + "type": "list", + "members": {} + }, + "NS": { + "type": "list", + "members": {} + }, + "BS": { + "type": "list", + "members": { + "type": "base64" + } + } + } + } + }, + "ConsumedCapacityUnits": { + "type": "float" + } + } + } + }, + "deleteTable": { + "name": "DeleteTable", + "input": { + "type": "structure", + "members": { + "TableName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "TableDescription": { + "type": "structure", + "members": { + "TableName": {}, + "KeySchema": { + "type": "structure", + "members": { + "HashKeyElement": { + "type": "structure", + "members": { + "AttributeName": {}, + "AttributeType": {} + } + }, + "RangeKeyElement": { + "type": "structure", + "members": { + "AttributeName": {}, + "AttributeType": {} + } + } + } + }, + "TableStatus": {}, + "CreationDateTime": { + "type": "timestamp" + }, + "ProvisionedThroughput": { + "type": "structure", + "members": { + "LastIncreaseDateTime": { + "type": "timestamp" + }, + "LastDecreaseDateTime": { + "type": "timestamp" + }, + "NumberOfDecreasesToday": { + "type": "integer" + }, + "ReadCapacityUnits": { + "type": "integer" + }, + "WriteCapacityUnits": { + "type": "integer" + } + } + }, + "TableSizeBytes": { + "type": "integer" + }, + "ItemCount": { + "type": "integer" + } + } + } + } + } + }, + "describeTable": { + "name": "DescribeTable", + "input": { + "type": "structure", + "members": { + "TableName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "Table": { + "type": "structure", + "members": { + "TableName": {}, + "KeySchema": { + "type": "structure", + "members": { + "HashKeyElement": { + "type": "structure", + "members": { + "AttributeName": {}, + "AttributeType": {} + } + }, + "RangeKeyElement": { + "type": "structure", + "members": { + "AttributeName": {}, + "AttributeType": {} + } + } + } + }, + "TableStatus": {}, + "CreationDateTime": { + "type": "timestamp" + }, + "ProvisionedThroughput": { + "type": "structure", + "members": { + "LastIncreaseDateTime": { + "type": "timestamp" + }, + "LastDecreaseDateTime": { + "type": "timestamp" + }, + "NumberOfDecreasesToday": { + "type": "integer" + }, + "ReadCapacityUnits": { + "type": "integer" + }, + "WriteCapacityUnits": { + "type": "integer" + } + } + }, + "TableSizeBytes": { + "type": "integer" + }, + "ItemCount": { + "type": "integer" + } + } + } + } + } + }, + "getItem": { + "name": "GetItem", + "input": { + "type": "structure", + "members": { + "TableName": { + "required": true + }, + "Key": { + "type": "structure", + "members": { + "HashKeyElement": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "base64" + }, + "SS": { + "type": "list", + "members": {} + }, + "NS": { + "type": "list", + "members": {} + }, + "BS": { + "type": "list", + "members": { + "type": "base64" + } + } + }, + "required": true + }, + "RangeKeyElement": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "base64" + }, + "SS": { + "type": "list", + "members": {} + }, + "NS": { + "type": "list", + "members": {} + }, + "BS": { + "type": "list", + "members": { + "type": "base64" + } + } + } + } + }, + "required": true + }, + "AttributesToGet": { + "type": "list", + "members": {} + }, + "ConsistentRead": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "Item": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "base64" + }, + "SS": { + "type": "list", + "members": {} + }, + "NS": { + "type": "list", + "members": {} + }, + "BS": { + "type": "list", + "members": { + "type": "base64" + } + } + } + } + }, + "ConsumedCapacityUnits": { + "type": "float" + } + } + } + }, + "listTables": { + "name": "ListTables", + "input": { + "type": "structure", + "members": { + "ExclusiveStartTableName": {}, + "Limit": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "TableNames": { + "type": "list", + "members": {} + }, + "LastEvaluatedTableName": {} + } + } + }, + "putItem": { + "name": "PutItem", + "input": { + "type": "structure", + "members": { + "TableName": { + "required": true + }, + "Item": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "base64" + }, + "SS": { + "type": "list", + "members": {} + }, + "NS": { + "type": "list", + "members": {} + }, + "BS": { + "type": "list", + "members": { + "type": "base64" + } + } + } + }, + "required": true + }, + "Expected": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "Value": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "base64" + }, + "SS": { + "type": "list", + "members": {} + }, + "NS": { + "type": "list", + "members": {} + }, + "BS": { + "type": "list", + "members": { + "type": "base64" + } + } + } + }, + "Exists": { + "type": "boolean" + } + } + } + }, + "ReturnValues": {} + } + }, + "output": { + "type": "structure", + "members": { + "Attributes": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "base64" + }, + "SS": { + "type": "list", + "members": {} + }, + "NS": { + "type": "list", + "members": {} + }, + "BS": { + "type": "list", + "members": { + "type": "base64" + } + } + } + } + }, + "ConsumedCapacityUnits": { + "type": "float" + } + } + } + }, + "query": { + "name": "Query", + "input": { + "type": "structure", + "members": { + "TableName": { + "required": true + }, + "AttributesToGet": { + "type": "list", + "members": {} + }, + "Limit": { + "type": "integer" + }, + "ConsistentRead": { + "type": "boolean" + }, + "Count": { + "type": "boolean" + }, + "HashKeyValue": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "base64" + }, + "SS": { + "type": "list", + "members": {} + }, + "NS": { + "type": "list", + "members": {} + }, + "BS": { + "type": "list", + "members": { + "type": "base64" + } + } + }, + "required": true + }, + "RangeKeyCondition": { + "type": "structure", + "members": { + "AttributeValueList": { + "type": "list", + "members": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "base64" + }, + "SS": { + "type": "list", + "members": {} + }, + "NS": { + "type": "list", + "members": {} + }, + "BS": { + "type": "list", + "members": { + "type": "base64" + } + } + } + } + }, + "ComparisonOperator": { + "required": true + } + } + }, + "ScanIndexForward": { + "type": "boolean" + }, + "ExclusiveStartKey": { + "type": "structure", + "members": { + "HashKeyElement": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "base64" + }, + "SS": { + "type": "list", + "members": {} + }, + "NS": { + "type": "list", + "members": {} + }, + "BS": { + "type": "list", + "members": { + "type": "base64" + } + } + }, + "required": true + }, + "RangeKeyElement": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "base64" + }, + "SS": { + "type": "list", + "members": {} + }, + "NS": { + "type": "list", + "members": {} + }, + "BS": { + "type": "list", + "members": { + "type": "base64" + } + } + } + } + } + } + } + }, + "output": { + "type": "structure", + "members": { + "Items": { + "type": "list", + "members": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "base64" + }, + "SS": { + "type": "list", + "members": {} + }, + "NS": { + "type": "list", + "members": {} + }, + "BS": { + "type": "list", + "members": { + "type": "base64" + } + } + } + } + } + }, + "Count": { + "type": "integer" + }, + "LastEvaluatedKey": { + "type": "structure", + "members": { + "HashKeyElement": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "base64" + }, + "SS": { + "type": "list", + "members": {} + }, + "NS": { + "type": "list", + "members": {} + }, + "BS": { + "type": "list", + "members": { + "type": "base64" + } + } + } + }, + "RangeKeyElement": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "base64" + }, + "SS": { + "type": "list", + "members": {} + }, + "NS": { + "type": "list", + "members": {} + }, + "BS": { + "type": "list", + "members": { + "type": "base64" + } + } + } + } + } + }, + "ConsumedCapacityUnits": { + "type": "float" + } + } + } + }, + "scan": { + "name": "Scan", + "input": { + "type": "structure", + "members": { + "TableName": { + "required": true + }, + "AttributesToGet": { + "type": "list", + "members": {} + }, + "Limit": { + "type": "integer" + }, + "Count": { + "type": "boolean" + }, + "ScanFilter": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "AttributeValueList": { + "type": "list", + "members": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "base64" + }, + "SS": { + "type": "list", + "members": {} + }, + "NS": { + "type": "list", + "members": {} + }, + "BS": { + "type": "list", + "members": { + "type": "base64" + } + } + } + } + }, + "ComparisonOperator": { + "required": true + } + } + } + }, + "ExclusiveStartKey": { + "type": "structure", + "members": { + "HashKeyElement": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "base64" + }, + "SS": { + "type": "list", + "members": {} + }, + "NS": { + "type": "list", + "members": {} + }, + "BS": { + "type": "list", + "members": { + "type": "base64" + } + } + }, + "required": true + }, + "RangeKeyElement": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "base64" + }, + "SS": { + "type": "list", + "members": {} + }, + "NS": { + "type": "list", + "members": {} + }, + "BS": { + "type": "list", + "members": { + "type": "base64" + } + } + } + } + } + } + } + }, + "output": { + "type": "structure", + "members": { + "Items": { + "type": "list", + "members": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "base64" + }, + "SS": { + "type": "list", + "members": {} + }, + "NS": { + "type": "list", + "members": {} + }, + "BS": { + "type": "list", + "members": { + "type": "base64" + } + } + } + } + } + }, + "Count": { + "type": "integer" + }, + "ScannedCount": { + "type": "integer" + }, + "LastEvaluatedKey": { + "type": "structure", + "members": { + "HashKeyElement": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "base64" + }, + "SS": { + "type": "list", + "members": {} + }, + "NS": { + "type": "list", + "members": {} + }, + "BS": { + "type": "list", + "members": { + "type": "base64" + } + } + } + }, + "RangeKeyElement": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "base64" + }, + "SS": { + "type": "list", + "members": {} + }, + "NS": { + "type": "list", + "members": {} + }, + "BS": { + "type": "list", + "members": { + "type": "base64" + } + } + } + } + } + }, + "ConsumedCapacityUnits": { + "type": "float" + } + } + } + }, + "updateItem": { + "name": "UpdateItem", + "input": { + "type": "structure", + "members": { + "TableName": { + "required": true + }, + "Key": { + "type": "structure", + "members": { + "HashKeyElement": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "base64" + }, + "SS": { + "type": "list", + "members": {} + }, + "NS": { + "type": "list", + "members": {} + }, + "BS": { + "type": "list", + "members": { + "type": "base64" + } + } + }, + "required": true + }, + "RangeKeyElement": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "base64" + }, + "SS": { + "type": "list", + "members": {} + }, + "NS": { + "type": "list", + "members": {} + }, + "BS": { + "type": "list", + "members": { + "type": "base64" + } + } + } + } + }, + "required": true + }, + "AttributeUpdates": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "Value": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "base64" + }, + "SS": { + "type": "list", + "members": {} + }, + "NS": { + "type": "list", + "members": {} + }, + "BS": { + "type": "list", + "members": { + "type": "base64" + } + } + } + }, + "Action": {} + } + }, + "required": true + }, + "Expected": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "Value": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "base64" + }, + "SS": { + "type": "list", + "members": {} + }, + "NS": { + "type": "list", + "members": {} + }, + "BS": { + "type": "list", + "members": { + "type": "base64" + } + } + } + }, + "Exists": { + "type": "boolean" + } + } + } + }, + "ReturnValues": {} + } + }, + "output": { + "type": "structure", + "members": { + "Attributes": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "base64" + }, + "SS": { + "type": "list", + "members": {} + }, + "NS": { + "type": "list", + "members": {} + }, + "BS": { + "type": "list", + "members": { + "type": "base64" + } + } + } + } + }, + "ConsumedCapacityUnits": { + "type": "float" + } + } + } + }, + "updateTable": { + "name": "UpdateTable", + "input": { + "type": "structure", + "members": { + "TableName": { + "required": true + }, + "ProvisionedThroughput": { + "type": "structure", + "members": { + "ReadCapacityUnits": { + "type": "integer", + "required": true + }, + "WriteCapacityUnits": { + "type": "integer", + "required": true + } + }, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "TableDescription": { + "type": "structure", + "members": { + "TableName": {}, + "KeySchema": { + "type": "structure", + "members": { + "HashKeyElement": { + "type": "structure", + "members": { + "AttributeName": {}, + "AttributeType": {} + } + }, + "RangeKeyElement": { + "type": "structure", + "members": { + "AttributeName": {}, + "AttributeType": {} + } + } + } + }, + "TableStatus": {}, + "CreationDateTime": { + "type": "timestamp" + }, + "ProvisionedThroughput": { + "type": "structure", + "members": { + "LastIncreaseDateTime": { + "type": "timestamp" + }, + "LastDecreaseDateTime": { + "type": "timestamp" + }, + "NumberOfDecreasesToday": { + "type": "integer" + }, + "ReadCapacityUnits": { + "type": "integer" + }, + "WriteCapacityUnits": { + "type": "integer" + } + } + }, + "TableSizeBytes": { + "type": "integer" + }, + "ItemCount": { + "type": "integer" + } + } + } + } + } + } + }, + "pagination": { + "batchGetItem": { + "inputToken": "RequestItems", + "outputToken": "UnprocessedKeys", + "resultKey": "Responses[]" + }, + "listTables": { + "inputToken": "ExclusiveStartTableName", + "outputToken": "LastEvaluatedTableName", + "limitKey": "Limit", + "resultKey": "TableNames" + }, + "query": { + "inputToken": "ExclusiveStartKey", + "outputToken": "LastEvaluatedKey", + "limitKey": "Limit", + "resultKey": "Items" + }, + "scan": { + "inputToken": "ExclusiveStartKey", + "outputToken": "LastEvaluatedKey", + "limitKey": "Limit", + "resultKey": "Items" + } + }, + "waiters": { + "__default__": { + "interval": 20, + "maxAttempts": 25 + }, + "__TableState": { + "operation": "DescribeTable" + }, + "tableExists": { + "extends": "__TableState", + "description": "Wait until a table exists and can be accessed", + "ignoreErrors": [ + "ResourceNotFoundException" + ], + "successType": "output", + "successPath": "Table.TableStatus", + "successValue": "ACTIVE" + }, + "tableNotExists": { + "extends": "__TableState", + "description": "Wait until a table is deleted", + "successType": "error", + "successValue": "ResourceNotFoundException" + } + } +} \ No newline at end of file diff --git a/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/DynamoDB-2012-08-10.json b/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/DynamoDB-2012-08-10.json new file mode 100644 index 00000000..5111e73c --- /dev/null +++ b/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/DynamoDB-2012-08-10.json @@ -0,0 +1,2501 @@ +{ + "format": "json", + "apiVersion": "2012-08-10", + "endpointPrefix": "dynamodb", + "jsonVersion": "1.0", + "serviceAbbreviation": "DynamoDB", + "serviceFullName": "Amazon DynamoDB", + "signatureVersion": "v4", + "targetPrefix": "DynamoDB_20120810", + "timestampFormat": "iso8601", + "operations": { + "batchGetItem": { + "name": "BatchGetItem", + "input": { + "type": "structure", + "members": { + "RequestItems": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "Keys": { + "type": "list", + "members": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "base64" + }, + "SS": { + "type": "list", + "members": {} + }, + "NS": { + "type": "list", + "members": {} + }, + "BS": { + "type": "list", + "members": { + "type": "base64" + } + } + } + } + }, + "required": true + }, + "AttributesToGet": { + "type": "list", + "members": {} + }, + "ConsistentRead": { + "type": "boolean" + } + } + }, + "required": true + }, + "ReturnConsumedCapacity": {} + } + }, + "output": { + "type": "structure", + "members": { + "Responses": { + "type": "map", + "keys": {}, + "members": { + "type": "list", + "members": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "base64" + }, + "SS": { + "type": "list", + "members": {} + }, + "NS": { + "type": "list", + "members": {} + }, + "BS": { + "type": "list", + "members": { + "type": "base64" + } + } + } + } + } + } + }, + "UnprocessedKeys": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "Keys": { + "type": "list", + "members": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "base64" + }, + "SS": { + "type": "list", + "members": {} + }, + "NS": { + "type": "list", + "members": {} + }, + "BS": { + "type": "list", + "members": { + "type": "base64" + } + } + } + } + } + }, + "AttributesToGet": { + "type": "list", + "members": {} + }, + "ConsistentRead": { + "type": "boolean" + } + } + } + }, + "ConsumedCapacity": { + "type": "list", + "members": { + "type": "structure", + "members": { + "TableName": {}, + "CapacityUnits": { + "type": "float" + }, + "Table": { + "type": "structure", + "members": { + "CapacityUnits": { + "type": "float" + } + } + }, + "LocalSecondaryIndexes": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "CapacityUnits": { + "type": "float" + } + } + } + }, + "GlobalSecondaryIndexes": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "CapacityUnits": { + "type": "float" + } + } + } + } + } + } + } + } + } + }, + "batchWriteItem": { + "name": "BatchWriteItem", + "input": { + "type": "structure", + "members": { + "RequestItems": { + "type": "map", + "keys": {}, + "members": { + "type": "list", + "members": { + "type": "structure", + "members": { + "PutRequest": { + "type": "structure", + "members": { + "Item": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "base64" + }, + "SS": { + "type": "list", + "members": {} + }, + "NS": { + "type": "list", + "members": {} + }, + "BS": { + "type": "list", + "members": { + "type": "base64" + } + } + } + }, + "required": true + } + } + }, + "DeleteRequest": { + "type": "structure", + "members": { + "Key": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "base64" + }, + "SS": { + "type": "list", + "members": {} + }, + "NS": { + "type": "list", + "members": {} + }, + "BS": { + "type": "list", + "members": { + "type": "base64" + } + } + } + }, + "required": true + } + } + } + } + } + }, + "required": true + }, + "ReturnConsumedCapacity": {}, + "ReturnItemCollectionMetrics": {} + } + }, + "output": { + "type": "structure", + "members": { + "UnprocessedItems": { + "type": "map", + "keys": {}, + "members": { + "type": "list", + "members": { + "type": "structure", + "members": { + "PutRequest": { + "type": "structure", + "members": { + "Item": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "base64" + }, + "SS": { + "type": "list", + "members": {} + }, + "NS": { + "type": "list", + "members": {} + }, + "BS": { + "type": "list", + "members": { + "type": "base64" + } + } + } + } + } + } + }, + "DeleteRequest": { + "type": "structure", + "members": { + "Key": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "base64" + }, + "SS": { + "type": "list", + "members": {} + }, + "NS": { + "type": "list", + "members": {} + }, + "BS": { + "type": "list", + "members": { + "type": "base64" + } + } + } + } + } + } + } + } + } + } + }, + "ItemCollectionMetrics": { + "type": "map", + "keys": {}, + "members": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ItemCollectionKey": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "base64" + }, + "SS": { + "type": "list", + "members": {} + }, + "NS": { + "type": "list", + "members": {} + }, + "BS": { + "type": "list", + "members": { + "type": "base64" + } + } + } + } + }, + "SizeEstimateRangeGB": { + "type": "list", + "members": { + "type": "float" + } + } + } + } + } + }, + "ConsumedCapacity": { + "type": "list", + "members": { + "type": "structure", + "members": { + "TableName": {}, + "CapacityUnits": { + "type": "float" + }, + "Table": { + "type": "structure", + "members": { + "CapacityUnits": { + "type": "float" + } + } + }, + "LocalSecondaryIndexes": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "CapacityUnits": { + "type": "float" + } + } + } + }, + "GlobalSecondaryIndexes": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "CapacityUnits": { + "type": "float" + } + } + } + } + } + } + } + } + } + }, + "createTable": { + "name": "CreateTable", + "input": { + "type": "structure", + "members": { + "AttributeDefinitions": { + "type": "list", + "members": { + "type": "structure", + "members": { + "AttributeName": { + "required": true + }, + "AttributeType": { + "required": true + } + } + }, + "required": true + }, + "TableName": { + "required": true + }, + "KeySchema": { + "type": "list", + "members": { + "type": "structure", + "members": { + "AttributeName": { + "required": true + }, + "KeyType": { + "required": true + } + } + }, + "required": true + }, + "LocalSecondaryIndexes": { + "type": "list", + "members": { + "type": "structure", + "members": { + "IndexName": { + "required": true + }, + "KeySchema": { + "type": "list", + "members": { + "type": "structure", + "members": { + "AttributeName": { + "required": true + }, + "KeyType": { + "required": true + } + } + }, + "required": true + }, + "Projection": { + "type": "structure", + "members": { + "ProjectionType": {}, + "NonKeyAttributes": { + "type": "list", + "members": {} + } + }, + "required": true + } + } + } + }, + "GlobalSecondaryIndexes": { + "type": "list", + "members": { + "type": "structure", + "members": { + "IndexName": { + "required": true + }, + "KeySchema": { + "type": "list", + "members": { + "type": "structure", + "members": { + "AttributeName": { + "required": true + }, + "KeyType": { + "required": true + } + } + }, + "required": true + }, + "Projection": { + "type": "structure", + "members": { + "ProjectionType": {}, + "NonKeyAttributes": { + "type": "list", + "members": {} + } + }, + "required": true + }, + "ProvisionedThroughput": { + "type": "structure", + "members": { + "ReadCapacityUnits": { + "type": "integer", + "required": true + }, + "WriteCapacityUnits": { + "type": "integer", + "required": true + } + }, + "required": true + } + } + } + }, + "ProvisionedThroughput": { + "type": "structure", + "members": { + "ReadCapacityUnits": { + "type": "integer", + "required": true + }, + "WriteCapacityUnits": { + "type": "integer", + "required": true + } + }, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "TableDescription": { + "type": "structure", + "members": { + "AttributeDefinitions": { + "type": "list", + "members": { + "type": "structure", + "members": { + "AttributeName": {}, + "AttributeType": {} + } + } + }, + "TableName": {}, + "KeySchema": { + "type": "list", + "members": { + "type": "structure", + "members": { + "AttributeName": {}, + "KeyType": {} + } + } + }, + "TableStatus": {}, + "CreationDateTime": { + "type": "timestamp" + }, + "ProvisionedThroughput": { + "type": "structure", + "members": { + "LastIncreaseDateTime": { + "type": "timestamp" + }, + "LastDecreaseDateTime": { + "type": "timestamp" + }, + "NumberOfDecreasesToday": { + "type": "integer" + }, + "ReadCapacityUnits": { + "type": "integer" + }, + "WriteCapacityUnits": { + "type": "integer" + } + } + }, + "TableSizeBytes": { + "type": "integer" + }, + "ItemCount": { + "type": "integer" + }, + "LocalSecondaryIndexes": { + "type": "list", + "members": { + "type": "structure", + "members": { + "IndexName": {}, + "KeySchema": { + "type": "list", + "members": { + "type": "structure", + "members": { + "AttributeName": {}, + "KeyType": {} + } + } + }, + "Projection": { + "type": "structure", + "members": { + "ProjectionType": {}, + "NonKeyAttributes": { + "type": "list", + "members": {} + } + } + }, + "IndexSizeBytes": { + "type": "integer" + }, + "ItemCount": { + "type": "integer" + } + } + } + }, + "GlobalSecondaryIndexes": { + "type": "list", + "members": { + "type": "structure", + "members": { + "IndexName": {}, + "KeySchema": { + "type": "list", + "members": { + "type": "structure", + "members": { + "AttributeName": {}, + "KeyType": {} + } + } + }, + "Projection": { + "type": "structure", + "members": { + "ProjectionType": {}, + "NonKeyAttributes": { + "type": "list", + "members": {} + } + } + }, + "IndexStatus": {}, + "ProvisionedThroughput": { + "type": "structure", + "members": { + "LastIncreaseDateTime": { + "type": "timestamp" + }, + "LastDecreaseDateTime": { + "type": "timestamp" + }, + "NumberOfDecreasesToday": { + "type": "integer" + }, + "ReadCapacityUnits": { + "type": "integer" + }, + "WriteCapacityUnits": { + "type": "integer" + } + } + }, + "IndexSizeBytes": { + "type": "integer" + }, + "ItemCount": { + "type": "integer" + } + } + } + } + } + } + } + } + }, + "deleteItem": { + "name": "DeleteItem", + "input": { + "type": "structure", + "members": { + "TableName": { + "required": true + }, + "Key": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "base64" + }, + "SS": { + "type": "list", + "members": {} + }, + "NS": { + "type": "list", + "members": {} + }, + "BS": { + "type": "list", + "members": { + "type": "base64" + } + } + } + }, + "required": true + }, + "Expected": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "Value": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "base64" + }, + "SS": { + "type": "list", + "members": {} + }, + "NS": { + "type": "list", + "members": {} + }, + "BS": { + "type": "list", + "members": { + "type": "base64" + } + } + } + }, + "Exists": { + "type": "boolean" + } + } + } + }, + "ReturnValues": {}, + "ReturnConsumedCapacity": {}, + "ReturnItemCollectionMetrics": {} + } + }, + "output": { + "type": "structure", + "members": { + "Attributes": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "base64" + }, + "SS": { + "type": "list", + "members": {} + }, + "NS": { + "type": "list", + "members": {} + }, + "BS": { + "type": "list", + "members": { + "type": "base64" + } + } + } + } + }, + "ConsumedCapacity": { + "type": "structure", + "members": { + "TableName": {}, + "CapacityUnits": { + "type": "float" + }, + "Table": { + "type": "structure", + "members": { + "CapacityUnits": { + "type": "float" + } + } + }, + "LocalSecondaryIndexes": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "CapacityUnits": { + "type": "float" + } + } + } + }, + "GlobalSecondaryIndexes": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "CapacityUnits": { + "type": "float" + } + } + } + } + } + }, + "ItemCollectionMetrics": { + "type": "structure", + "members": { + "ItemCollectionKey": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "base64" + }, + "SS": { + "type": "list", + "members": {} + }, + "NS": { + "type": "list", + "members": {} + }, + "BS": { + "type": "list", + "members": { + "type": "base64" + } + } + } + } + }, + "SizeEstimateRangeGB": { + "type": "list", + "members": { + "type": "float" + } + } + } + } + } + } + }, + "deleteTable": { + "name": "DeleteTable", + "input": { + "type": "structure", + "members": { + "TableName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "TableDescription": { + "type": "structure", + "members": { + "AttributeDefinitions": { + "type": "list", + "members": { + "type": "structure", + "members": { + "AttributeName": {}, + "AttributeType": {} + } + } + }, + "TableName": {}, + "KeySchema": { + "type": "list", + "members": { + "type": "structure", + "members": { + "AttributeName": {}, + "KeyType": {} + } + } + }, + "TableStatus": {}, + "CreationDateTime": { + "type": "timestamp" + }, + "ProvisionedThroughput": { + "type": "structure", + "members": { + "LastIncreaseDateTime": { + "type": "timestamp" + }, + "LastDecreaseDateTime": { + "type": "timestamp" + }, + "NumberOfDecreasesToday": { + "type": "integer" + }, + "ReadCapacityUnits": { + "type": "integer" + }, + "WriteCapacityUnits": { + "type": "integer" + } + } + }, + "TableSizeBytes": { + "type": "integer" + }, + "ItemCount": { + "type": "integer" + }, + "LocalSecondaryIndexes": { + "type": "list", + "members": { + "type": "structure", + "members": { + "IndexName": {}, + "KeySchema": { + "type": "list", + "members": { + "type": "structure", + "members": { + "AttributeName": {}, + "KeyType": {} + } + } + }, + "Projection": { + "type": "structure", + "members": { + "ProjectionType": {}, + "NonKeyAttributes": { + "type": "list", + "members": {} + } + } + }, + "IndexSizeBytes": { + "type": "integer" + }, + "ItemCount": { + "type": "integer" + } + } + } + }, + "GlobalSecondaryIndexes": { + "type": "list", + "members": { + "type": "structure", + "members": { + "IndexName": {}, + "KeySchema": { + "type": "list", + "members": { + "type": "structure", + "members": { + "AttributeName": {}, + "KeyType": {} + } + } + }, + "Projection": { + "type": "structure", + "members": { + "ProjectionType": {}, + "NonKeyAttributes": { + "type": "list", + "members": {} + } + } + }, + "IndexStatus": {}, + "ProvisionedThroughput": { + "type": "structure", + "members": { + "LastIncreaseDateTime": { + "type": "timestamp" + }, + "LastDecreaseDateTime": { + "type": "timestamp" + }, + "NumberOfDecreasesToday": { + "type": "integer" + }, + "ReadCapacityUnits": { + "type": "integer" + }, + "WriteCapacityUnits": { + "type": "integer" + } + } + }, + "IndexSizeBytes": { + "type": "integer" + }, + "ItemCount": { + "type": "integer" + } + } + } + } + } + } + } + } + }, + "describeTable": { + "name": "DescribeTable", + "input": { + "type": "structure", + "members": { + "TableName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "Table": { + "type": "structure", + "members": { + "AttributeDefinitions": { + "type": "list", + "members": { + "type": "structure", + "members": { + "AttributeName": {}, + "AttributeType": {} + } + } + }, + "TableName": {}, + "KeySchema": { + "type": "list", + "members": { + "type": "structure", + "members": { + "AttributeName": {}, + "KeyType": {} + } + } + }, + "TableStatus": {}, + "CreationDateTime": { + "type": "timestamp" + }, + "ProvisionedThroughput": { + "type": "structure", + "members": { + "LastIncreaseDateTime": { + "type": "timestamp" + }, + "LastDecreaseDateTime": { + "type": "timestamp" + }, + "NumberOfDecreasesToday": { + "type": "integer" + }, + "ReadCapacityUnits": { + "type": "integer" + }, + "WriteCapacityUnits": { + "type": "integer" + } + } + }, + "TableSizeBytes": { + "type": "integer" + }, + "ItemCount": { + "type": "integer" + }, + "LocalSecondaryIndexes": { + "type": "list", + "members": { + "type": "structure", + "members": { + "IndexName": {}, + "KeySchema": { + "type": "list", + "members": { + "type": "structure", + "members": { + "AttributeName": {}, + "KeyType": {} + } + } + }, + "Projection": { + "type": "structure", + "members": { + "ProjectionType": {}, + "NonKeyAttributes": { + "type": "list", + "members": {} + } + } + }, + "IndexSizeBytes": { + "type": "integer" + }, + "ItemCount": { + "type": "integer" + } + } + } + }, + "GlobalSecondaryIndexes": { + "type": "list", + "members": { + "type": "structure", + "members": { + "IndexName": {}, + "KeySchema": { + "type": "list", + "members": { + "type": "structure", + "members": { + "AttributeName": {}, + "KeyType": {} + } + } + }, + "Projection": { + "type": "structure", + "members": { + "ProjectionType": {}, + "NonKeyAttributes": { + "type": "list", + "members": {} + } + } + }, + "IndexStatus": {}, + "ProvisionedThroughput": { + "type": "structure", + "members": { + "LastIncreaseDateTime": { + "type": "timestamp" + }, + "LastDecreaseDateTime": { + "type": "timestamp" + }, + "NumberOfDecreasesToday": { + "type": "integer" + }, + "ReadCapacityUnits": { + "type": "integer" + }, + "WriteCapacityUnits": { + "type": "integer" + } + } + }, + "IndexSizeBytes": { + "type": "integer" + }, + "ItemCount": { + "type": "integer" + } + } + } + } + } + } + } + } + }, + "getItem": { + "name": "GetItem", + "input": { + "type": "structure", + "members": { + "TableName": { + "required": true + }, + "Key": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "base64" + }, + "SS": { + "type": "list", + "members": {} + }, + "NS": { + "type": "list", + "members": {} + }, + "BS": { + "type": "list", + "members": { + "type": "base64" + } + } + } + }, + "required": true + }, + "AttributesToGet": { + "type": "list", + "members": {} + }, + "ConsistentRead": { + "type": "boolean" + }, + "ReturnConsumedCapacity": {} + } + }, + "output": { + "type": "structure", + "members": { + "Item": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "base64" + }, + "SS": { + "type": "list", + "members": {} + }, + "NS": { + "type": "list", + "members": {} + }, + "BS": { + "type": "list", + "members": { + "type": "base64" + } + } + } + } + }, + "ConsumedCapacity": { + "type": "structure", + "members": { + "TableName": {}, + "CapacityUnits": { + "type": "float" + }, + "Table": { + "type": "structure", + "members": { + "CapacityUnits": { + "type": "float" + } + } + }, + "LocalSecondaryIndexes": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "CapacityUnits": { + "type": "float" + } + } + } + }, + "GlobalSecondaryIndexes": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "CapacityUnits": { + "type": "float" + } + } + } + } + } + } + } + } + }, + "listTables": { + "name": "ListTables", + "input": { + "type": "structure", + "members": { + "ExclusiveStartTableName": {}, + "Limit": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "TableNames": { + "type": "list", + "members": {} + }, + "LastEvaluatedTableName": {} + } + } + }, + "putItem": { + "name": "PutItem", + "input": { + "type": "structure", + "members": { + "TableName": { + "required": true + }, + "Item": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "base64" + }, + "SS": { + "type": "list", + "members": {} + }, + "NS": { + "type": "list", + "members": {} + }, + "BS": { + "type": "list", + "members": { + "type": "base64" + } + } + } + }, + "required": true + }, + "Expected": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "Value": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "base64" + }, + "SS": { + "type": "list", + "members": {} + }, + "NS": { + "type": "list", + "members": {} + }, + "BS": { + "type": "list", + "members": { + "type": "base64" + } + } + } + }, + "Exists": { + "type": "boolean" + } + } + } + }, + "ReturnValues": {}, + "ReturnConsumedCapacity": {}, + "ReturnItemCollectionMetrics": {} + } + }, + "output": { + "type": "structure", + "members": { + "Attributes": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "base64" + }, + "SS": { + "type": "list", + "members": {} + }, + "NS": { + "type": "list", + "members": {} + }, + "BS": { + "type": "list", + "members": { + "type": "base64" + } + } + } + } + }, + "ConsumedCapacity": { + "type": "structure", + "members": { + "TableName": {}, + "CapacityUnits": { + "type": "float" + }, + "Table": { + "type": "structure", + "members": { + "CapacityUnits": { + "type": "float" + } + } + }, + "LocalSecondaryIndexes": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "CapacityUnits": { + "type": "float" + } + } + } + }, + "GlobalSecondaryIndexes": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "CapacityUnits": { + "type": "float" + } + } + } + } + } + }, + "ItemCollectionMetrics": { + "type": "structure", + "members": { + "ItemCollectionKey": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "base64" + }, + "SS": { + "type": "list", + "members": {} + }, + "NS": { + "type": "list", + "members": {} + }, + "BS": { + "type": "list", + "members": { + "type": "base64" + } + } + } + } + }, + "SizeEstimateRangeGB": { + "type": "list", + "members": { + "type": "float" + } + } + } + } + } + } + }, + "query": { + "name": "Query", + "input": { + "type": "structure", + "members": { + "TableName": { + "required": true + }, + "IndexName": {}, + "Select": {}, + "AttributesToGet": { + "type": "list", + "members": {} + }, + "Limit": { + "type": "integer" + }, + "ConsistentRead": { + "type": "boolean" + }, + "KeyConditions": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "AttributeValueList": { + "type": "list", + "members": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "base64" + }, + "SS": { + "type": "list", + "members": {} + }, + "NS": { + "type": "list", + "members": {} + }, + "BS": { + "type": "list", + "members": { + "type": "base64" + } + } + } + } + }, + "ComparisonOperator": { + "required": true + } + } + } + }, + "ScanIndexForward": { + "type": "boolean" + }, + "ExclusiveStartKey": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "base64" + }, + "SS": { + "type": "list", + "members": {} + }, + "NS": { + "type": "list", + "members": {} + }, + "BS": { + "type": "list", + "members": { + "type": "base64" + } + } + } + } + }, + "ReturnConsumedCapacity": {} + } + }, + "output": { + "type": "structure", + "members": { + "Items": { + "type": "list", + "members": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "base64" + }, + "SS": { + "type": "list", + "members": {} + }, + "NS": { + "type": "list", + "members": {} + }, + "BS": { + "type": "list", + "members": { + "type": "base64" + } + } + } + } + } + }, + "Count": { + "type": "integer" + }, + "LastEvaluatedKey": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "base64" + }, + "SS": { + "type": "list", + "members": {} + }, + "NS": { + "type": "list", + "members": {} + }, + "BS": { + "type": "list", + "members": { + "type": "base64" + } + } + } + } + }, + "ConsumedCapacity": { + "type": "structure", + "members": { + "TableName": {}, + "CapacityUnits": { + "type": "float" + }, + "Table": { + "type": "structure", + "members": { + "CapacityUnits": { + "type": "float" + } + } + }, + "LocalSecondaryIndexes": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "CapacityUnits": { + "type": "float" + } + } + } + }, + "GlobalSecondaryIndexes": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "CapacityUnits": { + "type": "float" + } + } + } + } + } + } + } + } + }, + "scan": { + "name": "Scan", + "input": { + "type": "structure", + "members": { + "TableName": { + "required": true + }, + "AttributesToGet": { + "type": "list", + "members": {} + }, + "Limit": { + "type": "integer" + }, + "Select": {}, + "ScanFilter": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "AttributeValueList": { + "type": "list", + "members": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "base64" + }, + "SS": { + "type": "list", + "members": {} + }, + "NS": { + "type": "list", + "members": {} + }, + "BS": { + "type": "list", + "members": { + "type": "base64" + } + } + } + } + }, + "ComparisonOperator": { + "required": true + } + } + } + }, + "ExclusiveStartKey": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "base64" + }, + "SS": { + "type": "list", + "members": {} + }, + "NS": { + "type": "list", + "members": {} + }, + "BS": { + "type": "list", + "members": { + "type": "base64" + } + } + } + } + }, + "ReturnConsumedCapacity": {}, + "TotalSegments": { + "type": "integer" + }, + "Segment": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "Items": { + "type": "list", + "members": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "base64" + }, + "SS": { + "type": "list", + "members": {} + }, + "NS": { + "type": "list", + "members": {} + }, + "BS": { + "type": "list", + "members": { + "type": "base64" + } + } + } + } + } + }, + "Count": { + "type": "integer" + }, + "ScannedCount": { + "type": "integer" + }, + "LastEvaluatedKey": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "base64" + }, + "SS": { + "type": "list", + "members": {} + }, + "NS": { + "type": "list", + "members": {} + }, + "BS": { + "type": "list", + "members": { + "type": "base64" + } + } + } + } + }, + "ConsumedCapacity": { + "type": "structure", + "members": { + "TableName": {}, + "CapacityUnits": { + "type": "float" + }, + "Table": { + "type": "structure", + "members": { + "CapacityUnits": { + "type": "float" + } + } + }, + "LocalSecondaryIndexes": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "CapacityUnits": { + "type": "float" + } + } + } + }, + "GlobalSecondaryIndexes": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "CapacityUnits": { + "type": "float" + } + } + } + } + } + } + } + } + }, + "updateItem": { + "name": "UpdateItem", + "input": { + "type": "structure", + "members": { + "TableName": { + "required": true + }, + "Key": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "base64" + }, + "SS": { + "type": "list", + "members": {} + }, + "NS": { + "type": "list", + "members": {} + }, + "BS": { + "type": "list", + "members": { + "type": "base64" + } + } + } + }, + "required": true + }, + "AttributeUpdates": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "Value": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "base64" + }, + "SS": { + "type": "list", + "members": {} + }, + "NS": { + "type": "list", + "members": {} + }, + "BS": { + "type": "list", + "members": { + "type": "base64" + } + } + } + }, + "Action": {} + } + } + }, + "Expected": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "Value": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "base64" + }, + "SS": { + "type": "list", + "members": {} + }, + "NS": { + "type": "list", + "members": {} + }, + "BS": { + "type": "list", + "members": { + "type": "base64" + } + } + } + }, + "Exists": { + "type": "boolean" + } + } + } + }, + "ReturnValues": {}, + "ReturnConsumedCapacity": {}, + "ReturnItemCollectionMetrics": {} + } + }, + "output": { + "type": "structure", + "members": { + "Attributes": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "base64" + }, + "SS": { + "type": "list", + "members": {} + }, + "NS": { + "type": "list", + "members": {} + }, + "BS": { + "type": "list", + "members": { + "type": "base64" + } + } + } + } + }, + "ConsumedCapacity": { + "type": "structure", + "members": { + "TableName": {}, + "CapacityUnits": { + "type": "float" + }, + "Table": { + "type": "structure", + "members": { + "CapacityUnits": { + "type": "float" + } + } + }, + "LocalSecondaryIndexes": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "CapacityUnits": { + "type": "float" + } + } + } + }, + "GlobalSecondaryIndexes": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "CapacityUnits": { + "type": "float" + } + } + } + } + } + }, + "ItemCollectionMetrics": { + "type": "structure", + "members": { + "ItemCollectionKey": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "S": {}, + "N": {}, + "B": { + "type": "base64" + }, + "SS": { + "type": "list", + "members": {} + }, + "NS": { + "type": "list", + "members": {} + }, + "BS": { + "type": "list", + "members": { + "type": "base64" + } + } + } + } + }, + "SizeEstimateRangeGB": { + "type": "list", + "members": { + "type": "float" + } + } + } + } + } + } + }, + "updateTable": { + "name": "UpdateTable", + "input": { + "type": "structure", + "members": { + "TableName": { + "required": true + }, + "ProvisionedThroughput": { + "type": "structure", + "members": { + "ReadCapacityUnits": { + "type": "integer", + "required": true + }, + "WriteCapacityUnits": { + "type": "integer", + "required": true + } + } + }, + "GlobalSecondaryIndexUpdates": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Update": { + "type": "structure", + "members": { + "IndexName": { + "required": true + }, + "ProvisionedThroughput": { + "type": "structure", + "members": { + "ReadCapacityUnits": { + "type": "integer", + "required": true + }, + "WriteCapacityUnits": { + "type": "integer", + "required": true + } + }, + "required": true + } + } + } + } + } + } + } + }, + "output": { + "type": "structure", + "members": { + "TableDescription": { + "type": "structure", + "members": { + "AttributeDefinitions": { + "type": "list", + "members": { + "type": "structure", + "members": { + "AttributeName": {}, + "AttributeType": {} + } + } + }, + "TableName": {}, + "KeySchema": { + "type": "list", + "members": { + "type": "structure", + "members": { + "AttributeName": {}, + "KeyType": {} + } + } + }, + "TableStatus": {}, + "CreationDateTime": { + "type": "timestamp" + }, + "ProvisionedThroughput": { + "type": "structure", + "members": { + "LastIncreaseDateTime": { + "type": "timestamp" + }, + "LastDecreaseDateTime": { + "type": "timestamp" + }, + "NumberOfDecreasesToday": { + "type": "integer" + }, + "ReadCapacityUnits": { + "type": "integer" + }, + "WriteCapacityUnits": { + "type": "integer" + } + } + }, + "TableSizeBytes": { + "type": "integer" + }, + "ItemCount": { + "type": "integer" + }, + "LocalSecondaryIndexes": { + "type": "list", + "members": { + "type": "structure", + "members": { + "IndexName": {}, + "KeySchema": { + "type": "list", + "members": { + "type": "structure", + "members": { + "AttributeName": {}, + "KeyType": {} + } + } + }, + "Projection": { + "type": "structure", + "members": { + "ProjectionType": {}, + "NonKeyAttributes": { + "type": "list", + "members": {} + } + } + }, + "IndexSizeBytes": { + "type": "integer" + }, + "ItemCount": { + "type": "integer" + } + } + } + }, + "GlobalSecondaryIndexes": { + "type": "list", + "members": { + "type": "structure", + "members": { + "IndexName": {}, + "KeySchema": { + "type": "list", + "members": { + "type": "structure", + "members": { + "AttributeName": {}, + "KeyType": {} + } + } + }, + "Projection": { + "type": "structure", + "members": { + "ProjectionType": {}, + "NonKeyAttributes": { + "type": "list", + "members": {} + } + } + }, + "IndexStatus": {}, + "ProvisionedThroughput": { + "type": "structure", + "members": { + "LastIncreaseDateTime": { + "type": "timestamp" + }, + "LastDecreaseDateTime": { + "type": "timestamp" + }, + "NumberOfDecreasesToday": { + "type": "integer" + }, + "ReadCapacityUnits": { + "type": "integer" + }, + "WriteCapacityUnits": { + "type": "integer" + } + } + }, + "IndexSizeBytes": { + "type": "integer" + }, + "ItemCount": { + "type": "integer" + } + } + } + } + } + } + } + } + } + }, + "pagination": { + "batchGetItem": { + "inputToken": "RequestItems", + "outputToken": "UnprocessedKeys", + "resultKey": "Responses[]" + }, + "listTables": { + "inputToken": "ExclusiveStartTableName", + "outputToken": "LastEvaluatedTableName", + "limitKey": "Limit", + "resultKey": "TableNames" + }, + "query": { + "inputToken": "ExclusiveStartKey", + "outputToken": "LastEvaluatedKey", + "limitKey": "Limit", + "resultKey": "Items" + }, + "scan": { + "inputToken": "ExclusiveStartKey", + "outputToken": "LastEvaluatedKey", + "limitKey": "Limit", + "resultKey": "Items" + } + }, + "waiters": { + "__default__": { + "interval": 20, + "maxAttempts": 25 + }, + "__TableState": { + "operation": "DescribeTable" + }, + "tableExists": { + "extends": "__TableState", + "ignoreErrors": [ + "ResourceNotFoundException" + ], + "successType": "output", + "successPath": "Table.TableStatus", + "successValue": "ACTIVE" + }, + "tableNotExists": { + "extends": "__TableState", + "successType": "error", + "successValue": "ResourceNotFoundException" + } + } +} \ No newline at end of file diff --git a/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/EC2-2014-02-01.json b/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/EC2-2014-02-01.json new file mode 100644 index 00000000..f2500e98 --- /dev/null +++ b/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/EC2-2014-02-01.json @@ -0,0 +1,11328 @@ +{ + "format": "query", + "apiVersion": "2014-02-01", + "endpointPrefix": "ec2", + "serviceAbbreviation": "Amazon EC2", + "serviceFullName": "Amazon Elastic Compute Cloud", + "signatureVersion": "v2", + "timestampFormat": "iso8601", + "operations": { + "acceptVpcPeeringConnection": { + "name": "AcceptVpcPeeringConnection", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "VpcPeeringConnectionId": {} + } + }, + "output": { + "type": "structure", + "members": { + "vpcPeeringConnection": { + "type": "structure", + "members": { + "accepterVpcInfo": { + "type": "structure", + "members": { + "cidrBlock": { + "name": "CidrBlock" + }, + "ownerId": { + "name": "OwnerId" + }, + "vpcId": { + "name": "VpcId" + } + }, + "name": "AccepterVpcInfo" + }, + "expirationTime": { + "type": "timestamp", + "name": "ExpirationTime" + }, + "requesterVpcInfo": { + "type": "structure", + "members": { + "cidrBlock": { + "name": "CidrBlock" + }, + "ownerId": { + "name": "OwnerId" + }, + "vpcId": { + "name": "VpcId" + } + }, + "name": "RequesterVpcInfo" + }, + "status": { + "type": "structure", + "members": { + "code": { + "name": "Code" + }, + "message": { + "name": "Message" + } + }, + "name": "Status" + }, + "tagSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "key": { + "name": "Key" + }, + "value": { + "name": "Value" + } + }, + "name": "item" + }, + "name": "Tags" + }, + "vpcPeeringConnectionId": { + "name": "VpcPeeringConnectionId" + } + }, + "name": "VpcPeeringConnection" + } + } + } + }, + "allocateAddress": { + "name": "AllocateAddress", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "Domain": {} + } + }, + "output": { + "type": "structure", + "members": { + "publicIp": { + "name": "PublicIp" + }, + "domain": { + "name": "Domain" + }, + "allocationId": { + "name": "AllocationId" + } + } + } + }, + "assignPrivateIpAddresses": { + "name": "AssignPrivateIpAddresses", + "input": { + "type": "structure", + "members": { + "NetworkInterfaceId": { + "required": true + }, + "PrivateIpAddresses": { + "type": "list", + "members": { + "name": "PrivateIpAddress" + }, + "flattened": true + }, + "SecondaryPrivateIpAddressCount": { + "type": "integer" + }, + "AllowReassignment": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "associateAddress": { + "name": "AssociateAddress", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "InstanceId": {}, + "PublicIp": {}, + "AllocationId": {}, + "NetworkInterfaceId": {}, + "PrivateIpAddress": {}, + "AllowReassociation": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "associationId": { + "name": "AssociationId" + } + } + } + }, + "associateDhcpOptions": { + "name": "AssociateDhcpOptions", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "DhcpOptionsId": { + "required": true + }, + "VpcId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "associateRouteTable": { + "name": "AssociateRouteTable", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "SubnetId": { + "required": true + }, + "RouteTableId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "associationId": { + "name": "AssociationId" + } + } + } + }, + "attachInternetGateway": { + "name": "AttachInternetGateway", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "InternetGatewayId": { + "required": true + }, + "VpcId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "attachNetworkInterface": { + "name": "AttachNetworkInterface", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "NetworkInterfaceId": { + "required": true + }, + "InstanceId": { + "required": true + }, + "DeviceIndex": { + "type": "integer", + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "attachmentId": { + "name": "AttachmentId" + } + } + } + }, + "attachVolume": { + "name": "AttachVolume", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "VolumeId": { + "required": true + }, + "InstanceId": { + "required": true + }, + "Device": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "volumeId": { + "name": "VolumeId" + }, + "instanceId": { + "name": "InstanceId" + }, + "device": { + "name": "Device" + }, + "status": { + "name": "State" + }, + "attachTime": { + "type": "timestamp", + "name": "AttachTime" + }, + "deleteOnTermination": { + "type": "boolean", + "name": "DeleteOnTermination" + } + }, + "name": "attachment" + } + }, + "attachVpnGateway": { + "name": "AttachVpnGateway", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "VpnGatewayId": { + "required": true + }, + "VpcId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "attachment": { + "type": "structure", + "members": { + "vpcId": { + "name": "VpcId" + }, + "state": { + "name": "State" + } + }, + "name": "VpcAttachment" + } + } + } + }, + "authorizeSecurityGroupEgress": { + "name": "AuthorizeSecurityGroupEgress", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "GroupId": { + "required": true + }, + "SourceSecurityGroupName": {}, + "SourceSecurityGroupOwnerId": {}, + "IpProtocol": {}, + "FromPort": { + "type": "integer" + }, + "ToPort": { + "type": "integer" + }, + "CidrIp": {}, + "IpPermissions": { + "type": "list", + "members": { + "type": "structure", + "members": { + "IpProtocol": {}, + "FromPort": { + "type": "integer" + }, + "ToPort": { + "type": "integer" + }, + "UserIdGroupPairs": { + "type": "list", + "members": { + "type": "structure", + "members": { + "UserId": {}, + "GroupName": {}, + "GroupId": {} + }, + "name": "Groups" + }, + "flattened": true + }, + "IpRanges": { + "type": "list", + "members": { + "type": "structure", + "members": { + "CidrIp": {} + } + }, + "flattened": true + } + } + }, + "flattened": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "authorizeSecurityGroupIngress": { + "name": "AuthorizeSecurityGroupIngress", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "GroupName": {}, + "GroupId": {}, + "SourceSecurityGroupName": {}, + "SourceSecurityGroupOwnerId": {}, + "IpProtocol": {}, + "FromPort": { + "type": "integer" + }, + "ToPort": { + "type": "integer" + }, + "CidrIp": {}, + "IpPermissions": { + "type": "list", + "members": { + "type": "structure", + "members": { + "IpProtocol": {}, + "FromPort": { + "type": "integer" + }, + "ToPort": { + "type": "integer" + }, + "UserIdGroupPairs": { + "type": "list", + "members": { + "type": "structure", + "members": { + "UserId": {}, + "GroupName": {}, + "GroupId": {} + }, + "name": "Groups" + }, + "flattened": true + }, + "IpRanges": { + "type": "list", + "members": { + "type": "structure", + "members": { + "CidrIp": {} + } + }, + "flattened": true + } + } + }, + "flattened": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "bundleInstance": { + "name": "BundleInstance", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "InstanceId": { + "required": true + }, + "Storage": { + "type": "structure", + "members": { + "S3": { + "type": "structure", + "members": { + "Bucket": {}, + "Prefix": {}, + "AWSAccessKeyId": {}, + "UploadPolicy": { + "type": "base64" + }, + "UploadPolicySignature": {} + } + } + }, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "bundleInstanceTask": { + "type": "structure", + "members": { + "instanceId": { + "name": "InstanceId" + }, + "bundleId": { + "name": "BundleId" + }, + "state": { + "name": "State" + }, + "startTime": { + "type": "timestamp", + "name": "StartTime" + }, + "updateTime": { + "type": "timestamp", + "name": "UpdateTime" + }, + "storage": { + "type": "structure", + "members": { + "S3": { + "type": "structure", + "members": { + "bucket": { + "name": "Bucket" + }, + "prefix": { + "name": "Prefix" + }, + "AWSAccessKeyId": {}, + "uploadPolicy": { + "name": "UploadPolicy" + }, + "uploadPolicySignature": { + "name": "UploadPolicySignature" + } + } + } + }, + "name": "Storage" + }, + "progress": { + "name": "Progress" + }, + "error": { + "type": "structure", + "members": { + "code": { + "name": "Code" + }, + "message": { + "name": "Message" + } + }, + "name": "BundleTaskError" + } + }, + "name": "BundleTask" + } + } + } + }, + "cancelBundleTask": { + "name": "CancelBundleTask", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "BundleId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "bundleInstanceTask": { + "type": "structure", + "members": { + "instanceId": { + "name": "InstanceId" + }, + "bundleId": { + "name": "BundleId" + }, + "state": { + "name": "State" + }, + "startTime": { + "type": "timestamp", + "name": "StartTime" + }, + "updateTime": { + "type": "timestamp", + "name": "UpdateTime" + }, + "storage": { + "type": "structure", + "members": { + "S3": { + "type": "structure", + "members": { + "bucket": { + "name": "Bucket" + }, + "prefix": { + "name": "Prefix" + }, + "AWSAccessKeyId": {}, + "uploadPolicy": { + "name": "UploadPolicy" + }, + "uploadPolicySignature": { + "name": "UploadPolicySignature" + } + } + } + }, + "name": "Storage" + }, + "progress": { + "name": "Progress" + }, + "error": { + "type": "structure", + "members": { + "code": { + "name": "Code" + }, + "message": { + "name": "Message" + } + }, + "name": "BundleTaskError" + } + }, + "name": "BundleTask" + } + } + } + }, + "cancelConversionTask": { + "name": "CancelConversionTask", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "ConversionTaskId": { + "required": true + }, + "ReasonMessage": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "cancelExportTask": { + "name": "CancelExportTask", + "input": { + "type": "structure", + "members": { + "ExportTaskId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "cancelReservedInstancesListing": { + "name": "CancelReservedInstancesListing", + "input": { + "type": "structure", + "members": { + "ReservedInstancesListingId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "reservedInstancesListingsSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "reservedInstancesListingId": { + "name": "ReservedInstancesListingId" + }, + "reservedInstancesId": { + "name": "ReservedInstancesId" + }, + "createDate": { + "type": "timestamp", + "name": "CreateDate" + }, + "updateDate": { + "type": "timestamp", + "name": "UpdateDate" + }, + "status": { + "name": "Status" + }, + "statusMessage": { + "name": "StatusMessage" + }, + "instanceCounts": { + "type": "list", + "members": { + "type": "structure", + "members": { + "state": { + "name": "State" + }, + "instanceCount": { + "type": "integer", + "name": "InstanceCount" + } + }, + "name": "item" + }, + "name": "InstanceCounts" + }, + "priceSchedules": { + "type": "list", + "members": { + "type": "structure", + "members": { + "term": { + "type": "integer", + "name": "Term" + }, + "price": { + "type": "float", + "name": "Price" + }, + "currencyCode": { + "name": "CurrencyCode" + }, + "active": { + "type": "boolean", + "name": "Active" + } + }, + "name": "item" + }, + "name": "PriceSchedules" + }, + "tagSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "key": { + "name": "Key" + }, + "value": { + "name": "Value" + } + }, + "name": "item" + }, + "name": "Tags" + }, + "clientToken": { + "name": "ClientToken" + } + }, + "name": "item" + }, + "name": "ReservedInstancesListings" + } + } + } + }, + "cancelSpotInstanceRequests": { + "name": "CancelSpotInstanceRequests", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "SpotInstanceRequestIds": { + "type": "list", + "members": { + "name": "SpotInstanceRequestId" + }, + "required": true, + "flattened": true + } + } + }, + "output": { + "type": "structure", + "members": { + "spotInstanceRequestSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "spotInstanceRequestId": { + "name": "SpotInstanceRequestId" + }, + "state": { + "name": "State" + } + }, + "name": "item" + }, + "name": "CancelledSpotInstanceRequests" + } + } + } + }, + "confirmProductInstance": { + "name": "ConfirmProductInstance", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "ProductCode": { + "required": true + }, + "InstanceId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "ownerId": { + "name": "OwnerId" + } + } + } + }, + "copyImage": { + "name": "CopyImage", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "SourceRegion": { + "required": true + }, + "SourceImageId": { + "required": true + }, + "Name": { + "required": true + }, + "Description": {}, + "ClientToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "imageId": { + "name": "ImageId" + } + } + } + }, + "copySnapshot": { + "name": "CopySnapshot", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "SourceRegion": { + "required": true + }, + "SourceSnapshotId": { + "required": true + }, + "Description": {} + } + }, + "output": { + "type": "structure", + "members": { + "snapshotId": { + "name": "SnapshotId" + } + } + } + }, + "createCustomerGateway": { + "name": "CreateCustomerGateway", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "Type": { + "required": true + }, + "PublicIp": { + "required": true, + "name": "IpAddress" + }, + "BgpAsn": { + "type": "integer", + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "customerGateway": { + "type": "structure", + "members": { + "customerGatewayId": { + "name": "CustomerGatewayId" + }, + "state": { + "name": "State" + }, + "type": { + "name": "Type" + }, + "ipAddress": { + "name": "IpAddress" + }, + "bgpAsn": { + "name": "BgpAsn" + }, + "tagSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "key": { + "name": "Key" + }, + "value": { + "name": "Value" + } + }, + "name": "item" + }, + "name": "Tags" + } + }, + "name": "CustomerGateway" + } + } + } + }, + "createDhcpOptions": { + "name": "CreateDhcpOptions", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "DhcpConfigurations": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Key": {}, + "Values": { + "type": "list", + "members": { + "name": "Value" + }, + "flattened": true + } + }, + "name": "DhcpConfiguration" + }, + "required": true, + "flattened": true + } + } + }, + "output": { + "type": "structure", + "members": { + "dhcpOptions": { + "type": "structure", + "members": { + "dhcpOptionsId": { + "name": "DhcpOptionsId" + }, + "dhcpConfigurationSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "key": { + "name": "Key" + }, + "valueSet": { + "type": "list", + "members": { + "name": "item" + }, + "name": "Values" + } + }, + "name": "item" + }, + "name": "DhcpConfigurations" + }, + "tagSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "key": { + "name": "Key" + }, + "value": { + "name": "Value" + } + }, + "name": "item" + }, + "name": "Tags" + } + }, + "name": "DhcpOptions" + } + } + } + }, + "createImage": { + "name": "CreateImage", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "InstanceId": { + "required": true + }, + "Name": { + "required": true + }, + "Description": {}, + "NoReboot": { + "type": "boolean" + }, + "BlockDeviceMappings": { + "type": "list", + "members": { + "type": "structure", + "members": { + "VirtualName": {}, + "DeviceName": {}, + "Ebs": { + "type": "structure", + "members": { + "SnapshotId": {}, + "VolumeSize": { + "type": "integer" + }, + "DeleteOnTermination": { + "type": "boolean" + }, + "VolumeType": {}, + "Iops": { + "type": "integer" + } + } + }, + "NoDevice": {} + }, + "name": "BlockDeviceMapping" + }, + "flattened": true + } + } + }, + "output": { + "type": "structure", + "members": { + "imageId": { + "name": "ImageId" + } + } + } + }, + "createInstanceExportTask": { + "name": "CreateInstanceExportTask", + "input": { + "type": "structure", + "members": { + "Description": {}, + "InstanceId": { + "required": true + }, + "TargetEnvironment": {}, + "ExportToS3Task": { + "type": "structure", + "members": { + "DiskImageFormat": {}, + "ContainerFormat": {}, + "S3Bucket": {}, + "S3Prefix": {} + }, + "name": "ExportToS3" + } + } + }, + "output": { + "type": "structure", + "members": { + "exportTask": { + "type": "structure", + "members": { + "exportTaskId": { + "name": "ExportTaskId" + }, + "description": { + "name": "Description" + }, + "state": { + "name": "State" + }, + "statusMessage": { + "name": "StatusMessage" + }, + "instanceExport": { + "type": "structure", + "members": { + "instanceId": { + "name": "InstanceId" + }, + "targetEnvironment": { + "name": "TargetEnvironment" + } + }, + "name": "InstanceExportDetails" + }, + "exportToS3": { + "type": "structure", + "members": { + "diskImageFormat": { + "name": "DiskImageFormat" + }, + "containerFormat": { + "name": "ContainerFormat" + }, + "s3Bucket": { + "name": "S3Bucket" + }, + "s3Key": { + "name": "S3Key" + } + }, + "name": "ExportToS3Task" + } + }, + "name": "ExportTask" + } + } + } + }, + "createInternetGateway": { + "name": "CreateInternetGateway", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "internetGateway": { + "type": "structure", + "members": { + "internetGatewayId": { + "name": "InternetGatewayId" + }, + "attachmentSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "vpcId": { + "name": "VpcId" + }, + "state": { + "name": "State" + } + }, + "name": "item" + }, + "name": "Attachments" + }, + "tagSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "key": { + "name": "Key" + }, + "value": { + "name": "Value" + } + }, + "name": "item" + }, + "name": "Tags" + } + }, + "name": "InternetGateway" + } + } + } + }, + "createKeyPair": { + "name": "CreateKeyPair", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "KeyName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "keyName": { + "name": "KeyName" + }, + "keyFingerprint": { + "name": "KeyFingerprint" + }, + "keyMaterial": { + "name": "KeyMaterial" + } + } + } + }, + "createNetworkAcl": { + "name": "CreateNetworkAcl", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "VpcId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "networkAcl": { + "type": "structure", + "members": { + "networkAclId": { + "name": "NetworkAclId" + }, + "vpcId": { + "name": "VpcId" + }, + "default": { + "type": "boolean", + "name": "IsDefault" + }, + "entrySet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ruleNumber": { + "type": "integer", + "name": "RuleNumber" + }, + "protocol": { + "name": "Protocol" + }, + "ruleAction": { + "name": "RuleAction" + }, + "egress": { + "type": "boolean", + "name": "Egress" + }, + "cidrBlock": { + "name": "CidrBlock" + }, + "icmpTypeCode": { + "type": "structure", + "members": { + "type": { + "type": "integer", + "name": "Type" + }, + "code": { + "type": "integer", + "name": "Code" + } + }, + "name": "IcmpTypeCode" + }, + "portRange": { + "type": "structure", + "members": { + "from": { + "type": "integer", + "name": "From" + }, + "to": { + "type": "integer", + "name": "To" + } + }, + "name": "PortRange" + } + }, + "name": "item" + }, + "name": "Entries" + }, + "associationSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "networkAclAssociationId": { + "name": "NetworkAclAssociationId" + }, + "networkAclId": { + "name": "NetworkAclId" + }, + "subnetId": { + "name": "SubnetId" + } + }, + "name": "item" + }, + "name": "Associations" + }, + "tagSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "key": { + "name": "Key" + }, + "value": { + "name": "Value" + } + }, + "name": "item" + }, + "name": "Tags" + } + }, + "name": "NetworkAcl" + } + } + } + }, + "createNetworkAclEntry": { + "name": "CreateNetworkAclEntry", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "NetworkAclId": { + "required": true + }, + "RuleNumber": { + "type": "integer", + "required": true + }, + "Protocol": { + "required": true + }, + "RuleAction": { + "required": true + }, + "Egress": { + "type": "boolean", + "required": true + }, + "CidrBlock": { + "required": true + }, + "IcmpTypeCode": { + "type": "structure", + "members": { + "Type": { + "type": "integer" + }, + "Code": { + "type": "integer" + } + }, + "name": "Icmp" + }, + "PortRange": { + "type": "structure", + "members": { + "From": { + "type": "integer" + }, + "To": { + "type": "integer" + } + } + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "createNetworkInterface": { + "name": "CreateNetworkInterface", + "input": { + "type": "structure", + "members": { + "SubnetId": { + "required": true + }, + "Description": {}, + "PrivateIpAddress": {}, + "Groups": { + "type": "list", + "members": { + "name": "SecurityGroupId" + }, + "flattened": true + }, + "PrivateIpAddresses": { + "type": "list", + "members": { + "type": "structure", + "members": { + "PrivateIpAddress": { + "required": true + }, + "Primary": { + "type": "boolean" + } + } + }, + "flattened": true + }, + "SecondaryPrivateIpAddressCount": { + "type": "integer" + }, + "DryRun": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "networkInterface": { + "type": "structure", + "members": { + "networkInterfaceId": { + "name": "NetworkInterfaceId" + }, + "subnetId": { + "name": "SubnetId" + }, + "vpcId": { + "name": "VpcId" + }, + "availabilityZone": { + "name": "AvailabilityZone" + }, + "description": { + "name": "Description" + }, + "ownerId": { + "name": "OwnerId" + }, + "requesterId": { + "name": "RequesterId" + }, + "requesterManaged": { + "type": "boolean", + "name": "RequesterManaged" + }, + "status": { + "name": "Status" + }, + "macAddress": { + "name": "MacAddress" + }, + "privateIpAddress": { + "name": "PrivateIpAddress" + }, + "privateDnsName": { + "name": "PrivateDnsName" + }, + "sourceDestCheck": { + "type": "boolean", + "name": "SourceDestCheck" + }, + "groupSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "groupName": { + "name": "GroupName" + }, + "groupId": { + "name": "GroupId" + } + }, + "name": "item" + }, + "name": "Groups" + }, + "attachment": { + "type": "structure", + "members": { + "attachmentId": { + "name": "AttachmentId" + }, + "instanceId": { + "name": "InstanceId" + }, + "instanceOwnerId": { + "name": "InstanceOwnerId" + }, + "deviceIndex": { + "type": "integer", + "name": "DeviceIndex" + }, + "status": { + "name": "Status" + }, + "attachTime": { + "type": "timestamp", + "name": "AttachTime" + }, + "deleteOnTermination": { + "type": "boolean", + "name": "DeleteOnTermination" + } + }, + "name": "Attachment" + }, + "association": { + "type": "structure", + "members": { + "publicIp": { + "name": "PublicIp" + }, + "ipOwnerId": { + "name": "IpOwnerId" + }, + "allocationId": { + "name": "AllocationId" + }, + "associationId": { + "name": "AssociationId" + } + }, + "name": "Association" + }, + "tagSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "key": { + "name": "Key" + }, + "value": { + "name": "Value" + } + }, + "name": "item" + }, + "name": "TagSet" + }, + "privateIpAddressesSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "privateIpAddress": { + "name": "PrivateIpAddress" + }, + "privateDnsName": { + "name": "PrivateDnsName" + }, + "primary": { + "type": "boolean", + "name": "Primary" + }, + "association": { + "type": "structure", + "members": { + "publicIp": { + "name": "PublicIp" + }, + "ipOwnerId": { + "name": "IpOwnerId" + }, + "allocationId": { + "name": "AllocationId" + }, + "associationId": { + "name": "AssociationId" + } + }, + "name": "Association" + } + }, + "name": "item" + }, + "name": "PrivateIpAddresses" + } + }, + "name": "NetworkInterface" + } + } + } + }, + "createPlacementGroup": { + "name": "CreatePlacementGroup", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "GroupName": { + "required": true + }, + "Strategy": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "createReservedInstancesListing": { + "name": "CreateReservedInstancesListing", + "input": { + "type": "structure", + "members": { + "ReservedInstancesId": { + "required": true + }, + "InstanceCount": { + "type": "integer", + "required": true + }, + "PriceSchedules": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Term": { + "type": "integer" + }, + "Price": { + "type": "float" + }, + "CurrencyCode": {} + } + }, + "required": true, + "flattened": true + }, + "ClientToken": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "reservedInstancesListingsSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "reservedInstancesListingId": { + "name": "ReservedInstancesListingId" + }, + "reservedInstancesId": { + "name": "ReservedInstancesId" + }, + "createDate": { + "type": "timestamp", + "name": "CreateDate" + }, + "updateDate": { + "type": "timestamp", + "name": "UpdateDate" + }, + "status": { + "name": "Status" + }, + "statusMessage": { + "name": "StatusMessage" + }, + "instanceCounts": { + "type": "list", + "members": { + "type": "structure", + "members": { + "state": { + "name": "State" + }, + "instanceCount": { + "type": "integer", + "name": "InstanceCount" + } + }, + "name": "item" + }, + "name": "InstanceCounts" + }, + "priceSchedules": { + "type": "list", + "members": { + "type": "structure", + "members": { + "term": { + "type": "integer", + "name": "Term" + }, + "price": { + "type": "float", + "name": "Price" + }, + "currencyCode": { + "name": "CurrencyCode" + }, + "active": { + "type": "boolean", + "name": "Active" + } + }, + "name": "item" + }, + "name": "PriceSchedules" + }, + "tagSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "key": { + "name": "Key" + }, + "value": { + "name": "Value" + } + }, + "name": "item" + }, + "name": "Tags" + }, + "clientToken": { + "name": "ClientToken" + } + }, + "name": "item" + }, + "name": "ReservedInstancesListings" + } + } + } + }, + "createRoute": { + "name": "CreateRoute", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "RouteTableId": { + "required": true + }, + "DestinationCidrBlock": { + "required": true + }, + "GatewayId": {}, + "InstanceId": {}, + "NetworkInterfaceId": {}, + "VpcPeeringConnectionId": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "createRouteTable": { + "name": "CreateRouteTable", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "VpcId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "routeTable": { + "type": "structure", + "members": { + "routeTableId": { + "name": "RouteTableId" + }, + "vpcId": { + "name": "VpcId" + }, + "routeSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "destinationCidrBlock": { + "name": "DestinationCidrBlock" + }, + "gatewayId": { + "name": "GatewayId" + }, + "instanceId": { + "name": "InstanceId" + }, + "instanceOwnerId": { + "name": "InstanceOwnerId" + }, + "networkInterfaceId": { + "name": "NetworkInterfaceId" + }, + "vpcPeeringConnectionId": { + "name": "VpcPeeringConnectionId" + }, + "state": { + "name": "State" + }, + "origin": { + "name": "Origin" + } + }, + "name": "item" + }, + "name": "Routes" + }, + "associationSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "routeTableAssociationId": { + "name": "RouteTableAssociationId" + }, + "routeTableId": { + "name": "RouteTableId" + }, + "subnetId": { + "name": "SubnetId" + }, + "main": { + "type": "boolean", + "name": "Main" + } + }, + "name": "item" + }, + "name": "Associations" + }, + "tagSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "key": { + "name": "Key" + }, + "value": { + "name": "Value" + } + }, + "name": "item" + }, + "name": "Tags" + }, + "propagatingVgwSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "gatewayId": { + "name": "GatewayId" + } + }, + "name": "item" + }, + "name": "PropagatingVgws" + } + }, + "name": "RouteTable" + } + } + } + }, + "createSecurityGroup": { + "name": "CreateSecurityGroup", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "GroupName": { + "required": true + }, + "Description": { + "required": true, + "name": "GroupDescription" + }, + "VpcId": {} + } + }, + "output": { + "type": "structure", + "members": { + "groupId": { + "name": "GroupId" + } + } + } + }, + "createSnapshot": { + "name": "CreateSnapshot", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "VolumeId": { + "required": true + }, + "Description": {} + } + }, + "output": { + "type": "structure", + "members": { + "snapshotId": { + "name": "SnapshotId" + }, + "volumeId": { + "name": "VolumeId" + }, + "status": { + "name": "State" + }, + "startTime": { + "type": "timestamp", + "name": "StartTime" + }, + "progress": { + "name": "Progress" + }, + "ownerId": { + "name": "OwnerId" + }, + "description": { + "name": "Description" + }, + "volumeSize": { + "type": "integer", + "name": "VolumeSize" + }, + "ownerAlias": { + "name": "OwnerAlias" + } + }, + "name": "snapshot" + } + }, + "createSpotDatafeedSubscription": { + "name": "CreateSpotDatafeedSubscription", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "Bucket": { + "required": true + }, + "Prefix": {} + } + }, + "output": { + "type": "structure", + "members": { + "spotDatafeedSubscription": { + "type": "structure", + "members": { + "ownerId": { + "name": "OwnerId" + }, + "bucket": { + "name": "Bucket" + }, + "prefix": { + "name": "Prefix" + }, + "state": { + "name": "State" + }, + "fault": { + "type": "structure", + "members": { + "code": { + "name": "Code" + }, + "message": { + "name": "Message" + } + }, + "name": "Fault" + } + }, + "name": "SpotDatafeedSubscription" + } + } + } + }, + "createSubnet": { + "name": "CreateSubnet", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "VpcId": { + "required": true + }, + "CidrBlock": { + "required": true + }, + "AvailabilityZone": {} + } + }, + "output": { + "type": "structure", + "members": { + "subnet": { + "type": "structure", + "members": { + "subnetId": { + "name": "SubnetId" + }, + "state": { + "name": "State" + }, + "vpcId": { + "name": "VpcId" + }, + "cidrBlock": { + "name": "CidrBlock" + }, + "availableIpAddressCount": { + "type": "integer", + "name": "AvailableIpAddressCount" + }, + "availabilityZone": { + "name": "AvailabilityZone" + }, + "defaultForAz": { + "type": "boolean", + "name": "DefaultForAz" + }, + "mapPublicIpOnLaunch": { + "type": "boolean", + "name": "MapPublicIpOnLaunch" + }, + "tagSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "key": { + "name": "Key" + }, + "value": { + "name": "Value" + } + }, + "name": "item" + }, + "name": "Tags" + } + }, + "name": "Subnet" + } + } + } + }, + "createTags": { + "name": "CreateTags", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "Resources": { + "type": "list", + "members": { + "name": "ResourceId" + }, + "required": true, + "flattened": true + }, + "Tags": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Key": {}, + "Value": {} + }, + "name": "Tag" + }, + "required": true, + "flattened": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "createVolume": { + "name": "CreateVolume", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "Size": { + "type": "integer" + }, + "SnapshotId": {}, + "AvailabilityZone": { + "required": true + }, + "VolumeType": {}, + "Iops": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "volumeId": { + "name": "VolumeId" + }, + "size": { + "type": "integer", + "name": "Size" + }, + "snapshotId": { + "name": "SnapshotId" + }, + "availabilityZone": { + "name": "AvailabilityZone" + }, + "status": { + "name": "State" + }, + "createTime": { + "type": "timestamp", + "name": "CreateTime" + }, + "attachmentSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "volumeId": { + "name": "VolumeId" + }, + "instanceId": { + "name": "InstanceId" + }, + "device": { + "name": "Device" + }, + "status": { + "name": "State" + }, + "attachTime": { + "type": "timestamp", + "name": "AttachTime" + }, + "deleteOnTermination": { + "type": "boolean", + "name": "DeleteOnTermination" + } + }, + "name": "item" + }, + "name": "Attachments" + }, + "tagSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "key": { + "name": "Key" + }, + "value": { + "name": "Value" + } + }, + "name": "item" + }, + "name": "Tags" + }, + "volumeType": { + "name": "VolumeType" + }, + "iops": { + "type": "integer", + "name": "Iops" + } + }, + "name": "volume" + } + }, + "createVpc": { + "name": "CreateVpc", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "CidrBlock": { + "required": true + }, + "InstanceTenancy": {} + } + }, + "output": { + "type": "structure", + "members": { + "vpc": { + "type": "structure", + "members": { + "vpcId": { + "name": "VpcId" + }, + "state": { + "name": "State" + }, + "cidrBlock": { + "name": "CidrBlock" + }, + "dhcpOptionsId": { + "name": "DhcpOptionsId" + }, + "tagSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "key": { + "name": "Key" + }, + "value": { + "name": "Value" + } + }, + "name": "item" + }, + "name": "Tags" + }, + "instanceTenancy": { + "name": "InstanceTenancy" + }, + "isDefault": { + "type": "boolean", + "name": "IsDefault" + } + }, + "name": "Vpc" + } + } + } + }, + "createVpcPeeringConnection": { + "name": "CreateVpcPeeringConnection", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "VpcId": {}, + "PeerVpcId": {}, + "PeerOwnerId": {} + } + }, + "output": { + "type": "structure", + "members": { + "vpcPeeringConnection": { + "type": "structure", + "members": { + "accepterVpcInfo": { + "type": "structure", + "members": { + "cidrBlock": { + "name": "CidrBlock" + }, + "ownerId": { + "name": "OwnerId" + }, + "vpcId": { + "name": "VpcId" + } + }, + "name": "AccepterVpcInfo" + }, + "expirationTime": { + "type": "timestamp", + "name": "ExpirationTime" + }, + "requesterVpcInfo": { + "type": "structure", + "members": { + "cidrBlock": { + "name": "CidrBlock" + }, + "ownerId": { + "name": "OwnerId" + }, + "vpcId": { + "name": "VpcId" + } + }, + "name": "RequesterVpcInfo" + }, + "status": { + "type": "structure", + "members": { + "code": { + "name": "Code" + }, + "message": { + "name": "Message" + } + }, + "name": "Status" + }, + "tagSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "key": { + "name": "Key" + }, + "value": { + "name": "Value" + } + }, + "name": "item" + }, + "name": "Tags" + }, + "vpcPeeringConnectionId": { + "name": "VpcPeeringConnectionId" + } + }, + "name": "VpcPeeringConnection" + } + } + } + }, + "createVpnConnection": { + "name": "CreateVpnConnection", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "Type": { + "required": true + }, + "CustomerGatewayId": { + "required": true + }, + "VpnGatewayId": { + "required": true + }, + "Options": { + "type": "structure", + "members": { + "StaticRoutesOnly": { + "type": "boolean" + } + } + } + } + }, + "output": { + "type": "structure", + "members": { + "vpnConnection": { + "type": "structure", + "members": { + "vpnConnectionId": { + "name": "VpnConnectionId" + }, + "state": { + "name": "State" + }, + "customerGatewayConfiguration": { + "name": "CustomerGatewayConfiguration" + }, + "type": { + "name": "Type" + }, + "customerGatewayId": { + "name": "CustomerGatewayId" + }, + "vpnGatewayId": { + "name": "VpnGatewayId" + }, + "tagSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "key": { + "name": "Key" + }, + "value": { + "name": "Value" + } + }, + "name": "item" + }, + "name": "Tags" + }, + "vgwTelemetry": { + "type": "list", + "members": { + "type": "structure", + "members": { + "outsideIpAddress": { + "name": "OutsideIpAddress" + }, + "status": { + "name": "Status" + }, + "lastStatusChange": { + "type": "timestamp", + "name": "LastStatusChange" + }, + "statusMessage": { + "name": "StatusMessage" + }, + "acceptedRouteCount": { + "type": "integer", + "name": "AcceptedRouteCount" + } + }, + "name": "item" + }, + "name": "VgwTelemetry" + }, + "options": { + "type": "structure", + "members": { + "staticRoutesOnly": { + "type": "boolean", + "name": "StaticRoutesOnly" + } + }, + "name": "Options" + }, + "routes": { + "type": "list", + "members": { + "type": "structure", + "members": { + "destinationCidrBlock": { + "name": "DestinationCidrBlock" + }, + "source": { + "name": "Source" + }, + "state": { + "name": "State" + } + }, + "name": "item" + }, + "name": "Routes" + } + }, + "name": "VpnConnection" + } + } + } + }, + "createVpnConnectionRoute": { + "name": "CreateVpnConnectionRoute", + "input": { + "type": "structure", + "members": { + "VpnConnectionId": { + "required": true + }, + "DestinationCidrBlock": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "createVpnGateway": { + "name": "CreateVpnGateway", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "Type": { + "required": true + }, + "AvailabilityZone": {} + } + }, + "output": { + "type": "structure", + "members": { + "vpnGateway": { + "type": "structure", + "members": { + "vpnGatewayId": { + "name": "VpnGatewayId" + }, + "state": { + "name": "State" + }, + "type": { + "name": "Type" + }, + "availabilityZone": { + "name": "AvailabilityZone" + }, + "attachments": { + "type": "list", + "members": { + "type": "structure", + "members": { + "vpcId": { + "name": "VpcId" + }, + "state": { + "name": "State" + } + }, + "name": "item" + }, + "name": "VpcAttachments" + }, + "tagSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "key": { + "name": "Key" + }, + "value": { + "name": "Value" + } + }, + "name": "item" + }, + "name": "Tags" + } + }, + "name": "VpnGateway" + } + } + } + }, + "deleteCustomerGateway": { + "name": "DeleteCustomerGateway", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "CustomerGatewayId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteDhcpOptions": { + "name": "DeleteDhcpOptions", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "DhcpOptionsId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteInternetGateway": { + "name": "DeleteInternetGateway", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "InternetGatewayId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteKeyPair": { + "name": "DeleteKeyPair", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "KeyName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteNetworkAcl": { + "name": "DeleteNetworkAcl", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "NetworkAclId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteNetworkAclEntry": { + "name": "DeleteNetworkAclEntry", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "NetworkAclId": { + "required": true + }, + "RuleNumber": { + "type": "integer", + "required": true + }, + "Egress": { + "type": "boolean", + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteNetworkInterface": { + "name": "DeleteNetworkInterface", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "NetworkInterfaceId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deletePlacementGroup": { + "name": "DeletePlacementGroup", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "GroupName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteRoute": { + "name": "DeleteRoute", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "RouteTableId": { + "required": true + }, + "DestinationCidrBlock": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteRouteTable": { + "name": "DeleteRouteTable", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "RouteTableId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteSecurityGroup": { + "name": "DeleteSecurityGroup", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "GroupName": {}, + "GroupId": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteSnapshot": { + "name": "DeleteSnapshot", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "SnapshotId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteSpotDatafeedSubscription": { + "name": "DeleteSpotDatafeedSubscription", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteSubnet": { + "name": "DeleteSubnet", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "SubnetId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteTags": { + "name": "DeleteTags", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "Resources": { + "type": "list", + "members": { + "name": "ResourceId" + }, + "required": true, + "flattened": true + }, + "Tags": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Key": {}, + "Value": {} + }, + "name": "Tag" + }, + "flattened": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteVolume": { + "name": "DeleteVolume", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "VolumeId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteVpc": { + "name": "DeleteVpc", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "VpcId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteVpcPeeringConnection": { + "name": "DeleteVpcPeeringConnection", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "VpcPeeringConnectionId": {} + } + }, + "output": { + "type": "structure", + "members": { + "return": { + "type": "boolean", + "name": "Return" + } + } + } + }, + "deleteVpnConnection": { + "name": "DeleteVpnConnection", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "VpnConnectionId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteVpnConnectionRoute": { + "name": "DeleteVpnConnectionRoute", + "input": { + "type": "structure", + "members": { + "VpnConnectionId": { + "required": true + }, + "DestinationCidrBlock": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteVpnGateway": { + "name": "DeleteVpnGateway", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "VpnGatewayId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deregisterImage": { + "name": "DeregisterImage", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "ImageId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "describeAccountAttributes": { + "name": "DescribeAccountAttributes", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "AttributeNames": { + "type": "list", + "members": { + "name": "AttributeName" + }, + "flattened": true + } + } + }, + "output": { + "type": "structure", + "members": { + "accountAttributeSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "attributeName": { + "name": "AttributeName" + }, + "attributeValueSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "attributeValue": { + "name": "AttributeValue" + } + }, + "name": "item" + }, + "name": "AttributeValues" + } + }, + "name": "item" + }, + "name": "AccountAttributes" + } + } + } + }, + "describeAddresses": { + "name": "DescribeAddresses", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "PublicIps": { + "type": "list", + "members": { + "name": "PublicIp" + }, + "flattened": true + }, + "Filters": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": {}, + "Values": { + "type": "list", + "members": { + "name": "Value" + }, + "flattened": true + } + }, + "name": "Filter" + }, + "flattened": true + }, + "AllocationIds": { + "type": "list", + "members": { + "name": "AllocationId" + }, + "flattened": true + } + } + }, + "output": { + "type": "structure", + "members": { + "addressesSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "instanceId": { + "name": "InstanceId" + }, + "publicIp": { + "name": "PublicIp" + }, + "allocationId": { + "name": "AllocationId" + }, + "associationId": { + "name": "AssociationId" + }, + "domain": { + "name": "Domain" + }, + "networkInterfaceId": { + "name": "NetworkInterfaceId" + }, + "networkInterfaceOwnerId": { + "name": "NetworkInterfaceOwnerId" + }, + "privateIpAddress": { + "name": "PrivateIpAddress" + } + }, + "name": "item" + }, + "name": "Addresses" + } + } + } + }, + "describeAvailabilityZones": { + "name": "DescribeAvailabilityZones", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "ZoneNames": { + "type": "list", + "members": { + "name": "ZoneName" + }, + "flattened": true + }, + "Filters": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": {}, + "Values": { + "type": "list", + "members": { + "name": "Value" + }, + "flattened": true + } + }, + "name": "Filter" + }, + "flattened": true + } + } + }, + "output": { + "type": "structure", + "members": { + "availabilityZoneInfo": { + "type": "list", + "members": { + "type": "structure", + "members": { + "zoneName": { + "name": "ZoneName" + }, + "zoneState": { + "name": "State" + }, + "regionName": { + "name": "RegionName" + }, + "messageSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "message": { + "name": "Message" + } + }, + "name": "item" + }, + "name": "Messages" + } + }, + "name": "item" + }, + "name": "AvailabilityZones" + } + } + } + }, + "describeBundleTasks": { + "name": "DescribeBundleTasks", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "BundleIds": { + "type": "list", + "members": { + "name": "BundleId" + }, + "flattened": true + }, + "Filters": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": {}, + "Values": { + "type": "list", + "members": { + "name": "Value" + }, + "flattened": true + } + }, + "name": "Filter" + }, + "flattened": true + } + } + }, + "output": { + "type": "structure", + "members": { + "bundleInstanceTasksSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "instanceId": { + "name": "InstanceId" + }, + "bundleId": { + "name": "BundleId" + }, + "state": { + "name": "State" + }, + "startTime": { + "type": "timestamp", + "name": "StartTime" + }, + "updateTime": { + "type": "timestamp", + "name": "UpdateTime" + }, + "storage": { + "type": "structure", + "members": { + "S3": { + "type": "structure", + "members": { + "bucket": { + "name": "Bucket" + }, + "prefix": { + "name": "Prefix" + }, + "AWSAccessKeyId": {}, + "uploadPolicy": { + "name": "UploadPolicy" + }, + "uploadPolicySignature": { + "name": "UploadPolicySignature" + } + } + } + }, + "name": "Storage" + }, + "progress": { + "name": "Progress" + }, + "error": { + "type": "structure", + "members": { + "code": { + "name": "Code" + }, + "message": { + "name": "Message" + } + }, + "name": "BundleTaskError" + } + }, + "name": "item" + }, + "name": "BundleTasks" + } + } + } + }, + "describeConversionTasks": { + "name": "DescribeConversionTasks", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "Filters": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": {}, + "Values": { + "type": "list", + "members": { + "name": "Value" + }, + "flattened": true + } + }, + "name": "Filter" + }, + "flattened": true + }, + "ConversionTaskIds": { + "type": "list", + "members": { + "name": "ConversionTaskId" + }, + "flattened": true + } + } + }, + "output": { + "type": "structure", + "members": { + "conversionTasks": { + "type": "list", + "members": { + "type": "structure", + "members": { + "conversionTaskId": { + "name": "ConversionTaskId" + }, + "expirationTime": { + "name": "ExpirationTime" + }, + "importInstance": { + "type": "structure", + "members": { + "volumes": { + "type": "list", + "members": { + "type": "structure", + "members": { + "bytesConverted": { + "type": "integer", + "name": "BytesConverted" + }, + "availabilityZone": { + "name": "AvailabilityZone" + }, + "image": { + "type": "structure", + "members": { + "format": { + "name": "Format" + }, + "size": { + "type": "integer", + "name": "Size" + }, + "importManifestUrl": { + "name": "ImportManifestUrl" + }, + "checksum": { + "name": "Checksum" + } + }, + "name": "Image" + }, + "volume": { + "type": "structure", + "members": { + "size": { + "type": "integer", + "name": "Size" + }, + "id": { + "name": "Id" + } + }, + "name": "Volume" + }, + "status": { + "name": "Status" + }, + "statusMessage": { + "name": "StatusMessage" + }, + "description": { + "name": "Description" + } + }, + "name": "item" + }, + "name": "Volumes" + }, + "instanceId": { + "name": "InstanceId" + }, + "platform": { + "name": "Platform" + }, + "description": { + "name": "Description" + } + }, + "name": "ImportInstance" + }, + "importVolume": { + "type": "structure", + "members": { + "bytesConverted": { + "type": "integer", + "name": "BytesConverted" + }, + "availabilityZone": { + "name": "AvailabilityZone" + }, + "description": { + "name": "Description" + }, + "image": { + "type": "structure", + "members": { + "format": { + "name": "Format" + }, + "size": { + "type": "integer", + "name": "Size" + }, + "importManifestUrl": { + "name": "ImportManifestUrl" + }, + "checksum": { + "name": "Checksum" + } + }, + "name": "Image" + }, + "volume": { + "type": "structure", + "members": { + "size": { + "type": "integer", + "name": "Size" + }, + "id": { + "name": "Id" + } + }, + "name": "Volume" + } + }, + "name": "ImportVolume" + }, + "state": { + "name": "State" + }, + "statusMessage": { + "name": "StatusMessage" + }, + "tagSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "key": { + "name": "Key" + }, + "value": { + "name": "Value" + } + }, + "name": "item" + }, + "name": "Tags" + } + }, + "name": "item" + }, + "name": "ConversionTasks" + } + } + } + }, + "describeCustomerGateways": { + "name": "DescribeCustomerGateways", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "CustomerGatewayIds": { + "type": "list", + "members": { + "name": "CustomerGatewayId" + }, + "flattened": true + }, + "Filters": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": {}, + "Values": { + "type": "list", + "members": { + "name": "Value" + }, + "flattened": true + } + }, + "name": "Filter" + }, + "flattened": true + } + } + }, + "output": { + "type": "structure", + "members": { + "customerGatewaySet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "customerGatewayId": { + "name": "CustomerGatewayId" + }, + "state": { + "name": "State" + }, + "type": { + "name": "Type" + }, + "ipAddress": { + "name": "IpAddress" + }, + "bgpAsn": { + "name": "BgpAsn" + }, + "tagSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "key": { + "name": "Key" + }, + "value": { + "name": "Value" + } + }, + "name": "item" + }, + "name": "Tags" + } + }, + "name": "item" + }, + "name": "CustomerGateways" + } + } + } + }, + "describeDhcpOptions": { + "name": "DescribeDhcpOptions", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "DhcpOptionsIds": { + "type": "list", + "members": { + "name": "DhcpOptionsId" + }, + "flattened": true + }, + "Filters": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": {}, + "Values": { + "type": "list", + "members": { + "name": "Value" + }, + "flattened": true + } + }, + "name": "Filter" + }, + "flattened": true + } + } + }, + "output": { + "type": "structure", + "members": { + "dhcpOptionsSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "dhcpOptionsId": { + "name": "DhcpOptionsId" + }, + "dhcpConfigurationSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "key": { + "name": "Key" + }, + "valueSet": { + "type": "list", + "members": { + "name": "item" + }, + "name": "Values" + } + }, + "name": "item" + }, + "name": "DhcpConfigurations" + }, + "tagSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "key": { + "name": "Key" + }, + "value": { + "name": "Value" + } + }, + "name": "item" + }, + "name": "Tags" + } + }, + "name": "item" + }, + "name": "DhcpOptions" + } + } + } + }, + "describeExportTasks": { + "name": "DescribeExportTasks", + "input": { + "type": "structure", + "members": { + "ExportTaskIds": { + "type": "list", + "members": { + "name": "ExportTaskId" + }, + "flattened": true + } + } + }, + "output": { + "type": "structure", + "members": { + "exportTaskSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "exportTaskId": { + "name": "ExportTaskId" + }, + "description": { + "name": "Description" + }, + "state": { + "name": "State" + }, + "statusMessage": { + "name": "StatusMessage" + }, + "instanceExport": { + "type": "structure", + "members": { + "instanceId": { + "name": "InstanceId" + }, + "targetEnvironment": { + "name": "TargetEnvironment" + } + }, + "name": "InstanceExportDetails" + }, + "exportToS3": { + "type": "structure", + "members": { + "diskImageFormat": { + "name": "DiskImageFormat" + }, + "containerFormat": { + "name": "ContainerFormat" + }, + "s3Bucket": { + "name": "S3Bucket" + }, + "s3Key": { + "name": "S3Key" + } + }, + "name": "ExportToS3Task" + } + }, + "name": "item" + }, + "name": "ExportTasks" + } + } + } + }, + "describeImageAttribute": { + "name": "DescribeImageAttribute", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "ImageId": { + "required": true + }, + "Attribute": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "imageId": { + "name": "ImageId" + }, + "launchPermission": { + "type": "list", + "members": { + "type": "structure", + "members": { + "userId": { + "name": "UserId" + }, + "group": { + "name": "Group" + } + }, + "name": "item" + }, + "name": "LaunchPermissions" + }, + "productCodes": { + "type": "list", + "members": { + "type": "structure", + "members": { + "productCode": { + "name": "ProductCodeId" + }, + "type": { + "name": "ProductCodeType" + } + }, + "name": "item" + }, + "name": "ProductCodes" + }, + "kernel": { + "type": "structure", + "members": { + "value": { + "name": "Value" + } + }, + "name": "KernelId" + }, + "ramdisk": { + "type": "structure", + "members": { + "value": { + "name": "Value" + } + }, + "name": "RamdiskId" + }, + "description": { + "type": "structure", + "members": { + "value": { + "name": "Value" + } + }, + "name": "Description" + }, + "sriovNetSupport": { + "type": "structure", + "members": { + "value": { + "name": "Value" + } + }, + "name": "SriovNetSupport" + }, + "blockDeviceMapping": { + "type": "list", + "members": { + "type": "structure", + "members": { + "virtualName": { + "name": "VirtualName" + }, + "deviceName": { + "name": "DeviceName" + }, + "ebs": { + "type": "structure", + "members": { + "snapshotId": { + "name": "SnapshotId" + }, + "volumeSize": { + "type": "integer", + "name": "VolumeSize" + }, + "deleteOnTermination": { + "type": "boolean", + "name": "DeleteOnTermination" + }, + "volumeType": { + "name": "VolumeType" + }, + "iops": { + "type": "integer", + "name": "Iops" + } + }, + "name": "Ebs" + }, + "noDevice": { + "name": "NoDevice" + } + }, + "name": "item" + }, + "name": "BlockDeviceMappings" + } + }, + "name": "imageAttribute" + } + }, + "describeImages": { + "name": "DescribeImages", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "ImageIds": { + "type": "list", + "members": { + "name": "ImageId" + }, + "flattened": true + }, + "Owners": { + "type": "list", + "members": { + "name": "Owner" + }, + "flattened": true + }, + "ExecutableUsers": { + "type": "list", + "members": { + "name": "ExecutableBy" + }, + "flattened": true + }, + "Filters": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": {}, + "Values": { + "type": "list", + "members": { + "name": "Value" + }, + "flattened": true + } + }, + "name": "Filter" + }, + "flattened": true + } + } + }, + "output": { + "type": "structure", + "members": { + "imagesSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "imageId": { + "name": "ImageId" + }, + "imageLocation": { + "name": "ImageLocation" + }, + "imageState": { + "name": "State" + }, + "imageOwnerId": { + "name": "OwnerId" + }, + "isPublic": { + "type": "boolean", + "name": "Public" + }, + "productCodes": { + "type": "list", + "members": { + "type": "structure", + "members": { + "productCode": { + "name": "ProductCodeId" + }, + "type": { + "name": "ProductCodeType" + } + }, + "name": "item" + }, + "name": "ProductCodes" + }, + "architecture": { + "name": "Architecture" + }, + "imageType": { + "name": "ImageType" + }, + "kernelId": { + "name": "KernelId" + }, + "ramdiskId": { + "name": "RamdiskId" + }, + "platform": { + "name": "Platform" + }, + "sriovNetSupport": { + "name": "SriovNetSupport" + }, + "stateReason": { + "type": "structure", + "members": { + "code": { + "name": "Code" + }, + "message": { + "name": "Message" + } + }, + "name": "StateReason" + }, + "imageOwnerAlias": { + "name": "ImageOwnerAlias" + }, + "name": { + "name": "Name" + }, + "description": { + "name": "Description" + }, + "rootDeviceType": { + "name": "RootDeviceType" + }, + "rootDeviceName": { + "name": "RootDeviceName" + }, + "blockDeviceMapping": { + "type": "list", + "members": { + "type": "structure", + "members": { + "virtualName": { + "name": "VirtualName" + }, + "deviceName": { + "name": "DeviceName" + }, + "ebs": { + "type": "structure", + "members": { + "snapshotId": { + "name": "SnapshotId" + }, + "volumeSize": { + "type": "integer", + "name": "VolumeSize" + }, + "deleteOnTermination": { + "type": "boolean", + "name": "DeleteOnTermination" + }, + "volumeType": { + "name": "VolumeType" + }, + "iops": { + "type": "integer", + "name": "Iops" + } + }, + "name": "Ebs" + }, + "noDevice": { + "name": "NoDevice" + } + }, + "name": "item" + }, + "name": "BlockDeviceMappings" + }, + "virtualizationType": { + "name": "VirtualizationType" + }, + "tagSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "key": { + "name": "Key" + }, + "value": { + "name": "Value" + } + }, + "name": "item" + }, + "name": "Tags" + }, + "hypervisor": { + "name": "Hypervisor" + } + }, + "name": "item" + }, + "name": "Images" + } + } + } + }, + "describeInstanceAttribute": { + "name": "DescribeInstanceAttribute", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "InstanceId": { + "required": true + }, + "Attribute": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "instanceId": { + "name": "InstanceId" + }, + "instanceType": { + "type": "structure", + "members": { + "value": { + "name": "Value" + } + }, + "name": "InstanceType" + }, + "kernel": { + "type": "structure", + "members": { + "value": { + "name": "Value" + } + }, + "name": "KernelId" + }, + "ramdisk": { + "type": "structure", + "members": { + "value": { + "name": "Value" + } + }, + "name": "RamdiskId" + }, + "userData": { + "type": "structure", + "members": { + "value": { + "name": "Value" + } + }, + "name": "UserData" + }, + "disableApiTermination": { + "type": "structure", + "members": { + "value": { + "type": "boolean", + "name": "Value" + } + }, + "name": "DisableApiTermination" + }, + "instanceInitiatedShutdownBehavior": { + "type": "structure", + "members": { + "value": { + "name": "Value" + } + }, + "name": "InstanceInitiatedShutdownBehavior" + }, + "rootDeviceName": { + "type": "structure", + "members": { + "value": { + "name": "Value" + } + }, + "name": "RootDeviceName" + }, + "blockDeviceMapping": { + "type": "list", + "members": { + "type": "structure", + "members": { + "deviceName": { + "name": "DeviceName" + }, + "ebs": { + "type": "structure", + "members": { + "volumeId": { + "name": "VolumeId" + }, + "status": { + "name": "Status" + }, + "attachTime": { + "type": "timestamp", + "name": "AttachTime" + }, + "deleteOnTermination": { + "type": "boolean", + "name": "DeleteOnTermination" + } + }, + "name": "Ebs" + } + }, + "name": "item" + }, + "name": "BlockDeviceMappings" + }, + "productCodes": { + "type": "list", + "members": { + "type": "structure", + "members": { + "productCode": { + "name": "ProductCodeId" + }, + "type": { + "name": "ProductCodeType" + } + }, + "name": "item" + }, + "name": "ProductCodes" + }, + "ebsOptimized": { + "type": "structure", + "members": { + "value": { + "type": "boolean", + "name": "Value" + } + }, + "name": "EbsOptimized" + }, + "sriovNetSupport": { + "type": "structure", + "members": { + "value": { + "name": "Value" + } + }, + "name": "SriovNetSupport" + } + } + } + }, + "describeInstanceStatus": { + "name": "DescribeInstanceStatus", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "InstanceIds": { + "type": "list", + "members": { + "name": "InstanceId" + }, + "flattened": true + }, + "Filters": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": {}, + "Values": { + "type": "list", + "members": { + "name": "Value" + }, + "flattened": true + } + }, + "name": "Filter" + }, + "flattened": true + }, + "NextToken": {}, + "MaxResults": { + "type": "integer" + }, + "IncludeAllInstances": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "instanceStatusSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "instanceId": { + "name": "InstanceId" + }, + "availabilityZone": { + "name": "AvailabilityZone" + }, + "eventsSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "code": { + "name": "Code" + }, + "description": { + "name": "Description" + }, + "notBefore": { + "type": "timestamp", + "name": "NotBefore" + }, + "notAfter": { + "type": "timestamp", + "name": "NotAfter" + } + }, + "name": "item" + }, + "name": "Events" + }, + "instanceState": { + "type": "structure", + "members": { + "code": { + "type": "integer", + "name": "Code" + }, + "name": { + "name": "Name" + } + }, + "name": "InstanceState" + }, + "systemStatus": { + "type": "structure", + "members": { + "status": { + "name": "Status" + }, + "details": { + "type": "list", + "members": { + "type": "structure", + "members": { + "name": { + "name": "Name" + }, + "status": { + "name": "Status" + }, + "impairedSince": { + "type": "timestamp", + "name": "ImpairedSince" + } + }, + "name": "item" + }, + "name": "Details" + } + }, + "name": "SystemStatus" + }, + "instanceStatus": { + "type": "structure", + "members": { + "status": { + "name": "Status" + }, + "details": { + "type": "list", + "members": { + "type": "structure", + "members": { + "name": { + "name": "Name" + }, + "status": { + "name": "Status" + }, + "impairedSince": { + "type": "timestamp", + "name": "ImpairedSince" + } + }, + "name": "item" + }, + "name": "Details" + } + }, + "name": "InstanceStatus" + } + }, + "name": "item" + }, + "name": "InstanceStatuses" + }, + "nextToken": { + "name": "NextToken" + } + } + } + }, + "describeInstances": { + "name": "DescribeInstances", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "InstanceIds": { + "type": "list", + "members": { + "name": "InstanceId" + }, + "flattened": true + }, + "Filters": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": {}, + "Values": { + "type": "list", + "members": { + "name": "Value" + }, + "flattened": true + } + }, + "name": "Filter" + }, + "flattened": true + }, + "NextToken": {}, + "MaxResults": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "reservationSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "reservationId": { + "name": "ReservationId" + }, + "ownerId": { + "name": "OwnerId" + }, + "requesterId": { + "name": "RequesterId" + }, + "groupSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "groupName": { + "name": "GroupName" + }, + "groupId": { + "name": "GroupId" + } + }, + "name": "item" + }, + "name": "Groups" + }, + "instancesSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "instanceId": { + "name": "InstanceId" + }, + "imageId": { + "name": "ImageId" + }, + "instanceState": { + "type": "structure", + "members": { + "code": { + "type": "integer", + "name": "Code" + }, + "name": { + "name": "Name" + } + }, + "name": "State" + }, + "privateDnsName": { + "name": "PrivateDnsName" + }, + "dnsName": { + "name": "PublicDnsName" + }, + "reason": { + "name": "StateTransitionReason" + }, + "keyName": { + "name": "KeyName" + }, + "amiLaunchIndex": { + "type": "integer", + "name": "AmiLaunchIndex" + }, + "productCodes": { + "type": "list", + "members": { + "type": "structure", + "members": { + "productCode": { + "name": "ProductCodeId" + }, + "type": { + "name": "ProductCodeType" + } + }, + "name": "item" + }, + "name": "ProductCodes" + }, + "instanceType": { + "name": "InstanceType" + }, + "launchTime": { + "type": "timestamp", + "name": "LaunchTime" + }, + "placement": { + "type": "structure", + "members": { + "availabilityZone": { + "name": "AvailabilityZone" + }, + "groupName": { + "name": "GroupName" + }, + "tenancy": { + "name": "Tenancy" + } + }, + "name": "Placement" + }, + "kernelId": { + "name": "KernelId" + }, + "ramdiskId": { + "name": "RamdiskId" + }, + "platform": { + "name": "Platform" + }, + "monitoring": { + "type": "structure", + "members": { + "state": { + "name": "State" + } + }, + "name": "Monitoring" + }, + "subnetId": { + "name": "SubnetId" + }, + "vpcId": { + "name": "VpcId" + }, + "privateIpAddress": { + "name": "PrivateIpAddress" + }, + "ipAddress": { + "name": "PublicIpAddress" + }, + "stateReason": { + "type": "structure", + "members": { + "code": { + "name": "Code" + }, + "message": { + "name": "Message" + } + }, + "name": "StateReason" + }, + "architecture": { + "name": "Architecture" + }, + "rootDeviceType": { + "name": "RootDeviceType" + }, + "rootDeviceName": { + "name": "RootDeviceName" + }, + "blockDeviceMapping": { + "type": "list", + "members": { + "type": "structure", + "members": { + "deviceName": { + "name": "DeviceName" + }, + "ebs": { + "type": "structure", + "members": { + "volumeId": { + "name": "VolumeId" + }, + "status": { + "name": "Status" + }, + "attachTime": { + "type": "timestamp", + "name": "AttachTime" + }, + "deleteOnTermination": { + "type": "boolean", + "name": "DeleteOnTermination" + } + }, + "name": "Ebs" + } + }, + "name": "item" + }, + "name": "BlockDeviceMappings" + }, + "virtualizationType": { + "name": "VirtualizationType" + }, + "instanceLifecycle": { + "name": "InstanceLifecycle" + }, + "spotInstanceRequestId": { + "name": "SpotInstanceRequestId" + }, + "clientToken": { + "name": "ClientToken" + }, + "tagSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "key": { + "name": "Key" + }, + "value": { + "name": "Value" + } + }, + "name": "item" + }, + "name": "Tags" + }, + "groupSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "groupName": { + "name": "GroupName" + }, + "groupId": { + "name": "GroupId" + } + }, + "name": "item" + }, + "name": "SecurityGroups" + }, + "sourceDestCheck": { + "type": "boolean", + "name": "SourceDestCheck" + }, + "hypervisor": { + "name": "Hypervisor" + }, + "networkInterfaceSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "networkInterfaceId": { + "name": "NetworkInterfaceId" + }, + "subnetId": { + "name": "SubnetId" + }, + "vpcId": { + "name": "VpcId" + }, + "description": { + "name": "Description" + }, + "ownerId": { + "name": "OwnerId" + }, + "status": { + "name": "Status" + }, + "privateIpAddress": { + "name": "PrivateIpAddress" + }, + "privateDnsName": { + "name": "PrivateDnsName" + }, + "sourceDestCheck": { + "type": "boolean", + "name": "SourceDestCheck" + }, + "groupSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "groupName": { + "name": "GroupName" + }, + "groupId": { + "name": "GroupId" + } + }, + "name": "item" + }, + "name": "Groups" + }, + "attachment": { + "type": "structure", + "members": { + "attachmentId": { + "name": "AttachmentId" + }, + "deviceIndex": { + "type": "integer", + "name": "DeviceIndex" + }, + "status": { + "name": "Status" + }, + "attachTime": { + "type": "timestamp", + "name": "AttachTime" + }, + "deleteOnTermination": { + "type": "boolean", + "name": "DeleteOnTermination" + } + }, + "name": "Attachment" + }, + "association": { + "type": "structure", + "members": { + "publicIp": { + "name": "PublicIp" + }, + "publicDnsName": { + "name": "PublicDnsName" + }, + "ipOwnerId": { + "name": "IpOwnerId" + } + }, + "name": "Association" + }, + "privateIpAddressesSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "privateIpAddress": { + "name": "PrivateIpAddress" + }, + "privateDnsName": { + "name": "PrivateDnsName" + }, + "primary": { + "type": "boolean", + "name": "Primary" + }, + "association": { + "type": "structure", + "members": { + "publicIp": { + "name": "PublicIp" + }, + "publicDnsName": { + "name": "PublicDnsName" + }, + "ipOwnerId": { + "name": "IpOwnerId" + } + }, + "name": "Association" + } + }, + "name": "item" + }, + "name": "PrivateIpAddresses" + } + }, + "name": "item" + }, + "name": "NetworkInterfaces" + }, + "iamInstanceProfile": { + "type": "structure", + "members": { + "arn": { + "name": "Arn" + }, + "id": { + "name": "Id" + } + }, + "name": "IamInstanceProfile" + }, + "ebsOptimized": { + "type": "boolean", + "name": "EbsOptimized" + }, + "sriovNetSupport": { + "name": "SriovNetSupport" + } + }, + "name": "item" + }, + "name": "Instances" + } + }, + "name": "item" + }, + "name": "Reservations" + }, + "nextToken": { + "name": "NextToken" + } + } + } + }, + "describeInternetGateways": { + "name": "DescribeInternetGateways", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "InternetGatewayIds": { + "type": "list", + "members": { + "name": "InternetGatewayId" + }, + "flattened": true + }, + "Filters": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": {}, + "Values": { + "type": "list", + "members": { + "name": "Value" + }, + "flattened": true + } + }, + "name": "Filter" + }, + "flattened": true + } + } + }, + "output": { + "type": "structure", + "members": { + "internetGatewaySet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "internetGatewayId": { + "name": "InternetGatewayId" + }, + "attachmentSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "vpcId": { + "name": "VpcId" + }, + "state": { + "name": "State" + } + }, + "name": "item" + }, + "name": "Attachments" + }, + "tagSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "key": { + "name": "Key" + }, + "value": { + "name": "Value" + } + }, + "name": "item" + }, + "name": "Tags" + } + }, + "name": "item" + }, + "name": "InternetGateways" + } + } + } + }, + "describeKeyPairs": { + "name": "DescribeKeyPairs", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "KeyNames": { + "type": "list", + "members": { + "name": "KeyName" + }, + "flattened": true + }, + "Filters": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": {}, + "Values": { + "type": "list", + "members": { + "name": "Value" + }, + "flattened": true + } + }, + "name": "Filter" + }, + "flattened": true + } + } + }, + "output": { + "type": "structure", + "members": { + "keySet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "keyName": { + "name": "KeyName" + }, + "keyFingerprint": { + "name": "KeyFingerprint" + } + }, + "name": "item" + }, + "name": "KeyPairs" + } + } + } + }, + "describeNetworkAcls": { + "name": "DescribeNetworkAcls", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "NetworkAclIds": { + "type": "list", + "members": { + "name": "NetworkAclId" + }, + "flattened": true + }, + "Filters": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": {}, + "Values": { + "type": "list", + "members": { + "name": "Value" + }, + "flattened": true + } + }, + "name": "Filter" + }, + "flattened": true + } + } + }, + "output": { + "type": "structure", + "members": { + "networkAclSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "networkAclId": { + "name": "NetworkAclId" + }, + "vpcId": { + "name": "VpcId" + }, + "default": { + "type": "boolean", + "name": "IsDefault" + }, + "entrySet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ruleNumber": { + "type": "integer", + "name": "RuleNumber" + }, + "protocol": { + "name": "Protocol" + }, + "ruleAction": { + "name": "RuleAction" + }, + "egress": { + "type": "boolean", + "name": "Egress" + }, + "cidrBlock": { + "name": "CidrBlock" + }, + "icmpTypeCode": { + "type": "structure", + "members": { + "type": { + "type": "integer", + "name": "Type" + }, + "code": { + "type": "integer", + "name": "Code" + } + }, + "name": "IcmpTypeCode" + }, + "portRange": { + "type": "structure", + "members": { + "from": { + "type": "integer", + "name": "From" + }, + "to": { + "type": "integer", + "name": "To" + } + }, + "name": "PortRange" + } + }, + "name": "item" + }, + "name": "Entries" + }, + "associationSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "networkAclAssociationId": { + "name": "NetworkAclAssociationId" + }, + "networkAclId": { + "name": "NetworkAclId" + }, + "subnetId": { + "name": "SubnetId" + } + }, + "name": "item" + }, + "name": "Associations" + }, + "tagSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "key": { + "name": "Key" + }, + "value": { + "name": "Value" + } + }, + "name": "item" + }, + "name": "Tags" + } + }, + "name": "item" + }, + "name": "NetworkAcls" + } + } + } + }, + "describeNetworkInterfaceAttribute": { + "name": "DescribeNetworkInterfaceAttribute", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "NetworkInterfaceId": { + "required": true + }, + "Description": {}, + "SourceDestCheck": {}, + "Groups": { + "name": "GroupSet" + }, + "Attachment": {} + } + }, + "output": { + "type": "structure", + "members": { + "networkInterfaceId": { + "name": "NetworkInterfaceId" + }, + "description": { + "type": "structure", + "members": { + "value": { + "name": "Value" + } + }, + "name": "Description" + }, + "sourceDestCheck": { + "type": "structure", + "members": { + "value": { + "type": "boolean", + "name": "Value" + } + }, + "name": "SourceDestCheck" + }, + "groupSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "groupName": { + "name": "GroupName" + }, + "groupId": { + "name": "GroupId" + } + }, + "name": "item" + }, + "name": "Groups" + }, + "attachment": { + "type": "structure", + "members": { + "attachmentId": { + "name": "AttachmentId" + }, + "instanceId": { + "name": "InstanceId" + }, + "instanceOwnerId": { + "name": "InstanceOwnerId" + }, + "deviceIndex": { + "type": "integer", + "name": "DeviceIndex" + }, + "status": { + "name": "Status" + }, + "attachTime": { + "type": "timestamp", + "name": "AttachTime" + }, + "deleteOnTermination": { + "type": "boolean", + "name": "DeleteOnTermination" + } + }, + "name": "Attachment" + } + } + } + }, + "describeNetworkInterfaces": { + "name": "DescribeNetworkInterfaces", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "NetworkInterfaceIds": { + "type": "list", + "members": { + "name": "NetworkInterfaceId" + }, + "flattened": true + }, + "Filters": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": {}, + "Values": { + "type": "list", + "members": { + "name": "Value" + }, + "flattened": true + } + }, + "name": "Filter" + }, + "flattened": true + } + } + }, + "output": { + "type": "structure", + "members": { + "networkInterfaceSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "networkInterfaceId": { + "name": "NetworkInterfaceId" + }, + "subnetId": { + "name": "SubnetId" + }, + "vpcId": { + "name": "VpcId" + }, + "availabilityZone": { + "name": "AvailabilityZone" + }, + "description": { + "name": "Description" + }, + "ownerId": { + "name": "OwnerId" + }, + "requesterId": { + "name": "RequesterId" + }, + "requesterManaged": { + "type": "boolean", + "name": "RequesterManaged" + }, + "status": { + "name": "Status" + }, + "macAddress": { + "name": "MacAddress" + }, + "privateIpAddress": { + "name": "PrivateIpAddress" + }, + "privateDnsName": { + "name": "PrivateDnsName" + }, + "sourceDestCheck": { + "type": "boolean", + "name": "SourceDestCheck" + }, + "groupSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "groupName": { + "name": "GroupName" + }, + "groupId": { + "name": "GroupId" + } + }, + "name": "item" + }, + "name": "Groups" + }, + "attachment": { + "type": "structure", + "members": { + "attachmentId": { + "name": "AttachmentId" + }, + "instanceId": { + "name": "InstanceId" + }, + "instanceOwnerId": { + "name": "InstanceOwnerId" + }, + "deviceIndex": { + "type": "integer", + "name": "DeviceIndex" + }, + "status": { + "name": "Status" + }, + "attachTime": { + "type": "timestamp", + "name": "AttachTime" + }, + "deleteOnTermination": { + "type": "boolean", + "name": "DeleteOnTermination" + } + }, + "name": "Attachment" + }, + "association": { + "type": "structure", + "members": { + "publicIp": { + "name": "PublicIp" + }, + "ipOwnerId": { + "name": "IpOwnerId" + }, + "allocationId": { + "name": "AllocationId" + }, + "associationId": { + "name": "AssociationId" + } + }, + "name": "Association" + }, + "tagSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "key": { + "name": "Key" + }, + "value": { + "name": "Value" + } + }, + "name": "item" + }, + "name": "TagSet" + }, + "privateIpAddressesSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "privateIpAddress": { + "name": "PrivateIpAddress" + }, + "privateDnsName": { + "name": "PrivateDnsName" + }, + "primary": { + "type": "boolean", + "name": "Primary" + }, + "association": { + "type": "structure", + "members": { + "publicIp": { + "name": "PublicIp" + }, + "ipOwnerId": { + "name": "IpOwnerId" + }, + "allocationId": { + "name": "AllocationId" + }, + "associationId": { + "name": "AssociationId" + } + }, + "name": "Association" + } + }, + "name": "item" + }, + "name": "PrivateIpAddresses" + } + }, + "name": "item" + }, + "name": "NetworkInterfaces" + } + } + } + }, + "describePlacementGroups": { + "name": "DescribePlacementGroups", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "GroupNames": { + "type": "list", + "members": { + "name": "GroupName" + }, + "flattened": true + }, + "Filters": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": {}, + "Values": { + "type": "list", + "members": { + "name": "Value" + }, + "flattened": true + } + }, + "name": "Filter" + }, + "flattened": true + } + } + }, + "output": { + "type": "structure", + "members": { + "placementGroupSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "groupName": { + "name": "GroupName" + }, + "strategy": { + "name": "Strategy" + }, + "state": { + "name": "State" + } + }, + "name": "item" + }, + "name": "PlacementGroups" + } + } + } + }, + "describeRegions": { + "name": "DescribeRegions", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "RegionNames": { + "type": "list", + "members": { + "name": "RegionName" + }, + "flattened": true + }, + "Filters": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": {}, + "Values": { + "type": "list", + "members": { + "name": "Value" + }, + "flattened": true + } + }, + "name": "Filter" + }, + "flattened": true + } + } + }, + "output": { + "type": "structure", + "members": { + "regionInfo": { + "type": "list", + "members": { + "type": "structure", + "members": { + "regionName": { + "name": "RegionName" + }, + "regionEndpoint": { + "name": "Endpoint" + } + }, + "name": "item" + }, + "name": "Regions" + } + } + } + }, + "describeReservedInstances": { + "name": "DescribeReservedInstances", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "ReservedInstancesIds": { + "type": "list", + "members": { + "name": "ReservedInstancesId" + }, + "flattened": true + }, + "Filters": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": {}, + "Values": { + "type": "list", + "members": { + "name": "Value" + }, + "flattened": true + } + }, + "name": "Filter" + }, + "flattened": true + }, + "OfferingType": {} + } + }, + "output": { + "type": "structure", + "members": { + "reservedInstancesSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "reservedInstancesId": { + "name": "ReservedInstancesId" + }, + "instanceType": { + "name": "InstanceType" + }, + "availabilityZone": { + "name": "AvailabilityZone" + }, + "start": { + "type": "timestamp", + "name": "Start" + }, + "end": { + "type": "timestamp", + "name": "End" + }, + "duration": { + "type": "integer", + "name": "Duration" + }, + "usagePrice": { + "type": "float", + "name": "UsagePrice" + }, + "fixedPrice": { + "type": "float", + "name": "FixedPrice" + }, + "instanceCount": { + "type": "integer", + "name": "InstanceCount" + }, + "productDescription": { + "name": "ProductDescription" + }, + "state": { + "name": "State" + }, + "tagSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "key": { + "name": "Key" + }, + "value": { + "name": "Value" + } + }, + "name": "item" + }, + "name": "Tags" + }, + "instanceTenancy": { + "name": "InstanceTenancy" + }, + "currencyCode": { + "name": "CurrencyCode" + }, + "offeringType": { + "name": "OfferingType" + }, + "recurringCharges": { + "type": "list", + "members": { + "type": "structure", + "members": { + "frequency": { + "name": "Frequency" + }, + "amount": { + "type": "float", + "name": "Amount" + } + }, + "name": "item" + }, + "name": "RecurringCharges" + } + }, + "name": "item" + }, + "name": "ReservedInstances" + } + } + } + }, + "describeReservedInstancesListings": { + "name": "DescribeReservedInstancesListings", + "input": { + "type": "structure", + "members": { + "ReservedInstancesId": {}, + "ReservedInstancesListingId": {}, + "Filters": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": {}, + "Values": { + "type": "list", + "members": { + "name": "Value" + }, + "flattened": true + } + } + }, + "flattened": true + } + } + }, + "output": { + "type": "structure", + "members": { + "reservedInstancesListingsSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "reservedInstancesListingId": { + "name": "ReservedInstancesListingId" + }, + "reservedInstancesId": { + "name": "ReservedInstancesId" + }, + "createDate": { + "type": "timestamp", + "name": "CreateDate" + }, + "updateDate": { + "type": "timestamp", + "name": "UpdateDate" + }, + "status": { + "name": "Status" + }, + "statusMessage": { + "name": "StatusMessage" + }, + "instanceCounts": { + "type": "list", + "members": { + "type": "structure", + "members": { + "state": { + "name": "State" + }, + "instanceCount": { + "type": "integer", + "name": "InstanceCount" + } + }, + "name": "item" + }, + "name": "InstanceCounts" + }, + "priceSchedules": { + "type": "list", + "members": { + "type": "structure", + "members": { + "term": { + "type": "integer", + "name": "Term" + }, + "price": { + "type": "float", + "name": "Price" + }, + "currencyCode": { + "name": "CurrencyCode" + }, + "active": { + "type": "boolean", + "name": "Active" + } + }, + "name": "item" + }, + "name": "PriceSchedules" + }, + "tagSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "key": { + "name": "Key" + }, + "value": { + "name": "Value" + } + }, + "name": "item" + }, + "name": "Tags" + }, + "clientToken": { + "name": "ClientToken" + } + }, + "name": "item" + }, + "name": "ReservedInstancesListings" + } + } + } + }, + "describeReservedInstancesModifications": { + "name": "DescribeReservedInstancesModifications", + "input": { + "type": "structure", + "members": { + "ReservedInstancesModificationIds": { + "type": "list", + "members": { + "name": "ReservedInstancesModificationId" + }, + "flattened": true + }, + "NextToken": {}, + "Filters": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": {}, + "Values": { + "type": "list", + "members": { + "name": "Value" + }, + "flattened": true + } + }, + "name": "Filter" + }, + "flattened": true + } + } + }, + "output": { + "type": "structure", + "members": { + "reservedInstancesModificationsSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "reservedInstancesModificationId": { + "name": "ReservedInstancesModificationId" + }, + "reservedInstancesSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "reservedInstancesId": { + "name": "ReservedInstancesId" + } + }, + "name": "item" + }, + "name": "ReservedInstancesIds" + }, + "modificationResultSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "reservedInstancesId": { + "name": "ReservedInstancesId" + }, + "targetConfiguration": { + "type": "structure", + "members": { + "availabilityZone": { + "name": "AvailabilityZone" + }, + "platform": { + "name": "Platform" + }, + "instanceCount": { + "type": "integer", + "name": "InstanceCount" + }, + "instanceType": { + "name": "InstanceType" + } + }, + "name": "TargetConfiguration" + } + }, + "name": "item" + }, + "name": "ModificationResults" + }, + "createDate": { + "type": "timestamp", + "name": "CreateDate" + }, + "updateDate": { + "type": "timestamp", + "name": "UpdateDate" + }, + "effectiveDate": { + "type": "timestamp", + "name": "EffectiveDate" + }, + "status": { + "name": "Status" + }, + "statusMessage": { + "name": "StatusMessage" + }, + "clientToken": { + "name": "ClientToken" + } + }, + "name": "item" + }, + "name": "ReservedInstancesModifications" + }, + "nextToken": { + "name": "NextToken" + } + } + } + }, + "describeReservedInstancesOfferings": { + "name": "DescribeReservedInstancesOfferings", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "ReservedInstancesOfferingIds": { + "type": "list", + "members": { + "name": "ReservedInstancesOfferingId" + }, + "flattened": true + }, + "InstanceType": {}, + "AvailabilityZone": {}, + "ProductDescription": {}, + "Filters": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": {}, + "Values": { + "type": "list", + "members": { + "name": "Value" + }, + "flattened": true + } + }, + "name": "Filter" + }, + "flattened": true + }, + "InstanceTenancy": {}, + "OfferingType": {}, + "NextToken": {}, + "MaxResults": { + "type": "integer" + }, + "IncludeMarketplace": { + "type": "boolean" + }, + "MinDuration": { + "type": "integer" + }, + "MaxDuration": { + "type": "integer" + }, + "MaxInstanceCount": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "reservedInstancesOfferingsSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "reservedInstancesOfferingId": { + "name": "ReservedInstancesOfferingId" + }, + "instanceType": { + "name": "InstanceType" + }, + "availabilityZone": { + "name": "AvailabilityZone" + }, + "duration": { + "type": "integer", + "name": "Duration" + }, + "usagePrice": { + "type": "float", + "name": "UsagePrice" + }, + "fixedPrice": { + "type": "float", + "name": "FixedPrice" + }, + "productDescription": { + "name": "ProductDescription" + }, + "instanceTenancy": { + "name": "InstanceTenancy" + }, + "currencyCode": { + "name": "CurrencyCode" + }, + "offeringType": { + "name": "OfferingType" + }, + "recurringCharges": { + "type": "list", + "members": { + "type": "structure", + "members": { + "frequency": { + "name": "Frequency" + }, + "amount": { + "type": "float", + "name": "Amount" + } + }, + "name": "item" + }, + "name": "RecurringCharges" + }, + "marketplace": { + "type": "boolean", + "name": "Marketplace" + }, + "pricingDetailsSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "price": { + "type": "float", + "name": "Price" + }, + "count": { + "type": "integer", + "name": "Count" + } + }, + "name": "item" + }, + "name": "PricingDetails" + } + }, + "name": "item" + }, + "name": "ReservedInstancesOfferings" + }, + "nextToken": { + "name": "NextToken" + } + } + } + }, + "describeRouteTables": { + "name": "DescribeRouteTables", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "RouteTableIds": { + "type": "list", + "members": { + "name": "RouteTableId" + }, + "flattened": true + }, + "Filters": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": {}, + "Values": { + "type": "list", + "members": { + "name": "Value" + }, + "flattened": true + } + }, + "name": "Filter" + }, + "flattened": true + } + } + }, + "output": { + "type": "structure", + "members": { + "routeTableSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "routeTableId": { + "name": "RouteTableId" + }, + "vpcId": { + "name": "VpcId" + }, + "routeSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "destinationCidrBlock": { + "name": "DestinationCidrBlock" + }, + "gatewayId": { + "name": "GatewayId" + }, + "instanceId": { + "name": "InstanceId" + }, + "instanceOwnerId": { + "name": "InstanceOwnerId" + }, + "networkInterfaceId": { + "name": "NetworkInterfaceId" + }, + "vpcPeeringConnectionId": { + "name": "VpcPeeringConnectionId" + }, + "state": { + "name": "State" + }, + "origin": { + "name": "Origin" + } + }, + "name": "item" + }, + "name": "Routes" + }, + "associationSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "routeTableAssociationId": { + "name": "RouteTableAssociationId" + }, + "routeTableId": { + "name": "RouteTableId" + }, + "subnetId": { + "name": "SubnetId" + }, + "main": { + "type": "boolean", + "name": "Main" + } + }, + "name": "item" + }, + "name": "Associations" + }, + "tagSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "key": { + "name": "Key" + }, + "value": { + "name": "Value" + } + }, + "name": "item" + }, + "name": "Tags" + }, + "propagatingVgwSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "gatewayId": { + "name": "GatewayId" + } + }, + "name": "item" + }, + "name": "PropagatingVgws" + } + }, + "name": "item" + }, + "name": "RouteTables" + } + } + } + }, + "describeSecurityGroups": { + "name": "DescribeSecurityGroups", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "GroupNames": { + "type": "list", + "members": { + "name": "GroupName" + }, + "flattened": true + }, + "GroupIds": { + "type": "list", + "members": { + "name": "GroupId" + }, + "flattened": true + }, + "Filters": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": {}, + "Values": { + "type": "list", + "members": { + "name": "Value" + }, + "flattened": true + } + }, + "name": "Filter" + }, + "flattened": true + } + } + }, + "output": { + "type": "structure", + "members": { + "securityGroupInfo": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ownerId": { + "name": "OwnerId" + }, + "groupName": { + "name": "GroupName" + }, + "groupId": { + "name": "GroupId" + }, + "groupDescription": { + "name": "Description" + }, + "ipPermissions": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ipProtocol": { + "name": "IpProtocol" + }, + "fromPort": { + "type": "integer", + "name": "FromPort" + }, + "toPort": { + "type": "integer", + "name": "ToPort" + }, + "groups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "userId": { + "name": "UserId" + }, + "groupName": { + "name": "GroupName" + }, + "groupId": { + "name": "GroupId" + } + }, + "name": "item" + }, + "name": "UserIdGroupPairs" + }, + "ipRanges": { + "type": "list", + "members": { + "type": "structure", + "members": { + "cidrIp": { + "name": "CidrIp" + } + }, + "name": "item" + }, + "name": "IpRanges" + } + }, + "name": "item" + }, + "name": "IpPermissions" + }, + "ipPermissionsEgress": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ipProtocol": { + "name": "IpProtocol" + }, + "fromPort": { + "type": "integer", + "name": "FromPort" + }, + "toPort": { + "type": "integer", + "name": "ToPort" + }, + "groups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "userId": { + "name": "UserId" + }, + "groupName": { + "name": "GroupName" + }, + "groupId": { + "name": "GroupId" + } + }, + "name": "item" + }, + "name": "UserIdGroupPairs" + }, + "ipRanges": { + "type": "list", + "members": { + "type": "structure", + "members": { + "cidrIp": { + "name": "CidrIp" + } + }, + "name": "item" + }, + "name": "IpRanges" + } + }, + "name": "item" + }, + "name": "IpPermissionsEgress" + }, + "vpcId": { + "name": "VpcId" + }, + "tagSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "key": { + "name": "Key" + }, + "value": { + "name": "Value" + } + }, + "name": "item" + }, + "name": "Tags" + } + }, + "name": "item" + }, + "name": "SecurityGroups" + } + } + } + }, + "describeSnapshotAttribute": { + "name": "DescribeSnapshotAttribute", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "SnapshotId": { + "required": true + }, + "Attribute": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "snapshotId": { + "name": "SnapshotId" + }, + "createVolumePermission": { + "type": "list", + "members": { + "type": "structure", + "members": { + "userId": { + "name": "UserId" + }, + "group": { + "name": "Group" + } + }, + "name": "item" + }, + "name": "CreateVolumePermissions" + }, + "productCodes": { + "type": "list", + "members": { + "type": "structure", + "members": { + "productCode": { + "name": "ProductCodeId" + }, + "type": { + "name": "ProductCodeType" + } + }, + "name": "item" + }, + "name": "ProductCodes" + } + } + } + }, + "describeSnapshots": { + "name": "DescribeSnapshots", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "SnapshotIds": { + "type": "list", + "members": { + "name": "SnapshotId" + }, + "flattened": true + }, + "OwnerIds": { + "type": "list", + "members": { + "name": "Owner" + }, + "flattened": true + }, + "RestorableByUserIds": { + "type": "list", + "members": { + "name": "RestorableBy" + }, + "flattened": true + }, + "Filters": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": {}, + "Values": { + "type": "list", + "members": { + "name": "Value" + }, + "flattened": true + } + }, + "name": "Filter" + }, + "flattened": true + } + } + }, + "output": { + "type": "structure", + "members": { + "snapshotSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "snapshotId": { + "name": "SnapshotId" + }, + "volumeId": { + "name": "VolumeId" + }, + "status": { + "name": "State" + }, + "startTime": { + "type": "timestamp", + "name": "StartTime" + }, + "progress": { + "name": "Progress" + }, + "ownerId": { + "name": "OwnerId" + }, + "description": { + "name": "Description" + }, + "volumeSize": { + "type": "integer", + "name": "VolumeSize" + }, + "ownerAlias": { + "name": "OwnerAlias" + }, + "tagSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "key": { + "name": "Key" + }, + "value": { + "name": "Value" + } + }, + "name": "item" + }, + "name": "Tags" + } + }, + "name": "item" + }, + "name": "Snapshots" + } + } + } + }, + "describeSpotDatafeedSubscription": { + "name": "DescribeSpotDatafeedSubscription", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "spotDatafeedSubscription": { + "type": "structure", + "members": { + "ownerId": { + "name": "OwnerId" + }, + "bucket": { + "name": "Bucket" + }, + "prefix": { + "name": "Prefix" + }, + "state": { + "name": "State" + }, + "fault": { + "type": "structure", + "members": { + "code": { + "name": "Code" + }, + "message": { + "name": "Message" + } + }, + "name": "Fault" + } + }, + "name": "SpotDatafeedSubscription" + } + } + } + }, + "describeSpotInstanceRequests": { + "name": "DescribeSpotInstanceRequests", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "SpotInstanceRequestIds": { + "type": "list", + "members": { + "name": "SpotInstanceRequestId" + }, + "flattened": true + }, + "Filters": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": {}, + "Values": { + "type": "list", + "members": { + "name": "Value" + }, + "flattened": true + } + }, + "name": "Filter" + }, + "flattened": true + } + } + }, + "output": { + "type": "structure", + "members": { + "spotInstanceRequestSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "spotInstanceRequestId": { + "name": "SpotInstanceRequestId" + }, + "spotPrice": { + "name": "SpotPrice" + }, + "type": { + "name": "Type" + }, + "state": { + "name": "State" + }, + "fault": { + "type": "structure", + "members": { + "code": { + "name": "Code" + }, + "message": { + "name": "Message" + } + }, + "name": "Fault" + }, + "status": { + "type": "structure", + "members": { + "code": { + "name": "Code" + }, + "updateTime": { + "type": "timestamp", + "name": "UpdateTime" + }, + "message": { + "name": "Message" + } + }, + "name": "Status" + }, + "validFrom": { + "type": "timestamp", + "name": "ValidFrom" + }, + "validUntil": { + "type": "timestamp", + "name": "ValidUntil" + }, + "launchGroup": { + "name": "LaunchGroup" + }, + "availabilityZoneGroup": { + "name": "AvailabilityZoneGroup" + }, + "launchSpecification": { + "type": "structure", + "members": { + "imageId": { + "name": "ImageId" + }, + "keyName": { + "name": "KeyName" + }, + "groupSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "groupName": { + "name": "GroupName" + }, + "groupId": { + "name": "GroupId" + } + }, + "name": "item" + }, + "name": "SecurityGroups" + }, + "userData": { + "name": "UserData" + }, + "addressingType": { + "name": "AddressingType" + }, + "instanceType": { + "name": "InstanceType" + }, + "placement": { + "type": "structure", + "members": { + "availabilityZone": { + "name": "AvailabilityZone" + }, + "groupName": { + "name": "GroupName" + } + }, + "name": "Placement" + }, + "kernelId": { + "name": "KernelId" + }, + "ramdiskId": { + "name": "RamdiskId" + }, + "blockDeviceMapping": { + "type": "list", + "members": { + "type": "structure", + "members": { + "virtualName": { + "name": "VirtualName" + }, + "deviceName": { + "name": "DeviceName" + }, + "ebs": { + "type": "structure", + "members": { + "snapshotId": { + "name": "SnapshotId" + }, + "volumeSize": { + "type": "integer", + "name": "VolumeSize" + }, + "deleteOnTermination": { + "type": "boolean", + "name": "DeleteOnTermination" + }, + "volumeType": { + "name": "VolumeType" + }, + "iops": { + "type": "integer", + "name": "Iops" + } + }, + "name": "Ebs" + }, + "noDevice": { + "name": "NoDevice" + } + }, + "name": "item" + }, + "name": "BlockDeviceMappings" + }, + "monitoringEnabled": { + "type": "boolean", + "name": "MonitoringEnabled" + }, + "subnetId": { + "name": "SubnetId" + }, + "networkInterfaceSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "networkInterfaceId": { + "name": "NetworkInterfaceId" + }, + "deviceIndex": { + "type": "integer", + "name": "DeviceIndex" + }, + "subnetId": { + "name": "SubnetId" + }, + "description": { + "name": "Description" + }, + "privateIpAddress": { + "name": "PrivateIpAddress" + }, + "SecurityGroupId": { + "type": "list", + "members": { + "name": "SecurityGroupId" + }, + "name": "Groups" + }, + "deleteOnTermination": { + "type": "boolean", + "name": "DeleteOnTermination" + }, + "privateIpAddressesSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "privateIpAddress": { + "name": "PrivateIpAddress" + }, + "primary": { + "type": "boolean", + "name": "Primary" + } + }, + "name": "item" + }, + "name": "PrivateIpAddresses" + }, + "secondaryPrivateIpAddressCount": { + "type": "integer", + "name": "SecondaryPrivateIpAddressCount" + }, + "associatePublicIpAddress": { + "type": "boolean", + "name": "AssociatePublicIpAddress" + } + }, + "name": "item" + }, + "name": "NetworkInterfaces" + }, + "iamInstanceProfile": { + "type": "structure", + "members": { + "arn": { + "name": "Arn" + }, + "name": { + "name": "Name" + } + }, + "name": "IamInstanceProfile" + }, + "ebsOptimized": { + "type": "boolean", + "name": "EbsOptimized" + } + }, + "name": "LaunchSpecification" + }, + "instanceId": { + "name": "InstanceId" + }, + "createTime": { + "type": "timestamp", + "name": "CreateTime" + }, + "productDescription": { + "name": "ProductDescription" + }, + "tagSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "key": { + "name": "Key" + }, + "value": { + "name": "Value" + } + }, + "name": "item" + }, + "name": "Tags" + }, + "launchedAvailabilityZone": { + "name": "LaunchedAvailabilityZone" + } + }, + "name": "item" + }, + "name": "SpotInstanceRequests" + } + } + } + }, + "describeSpotPriceHistory": { + "name": "DescribeSpotPriceHistory", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "StartTime": { + "type": "timestamp" + }, + "EndTime": { + "type": "timestamp" + }, + "InstanceTypes": { + "type": "list", + "members": { + "name": "InstanceType" + }, + "flattened": true + }, + "ProductDescriptions": { + "type": "list", + "members": { + "name": "ProductDescription" + }, + "flattened": true + }, + "Filters": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": {}, + "Values": { + "type": "list", + "members": { + "name": "Value" + }, + "flattened": true + } + }, + "name": "Filter" + }, + "flattened": true + }, + "AvailabilityZone": {}, + "MaxResults": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "spotPriceHistorySet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "instanceType": { + "name": "InstanceType" + }, + "productDescription": { + "name": "ProductDescription" + }, + "spotPrice": { + "name": "SpotPrice" + }, + "timestamp": { + "type": "timestamp", + "name": "Timestamp" + }, + "availabilityZone": { + "name": "AvailabilityZone" + } + }, + "name": "item" + }, + "name": "SpotPriceHistory" + }, + "nextToken": { + "name": "NextToken" + } + } + } + }, + "describeSubnets": { + "name": "DescribeSubnets", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "SubnetIds": { + "type": "list", + "members": { + "name": "SubnetId" + }, + "flattened": true + }, + "Filters": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": {}, + "Values": { + "type": "list", + "members": { + "name": "Value" + }, + "flattened": true + } + }, + "name": "Filter" + }, + "flattened": true + } + } + }, + "output": { + "type": "structure", + "members": { + "subnetSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "subnetId": { + "name": "SubnetId" + }, + "state": { + "name": "State" + }, + "vpcId": { + "name": "VpcId" + }, + "cidrBlock": { + "name": "CidrBlock" + }, + "availableIpAddressCount": { + "type": "integer", + "name": "AvailableIpAddressCount" + }, + "availabilityZone": { + "name": "AvailabilityZone" + }, + "defaultForAz": { + "type": "boolean", + "name": "DefaultForAz" + }, + "mapPublicIpOnLaunch": { + "type": "boolean", + "name": "MapPublicIpOnLaunch" + }, + "tagSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "key": { + "name": "Key" + }, + "value": { + "name": "Value" + } + }, + "name": "item" + }, + "name": "Tags" + } + }, + "name": "item" + }, + "name": "Subnets" + } + } + } + }, + "describeTags": { + "name": "DescribeTags", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "Filters": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": {}, + "Values": { + "type": "list", + "members": { + "name": "Value" + }, + "flattened": true + } + }, + "name": "Filter" + }, + "flattened": true + }, + "MaxResults": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "tagSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "resourceId": { + "name": "ResourceId" + }, + "resourceType": { + "name": "ResourceType" + }, + "key": { + "name": "Key" + }, + "value": { + "name": "Value" + } + }, + "name": "item" + }, + "name": "Tags" + }, + "nextToken": { + "name": "NextToken" + } + } + } + }, + "describeVolumeAttribute": { + "name": "DescribeVolumeAttribute", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "VolumeId": { + "required": true + }, + "Attribute": {} + } + }, + "output": { + "type": "structure", + "members": { + "volumeId": { + "name": "VolumeId" + }, + "autoEnableIO": { + "type": "structure", + "members": { + "value": { + "type": "boolean", + "name": "Value" + } + }, + "name": "AutoEnableIO" + }, + "productCodes": { + "type": "list", + "members": { + "type": "structure", + "members": { + "productCode": { + "name": "ProductCodeId" + }, + "type": { + "name": "ProductCodeType" + } + }, + "name": "item" + }, + "name": "ProductCodes" + } + } + } + }, + "describeVolumeStatus": { + "name": "DescribeVolumeStatus", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "VolumeIds": { + "type": "list", + "members": { + "name": "VolumeId" + }, + "flattened": true + }, + "Filters": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": {}, + "Values": { + "type": "list", + "members": { + "name": "Value" + }, + "flattened": true + } + }, + "name": "Filter" + }, + "flattened": true + }, + "NextToken": {}, + "MaxResults": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "volumeStatusSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "volumeId": { + "name": "VolumeId" + }, + "availabilityZone": { + "name": "AvailabilityZone" + }, + "volumeStatus": { + "type": "structure", + "members": { + "status": { + "name": "Status" + }, + "details": { + "type": "list", + "members": { + "type": "structure", + "members": { + "name": { + "name": "Name" + }, + "status": { + "name": "Status" + } + }, + "name": "item" + }, + "name": "Details" + } + }, + "name": "VolumeStatus" + }, + "eventsSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "eventType": { + "name": "EventType" + }, + "description": { + "name": "Description" + }, + "notBefore": { + "type": "timestamp", + "name": "NotBefore" + }, + "notAfter": { + "type": "timestamp", + "name": "NotAfter" + }, + "eventId": { + "name": "EventId" + } + }, + "name": "item" + }, + "name": "Events" + }, + "actionsSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "code": { + "name": "Code" + }, + "description": { + "name": "Description" + }, + "eventType": { + "name": "EventType" + }, + "eventId": { + "name": "EventId" + } + }, + "name": "item" + }, + "name": "Actions" + } + }, + "name": "item" + }, + "name": "VolumeStatuses" + }, + "nextToken": { + "name": "NextToken" + } + } + } + }, + "describeVolumes": { + "name": "DescribeVolumes", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "VolumeIds": { + "type": "list", + "members": { + "name": "VolumeId" + }, + "flattened": true + }, + "Filters": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": {}, + "Values": { + "type": "list", + "members": { + "name": "Value" + }, + "flattened": true + } + }, + "name": "Filter" + }, + "flattened": true + } + } + }, + "output": { + "type": "structure", + "members": { + "volumeSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "volumeId": { + "name": "VolumeId" + }, + "size": { + "type": "integer", + "name": "Size" + }, + "snapshotId": { + "name": "SnapshotId" + }, + "availabilityZone": { + "name": "AvailabilityZone" + }, + "status": { + "name": "State" + }, + "createTime": { + "type": "timestamp", + "name": "CreateTime" + }, + "attachmentSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "volumeId": { + "name": "VolumeId" + }, + "instanceId": { + "name": "InstanceId" + }, + "device": { + "name": "Device" + }, + "status": { + "name": "State" + }, + "attachTime": { + "type": "timestamp", + "name": "AttachTime" + }, + "deleteOnTermination": { + "type": "boolean", + "name": "DeleteOnTermination" + } + }, + "name": "item" + }, + "name": "Attachments" + }, + "tagSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "key": { + "name": "Key" + }, + "value": { + "name": "Value" + } + }, + "name": "item" + }, + "name": "Tags" + }, + "volumeType": { + "name": "VolumeType" + }, + "iops": { + "type": "integer", + "name": "Iops" + } + }, + "name": "item" + }, + "name": "Volumes" + } + } + } + }, + "describeVpcAttribute": { + "name": "DescribeVpcAttribute", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "VpcId": { + "required": true + }, + "Attribute": {} + } + }, + "output": { + "type": "structure", + "members": { + "vpcId": { + "name": "VpcId" + }, + "enableDnsSupport": { + "type": "structure", + "members": { + "value": { + "type": "boolean", + "name": "Value" + } + }, + "name": "EnableDnsSupport" + }, + "enableDnsHostnames": { + "type": "structure", + "members": { + "value": { + "type": "boolean", + "name": "Value" + } + }, + "name": "EnableDnsHostnames" + } + } + } + }, + "describeVpcPeeringConnections": { + "name": "DescribeVpcPeeringConnections", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "VpcPeeringConnectionIds": { + "type": "list", + "members": { + "name": "VpcPeeringConnectionId" + }, + "flattened": true + }, + "Filters": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": {}, + "Values": { + "type": "list", + "members": { + "name": "Value" + }, + "flattened": true + } + }, + "name": "Filter" + }, + "flattened": true + } + } + }, + "output": { + "type": "structure", + "members": { + "vpcPeeringConnectionSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "accepterVpcInfo": { + "type": "structure", + "members": { + "cidrBlock": { + "name": "CidrBlock" + }, + "ownerId": { + "name": "OwnerId" + }, + "vpcId": { + "name": "VpcId" + } + }, + "name": "AccepterVpcInfo" + }, + "expirationTime": { + "type": "timestamp", + "name": "ExpirationTime" + }, + "requesterVpcInfo": { + "type": "structure", + "members": { + "cidrBlock": { + "name": "CidrBlock" + }, + "ownerId": { + "name": "OwnerId" + }, + "vpcId": { + "name": "VpcId" + } + }, + "name": "RequesterVpcInfo" + }, + "status": { + "type": "structure", + "members": { + "code": { + "name": "Code" + }, + "message": { + "name": "Message" + } + }, + "name": "Status" + }, + "tagSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "key": { + "name": "Key" + }, + "value": { + "name": "Value" + } + }, + "name": "item" + }, + "name": "Tags" + }, + "vpcPeeringConnectionId": { + "name": "VpcPeeringConnectionId" + } + }, + "name": "item" + }, + "name": "VpcPeeringConnections" + } + } + } + }, + "describeVpcs": { + "name": "DescribeVpcs", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "VpcIds": { + "type": "list", + "members": { + "name": "VpcId" + }, + "flattened": true + }, + "Filters": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": {}, + "Values": { + "type": "list", + "members": { + "name": "Value" + }, + "flattened": true + } + }, + "name": "Filter" + }, + "flattened": true + } + } + }, + "output": { + "type": "structure", + "members": { + "vpcSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "vpcId": { + "name": "VpcId" + }, + "state": { + "name": "State" + }, + "cidrBlock": { + "name": "CidrBlock" + }, + "dhcpOptionsId": { + "name": "DhcpOptionsId" + }, + "tagSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "key": { + "name": "Key" + }, + "value": { + "name": "Value" + } + }, + "name": "item" + }, + "name": "Tags" + }, + "instanceTenancy": { + "name": "InstanceTenancy" + }, + "isDefault": { + "type": "boolean", + "name": "IsDefault" + } + }, + "name": "item" + }, + "name": "Vpcs" + } + } + } + }, + "describeVpnConnections": { + "name": "DescribeVpnConnections", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "VpnConnectionIds": { + "type": "list", + "members": { + "name": "VpnConnectionId" + }, + "flattened": true + }, + "Filters": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": {}, + "Values": { + "type": "list", + "members": { + "name": "Value" + }, + "flattened": true + } + }, + "name": "Filter" + }, + "flattened": true + } + } + }, + "output": { + "type": "structure", + "members": { + "vpnConnectionSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "vpnConnectionId": { + "name": "VpnConnectionId" + }, + "state": { + "name": "State" + }, + "customerGatewayConfiguration": { + "name": "CustomerGatewayConfiguration" + }, + "type": { + "name": "Type" + }, + "customerGatewayId": { + "name": "CustomerGatewayId" + }, + "vpnGatewayId": { + "name": "VpnGatewayId" + }, + "tagSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "key": { + "name": "Key" + }, + "value": { + "name": "Value" + } + }, + "name": "item" + }, + "name": "Tags" + }, + "vgwTelemetry": { + "type": "list", + "members": { + "type": "structure", + "members": { + "outsideIpAddress": { + "name": "OutsideIpAddress" + }, + "status": { + "name": "Status" + }, + "lastStatusChange": { + "type": "timestamp", + "name": "LastStatusChange" + }, + "statusMessage": { + "name": "StatusMessage" + }, + "acceptedRouteCount": { + "type": "integer", + "name": "AcceptedRouteCount" + } + }, + "name": "item" + }, + "name": "VgwTelemetry" + }, + "options": { + "type": "structure", + "members": { + "staticRoutesOnly": { + "type": "boolean", + "name": "StaticRoutesOnly" + } + }, + "name": "Options" + }, + "routes": { + "type": "list", + "members": { + "type": "structure", + "members": { + "destinationCidrBlock": { + "name": "DestinationCidrBlock" + }, + "source": { + "name": "Source" + }, + "state": { + "name": "State" + } + }, + "name": "item" + }, + "name": "Routes" + } + }, + "name": "item" + }, + "name": "VpnConnections" + } + } + } + }, + "describeVpnGateways": { + "name": "DescribeVpnGateways", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "VpnGatewayIds": { + "type": "list", + "members": { + "name": "VpnGatewayId" + }, + "flattened": true + }, + "Filters": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": {}, + "Values": { + "type": "list", + "members": { + "name": "Value" + }, + "flattened": true + } + }, + "name": "Filter" + }, + "flattened": true + } + } + }, + "output": { + "type": "structure", + "members": { + "vpnGatewaySet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "vpnGatewayId": { + "name": "VpnGatewayId" + }, + "state": { + "name": "State" + }, + "type": { + "name": "Type" + }, + "availabilityZone": { + "name": "AvailabilityZone" + }, + "attachments": { + "type": "list", + "members": { + "type": "structure", + "members": { + "vpcId": { + "name": "VpcId" + }, + "state": { + "name": "State" + } + }, + "name": "item" + }, + "name": "VpcAttachments" + }, + "tagSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "key": { + "name": "Key" + }, + "value": { + "name": "Value" + } + }, + "name": "item" + }, + "name": "Tags" + } + }, + "name": "item" + }, + "name": "VpnGateways" + } + } + } + }, + "detachInternetGateway": { + "name": "DetachInternetGateway", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "InternetGatewayId": { + "required": true + }, + "VpcId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "detachNetworkInterface": { + "name": "DetachNetworkInterface", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "AttachmentId": { + "required": true + }, + "Force": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "detachVolume": { + "name": "DetachVolume", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "VolumeId": { + "required": true + }, + "InstanceId": {}, + "Device": {}, + "Force": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "volumeId": { + "name": "VolumeId" + }, + "instanceId": { + "name": "InstanceId" + }, + "device": { + "name": "Device" + }, + "status": { + "name": "State" + }, + "attachTime": { + "type": "timestamp", + "name": "AttachTime" + }, + "deleteOnTermination": { + "type": "boolean", + "name": "DeleteOnTermination" + } + }, + "name": "attachment" + } + }, + "detachVpnGateway": { + "name": "DetachVpnGateway", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "VpnGatewayId": { + "required": true + }, + "VpcId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "disableVgwRoutePropagation": { + "name": "DisableVgwRoutePropagation", + "input": { + "type": "structure", + "members": { + "RouteTableId": { + "required": true + }, + "GatewayId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "disassociateAddress": { + "name": "DisassociateAddress", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "PublicIp": {}, + "AssociationId": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "disassociateRouteTable": { + "name": "DisassociateRouteTable", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "AssociationId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "enableVgwRoutePropagation": { + "name": "EnableVgwRoutePropagation", + "input": { + "type": "structure", + "members": { + "RouteTableId": { + "required": true + }, + "GatewayId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "enableVolumeIO": { + "name": "EnableVolumeIO", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "VolumeId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "getConsoleOutput": { + "name": "GetConsoleOutput", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "InstanceId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "instanceId": { + "name": "InstanceId" + }, + "timestamp": { + "type": "timestamp", + "name": "Timestamp" + }, + "output": { + "name": "Output" + } + } + } + }, + "getPasswordData": { + "name": "GetPasswordData", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "InstanceId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "instanceId": { + "name": "InstanceId" + }, + "timestamp": { + "type": "timestamp", + "name": "Timestamp" + }, + "passwordData": { + "name": "PasswordData" + } + } + } + }, + "importInstance": { + "name": "ImportInstance", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "Description": {}, + "LaunchSpecification": { + "type": "structure", + "members": { + "Architecture": {}, + "GroupNames": { + "type": "list", + "members": { + "name": "GroupName" + }, + "flattened": true + }, + "AdditionalInfo": {}, + "UserData": {}, + "InstanceType": {}, + "Placement": { + "type": "structure", + "members": { + "AvailabilityZone": {}, + "GroupName": {}, + "Tenancy": {} + } + }, + "Monitoring": { + "type": "boolean" + }, + "SubnetId": {}, + "InstanceInitiatedShutdownBehavior": {}, + "PrivateIpAddress": {} + } + }, + "DiskImages": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Image": { + "type": "structure", + "members": { + "Format": { + "required": true + }, + "Bytes": { + "type": "integer", + "required": true + }, + "ImportManifestUrl": { + "required": true + } + } + }, + "Description": {}, + "Volume": { + "type": "structure", + "members": { + "Size": { + "type": "integer", + "required": true + } + } + } + }, + "name": "DiskImage" + }, + "flattened": true + }, + "Platform": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "conversionTask": { + "type": "structure", + "members": { + "conversionTaskId": { + "name": "ConversionTaskId" + }, + "expirationTime": { + "name": "ExpirationTime" + }, + "importInstance": { + "type": "structure", + "members": { + "volumes": { + "type": "list", + "members": { + "type": "structure", + "members": { + "bytesConverted": { + "type": "integer", + "name": "BytesConverted" + }, + "availabilityZone": { + "name": "AvailabilityZone" + }, + "image": { + "type": "structure", + "members": { + "format": { + "name": "Format" + }, + "size": { + "type": "integer", + "name": "Size" + }, + "importManifestUrl": { + "name": "ImportManifestUrl" + }, + "checksum": { + "name": "Checksum" + } + }, + "name": "Image" + }, + "volume": { + "type": "structure", + "members": { + "size": { + "type": "integer", + "name": "Size" + }, + "id": { + "name": "Id" + } + }, + "name": "Volume" + }, + "status": { + "name": "Status" + }, + "statusMessage": { + "name": "StatusMessage" + }, + "description": { + "name": "Description" + } + }, + "name": "item" + }, + "name": "Volumes" + }, + "instanceId": { + "name": "InstanceId" + }, + "platform": { + "name": "Platform" + }, + "description": { + "name": "Description" + } + }, + "name": "ImportInstance" + }, + "importVolume": { + "type": "structure", + "members": { + "bytesConverted": { + "type": "integer", + "name": "BytesConverted" + }, + "availabilityZone": { + "name": "AvailabilityZone" + }, + "description": { + "name": "Description" + }, + "image": { + "type": "structure", + "members": { + "format": { + "name": "Format" + }, + "size": { + "type": "integer", + "name": "Size" + }, + "importManifestUrl": { + "name": "ImportManifestUrl" + }, + "checksum": { + "name": "Checksum" + } + }, + "name": "Image" + }, + "volume": { + "type": "structure", + "members": { + "size": { + "type": "integer", + "name": "Size" + }, + "id": { + "name": "Id" + } + }, + "name": "Volume" + } + }, + "name": "ImportVolume" + }, + "state": { + "name": "State" + }, + "statusMessage": { + "name": "StatusMessage" + }, + "tagSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "key": { + "name": "Key" + }, + "value": { + "name": "Value" + } + }, + "name": "item" + }, + "name": "Tags" + } + }, + "name": "ConversionTask" + } + } + } + }, + "importKeyPair": { + "name": "ImportKeyPair", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "KeyName": { + "required": true + }, + "PublicKeyMaterial": { + "type": "base64", + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "keyName": { + "name": "KeyName" + }, + "keyFingerprint": { + "name": "KeyFingerprint" + } + } + } + }, + "importVolume": { + "name": "ImportVolume", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "AvailabilityZone": {}, + "Image": { + "type": "structure", + "members": { + "Format": { + "required": true + }, + "Bytes": { + "type": "integer", + "required": true + }, + "ImportManifestUrl": { + "required": true + } + } + }, + "Description": {}, + "Volume": { + "type": "structure", + "members": { + "Size": { + "type": "integer", + "required": true + } + } + } + } + }, + "output": { + "type": "structure", + "members": { + "conversionTask": { + "type": "structure", + "members": { + "conversionTaskId": { + "name": "ConversionTaskId" + }, + "expirationTime": { + "name": "ExpirationTime" + }, + "importInstance": { + "type": "structure", + "members": { + "volumes": { + "type": "list", + "members": { + "type": "structure", + "members": { + "bytesConverted": { + "type": "integer", + "name": "BytesConverted" + }, + "availabilityZone": { + "name": "AvailabilityZone" + }, + "image": { + "type": "structure", + "members": { + "format": { + "name": "Format" + }, + "size": { + "type": "integer", + "name": "Size" + }, + "importManifestUrl": { + "name": "ImportManifestUrl" + }, + "checksum": { + "name": "Checksum" + } + }, + "name": "Image" + }, + "volume": { + "type": "structure", + "members": { + "size": { + "type": "integer", + "name": "Size" + }, + "id": { + "name": "Id" + } + }, + "name": "Volume" + }, + "status": { + "name": "Status" + }, + "statusMessage": { + "name": "StatusMessage" + }, + "description": { + "name": "Description" + } + }, + "name": "item" + }, + "name": "Volumes" + }, + "instanceId": { + "name": "InstanceId" + }, + "platform": { + "name": "Platform" + }, + "description": { + "name": "Description" + } + }, + "name": "ImportInstance" + }, + "importVolume": { + "type": "structure", + "members": { + "bytesConverted": { + "type": "integer", + "name": "BytesConverted" + }, + "availabilityZone": { + "name": "AvailabilityZone" + }, + "description": { + "name": "Description" + }, + "image": { + "type": "structure", + "members": { + "format": { + "name": "Format" + }, + "size": { + "type": "integer", + "name": "Size" + }, + "importManifestUrl": { + "name": "ImportManifestUrl" + }, + "checksum": { + "name": "Checksum" + } + }, + "name": "Image" + }, + "volume": { + "type": "structure", + "members": { + "size": { + "type": "integer", + "name": "Size" + }, + "id": { + "name": "Id" + } + }, + "name": "Volume" + } + }, + "name": "ImportVolume" + }, + "state": { + "name": "State" + }, + "statusMessage": { + "name": "StatusMessage" + }, + "tagSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "key": { + "name": "Key" + }, + "value": { + "name": "Value" + } + }, + "name": "item" + }, + "name": "Tags" + } + }, + "name": "ConversionTask" + } + } + } + }, + "modifyImageAttribute": { + "name": "ModifyImageAttribute", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "ImageId": { + "required": true + }, + "Attribute": {}, + "OperationType": {}, + "UserIds": { + "type": "list", + "members": { + "name": "UserId" + }, + "flattened": true + }, + "UserGroups": { + "type": "list", + "members": { + "name": "UserGroup" + }, + "flattened": true + }, + "ProductCodes": { + "type": "list", + "members": { + "name": "ProductCode" + }, + "flattened": true + }, + "Value": {}, + "LaunchPermission": { + "type": "structure", + "members": { + "Add": { + "type": "list", + "members": { + "type": "structure", + "members": { + "UserId": {}, + "Group": {} + } + }, + "flattened": true + }, + "Remove": { + "type": "list", + "members": { + "type": "structure", + "members": { + "UserId": {}, + "Group": {} + } + }, + "flattened": true + } + } + }, + "Description": { + "type": "structure", + "members": { + "Value": {} + } + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "modifyInstanceAttribute": { + "name": "ModifyInstanceAttribute", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "InstanceId": { + "required": true + }, + "Attribute": {}, + "Value": {}, + "BlockDeviceMappings": { + "type": "list", + "members": { + "type": "structure", + "members": { + "DeviceName": {}, + "Ebs": { + "type": "structure", + "members": { + "VolumeId": {}, + "DeleteOnTermination": { + "type": "boolean" + } + } + }, + "VirtualName": {}, + "NoDevice": {} + }, + "name": "BlockDeviceMapping" + }, + "flattened": true + }, + "SourceDestCheck": { + "type": "structure", + "members": { + "Value": { + "type": "boolean" + } + } + }, + "DisableApiTermination": { + "type": "structure", + "members": { + "Value": { + "type": "boolean" + } + } + }, + "InstanceType": { + "type": "structure", + "members": { + "Value": {} + } + }, + "Kernel": { + "type": "structure", + "members": { + "Value": {} + } + }, + "Ramdisk": { + "type": "structure", + "members": { + "Value": {} + } + }, + "UserData": { + "type": "structure", + "members": { + "Value": { + "type": "base64" + } + } + }, + "InstanceInitiatedShutdownBehavior": { + "type": "structure", + "members": { + "Value": {} + } + }, + "Groups": { + "type": "list", + "members": { + "name": "GroupId" + }, + "flattened": true + }, + "EbsOptimized": { + "type": "structure", + "members": { + "Value": { + "type": "boolean" + } + } + }, + "SriovNetSupport": { + "type": "structure", + "members": { + "Value": {} + } + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "modifyNetworkInterfaceAttribute": { + "name": "ModifyNetworkInterfaceAttribute", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "NetworkInterfaceId": { + "required": true + }, + "Description": { + "type": "structure", + "members": { + "Value": {} + } + }, + "SourceDestCheck": { + "type": "structure", + "members": { + "Value": { + "type": "boolean" + } + } + }, + "Groups": { + "type": "list", + "members": { + "name": "SecurityGroupId" + }, + "flattened": true + }, + "Attachment": { + "type": "structure", + "members": { + "AttachmentId": {}, + "DeleteOnTermination": { + "type": "boolean" + } + } + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "modifyReservedInstances": { + "name": "ModifyReservedInstances", + "input": { + "type": "structure", + "members": { + "ClientToken": {}, + "ReservedInstancesIds": { + "type": "list", + "members": { + "name": "ReservedInstancesId" + }, + "required": true, + "flattened": true + }, + "TargetConfigurations": { + "type": "list", + "members": { + "type": "structure", + "members": { + "AvailabilityZone": {}, + "Platform": {}, + "InstanceCount": { + "type": "integer" + }, + "InstanceType": {} + }, + "name": "ReservedInstancesConfigurationSetItemType" + }, + "required": true, + "flattened": true + } + } + }, + "output": { + "type": "structure", + "members": { + "reservedInstancesModificationId": { + "name": "ReservedInstancesModificationId" + } + } + } + }, + "modifySnapshotAttribute": { + "name": "ModifySnapshotAttribute", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "SnapshotId": { + "required": true + }, + "Attribute": {}, + "OperationType": {}, + "UserIds": { + "type": "list", + "members": { + "name": "UserId" + }, + "flattened": true + }, + "GroupNames": { + "type": "list", + "members": { + "name": "UserGroup" + }, + "flattened": true + }, + "CreateVolumePermission": { + "type": "structure", + "members": { + "Add": { + "type": "list", + "members": { + "type": "structure", + "members": { + "UserId": {}, + "Group": {} + } + }, + "flattened": true + }, + "Remove": { + "type": "list", + "members": { + "type": "structure", + "members": { + "UserId": {}, + "Group": {} + } + }, + "flattened": true + } + } + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "modifyVolumeAttribute": { + "name": "ModifyVolumeAttribute", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "VolumeId": { + "required": true + }, + "AutoEnableIO": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "modifyVpcAttribute": { + "name": "ModifyVpcAttribute", + "input": { + "type": "structure", + "members": { + "VpcId": { + "required": true + }, + "EnableDnsSupport": { + "type": "structure", + "members": { + "Value": { + "type": "boolean" + } + } + }, + "EnableDnsHostnames": { + "type": "structure", + "members": { + "Value": { + "type": "boolean" + } + } + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "monitorInstances": { + "name": "MonitorInstances", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "InstanceIds": { + "type": "list", + "members": { + "name": "InstanceId" + }, + "required": true, + "flattened": true + } + } + }, + "output": { + "type": "structure", + "members": { + "instancesSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "instanceId": { + "name": "InstanceId" + }, + "monitoring": { + "type": "structure", + "members": { + "state": { + "name": "State" + } + }, + "name": "Monitoring" + } + }, + "name": "item" + }, + "name": "InstanceMonitorings" + } + } + } + }, + "purchaseReservedInstancesOffering": { + "name": "PurchaseReservedInstancesOffering", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "ReservedInstancesOfferingId": { + "required": true + }, + "InstanceCount": { + "type": "integer", + "required": true + }, + "LimitPrice": { + "type": "structure", + "members": { + "Amount": { + "type": "float" + }, + "CurrencyCode": {} + } + } + } + }, + "output": { + "type": "structure", + "members": { + "reservedInstancesId": { + "name": "ReservedInstancesId" + } + } + } + }, + "rebootInstances": { + "name": "RebootInstances", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "InstanceIds": { + "type": "list", + "members": { + "name": "InstanceId" + }, + "required": true, + "flattened": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "registerImage": { + "name": "RegisterImage", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "ImageLocation": {}, + "Name": {}, + "Description": {}, + "Architecture": {}, + "KernelId": {}, + "RamdiskId": {}, + "RootDeviceName": {}, + "BlockDeviceMappings": { + "type": "list", + "members": { + "type": "structure", + "members": { + "VirtualName": {}, + "DeviceName": {}, + "Ebs": { + "type": "structure", + "members": { + "SnapshotId": {}, + "VolumeSize": { + "type": "integer" + }, + "DeleteOnTermination": { + "type": "boolean" + }, + "VolumeType": {}, + "Iops": { + "type": "integer" + } + } + }, + "NoDevice": {} + }, + "name": "BlockDeviceMapping" + }, + "flattened": true + }, + "VirtualizationType": {}, + "SriovNetSupport": {} + } + }, + "output": { + "type": "structure", + "members": { + "imageId": { + "name": "ImageId" + } + } + } + }, + "rejectVpcPeeringConnection": { + "name": "RejectVpcPeeringConnection", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "VpcPeeringConnectionId": {} + } + }, + "output": { + "type": "structure", + "members": { + "return": { + "type": "boolean", + "name": "Return" + } + } + } + }, + "releaseAddress": { + "name": "ReleaseAddress", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "PublicIp": {}, + "AllocationId": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "replaceNetworkAclAssociation": { + "name": "ReplaceNetworkAclAssociation", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "AssociationId": { + "required": true + }, + "NetworkAclId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "newAssociationId": { + "name": "NewAssociationId" + } + } + } + }, + "replaceNetworkAclEntry": { + "name": "ReplaceNetworkAclEntry", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "NetworkAclId": { + "required": true + }, + "RuleNumber": { + "type": "integer", + "required": true + }, + "Protocol": { + "required": true + }, + "RuleAction": { + "required": true + }, + "Egress": { + "type": "boolean", + "required": true + }, + "CidrBlock": { + "required": true + }, + "IcmpTypeCode": { + "type": "structure", + "members": { + "Type": { + "type": "integer" + }, + "Code": { + "type": "integer" + } + }, + "name": "Icmp" + }, + "PortRange": { + "type": "structure", + "members": { + "From": { + "type": "integer" + }, + "To": { + "type": "integer" + } + } + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "replaceRoute": { + "name": "ReplaceRoute", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "RouteTableId": { + "required": true + }, + "DestinationCidrBlock": { + "required": true + }, + "GatewayId": {}, + "InstanceId": {}, + "NetworkInterfaceId": {}, + "VpcPeeringConnectionId": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "replaceRouteTableAssociation": { + "name": "ReplaceRouteTableAssociation", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "AssociationId": { + "required": true + }, + "RouteTableId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "newAssociationId": { + "name": "NewAssociationId" + } + } + } + }, + "reportInstanceStatus": { + "name": "ReportInstanceStatus", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "Instances": { + "type": "list", + "members": { + "name": "InstanceId" + }, + "flattened": true + }, + "Status": {}, + "StartTime": { + "type": "timestamp" + }, + "EndTime": { + "type": "timestamp" + }, + "ReasonCodes": { + "type": "list", + "members": { + "name": "ReasonCode" + }, + "flattened": true + }, + "Description": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "requestSpotInstances": { + "name": "RequestSpotInstances", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "SpotPrice": { + "required": true + }, + "InstanceCount": { + "type": "integer" + }, + "Type": {}, + "ValidFrom": { + "type": "timestamp" + }, + "ValidUntil": { + "type": "timestamp" + }, + "LaunchGroup": {}, + "AvailabilityZoneGroup": {}, + "LaunchSpecification": { + "type": "structure", + "members": { + "ImageId": {}, + "KeyName": {}, + "UserData": {}, + "AddressingType": {}, + "InstanceType": {}, + "Placement": { + "type": "structure", + "members": { + "AvailabilityZone": {}, + "GroupName": {} + } + }, + "KernelId": {}, + "RamdiskId": {}, + "BlockDeviceMappings": { + "type": "list", + "members": { + "type": "structure", + "members": { + "VirtualName": {}, + "DeviceName": {}, + "Ebs": { + "type": "structure", + "members": { + "SnapshotId": {}, + "VolumeSize": { + "type": "integer" + }, + "DeleteOnTermination": { + "type": "boolean" + }, + "VolumeType": {}, + "Iops": { + "type": "integer" + } + } + }, + "NoDevice": {} + }, + "name": "BlockDeviceMapping" + }, + "flattened": true + }, + "Monitoring": { + "type": "structure", + "members": { + "Enabled": { + "type": "boolean", + "required": true + } + } + }, + "SubnetId": {}, + "NetworkInterfaces": { + "type": "list", + "members": { + "type": "structure", + "members": { + "NetworkInterfaceId": {}, + "DeviceIndex": { + "type": "integer" + }, + "SubnetId": {}, + "Description": {}, + "PrivateIpAddress": {}, + "Groups": { + "type": "list", + "members": { + "name": "SecurityGroupId" + }, + "flattened": true + }, + "DeleteOnTermination": { + "type": "boolean" + }, + "PrivateIpAddresses": { + "type": "list", + "members": { + "type": "structure", + "members": { + "PrivateIpAddress": { + "required": true + }, + "Primary": { + "type": "boolean" + } + } + }, + "flattened": true + }, + "SecondaryPrivateIpAddressCount": { + "type": "integer" + }, + "AssociatePublicIpAddress": { + "type": "boolean" + } + }, + "name": "NetworkInterface" + }, + "flattened": true + }, + "IamInstanceProfile": { + "type": "structure", + "members": { + "Arn": {}, + "Name": {} + } + }, + "EbsOptimized": { + "type": "boolean" + }, + "SecurityGroupIds": { + "type": "list", + "members": { + "name": "SecurityGroupId" + }, + "flattened": true + }, + "SecurityGroups": { + "type": "list", + "members": { + "name": "SecurityGroup" + }, + "flattened": true + } + } + } + } + }, + "output": { + "type": "structure", + "members": { + "spotInstanceRequestSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "spotInstanceRequestId": { + "name": "SpotInstanceRequestId" + }, + "spotPrice": { + "name": "SpotPrice" + }, + "type": { + "name": "Type" + }, + "state": { + "name": "State" + }, + "fault": { + "type": "structure", + "members": { + "code": { + "name": "Code" + }, + "message": { + "name": "Message" + } + }, + "name": "Fault" + }, + "status": { + "type": "structure", + "members": { + "code": { + "name": "Code" + }, + "updateTime": { + "type": "timestamp", + "name": "UpdateTime" + }, + "message": { + "name": "Message" + } + }, + "name": "Status" + }, + "validFrom": { + "type": "timestamp", + "name": "ValidFrom" + }, + "validUntil": { + "type": "timestamp", + "name": "ValidUntil" + }, + "launchGroup": { + "name": "LaunchGroup" + }, + "availabilityZoneGroup": { + "name": "AvailabilityZoneGroup" + }, + "launchSpecification": { + "type": "structure", + "members": { + "imageId": { + "name": "ImageId" + }, + "keyName": { + "name": "KeyName" + }, + "groupSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "groupName": { + "name": "GroupName" + }, + "groupId": { + "name": "GroupId" + } + }, + "name": "item" + }, + "name": "SecurityGroups" + }, + "userData": { + "name": "UserData" + }, + "addressingType": { + "name": "AddressingType" + }, + "instanceType": { + "name": "InstanceType" + }, + "placement": { + "type": "structure", + "members": { + "availabilityZone": { + "name": "AvailabilityZone" + }, + "groupName": { + "name": "GroupName" + } + }, + "name": "Placement" + }, + "kernelId": { + "name": "KernelId" + }, + "ramdiskId": { + "name": "RamdiskId" + }, + "blockDeviceMapping": { + "type": "list", + "members": { + "type": "structure", + "members": { + "virtualName": { + "name": "VirtualName" + }, + "deviceName": { + "name": "DeviceName" + }, + "ebs": { + "type": "structure", + "members": { + "snapshotId": { + "name": "SnapshotId" + }, + "volumeSize": { + "type": "integer", + "name": "VolumeSize" + }, + "deleteOnTermination": { + "type": "boolean", + "name": "DeleteOnTermination" + }, + "volumeType": { + "name": "VolumeType" + }, + "iops": { + "type": "integer", + "name": "Iops" + } + }, + "name": "Ebs" + }, + "noDevice": { + "name": "NoDevice" + } + }, + "name": "item" + }, + "name": "BlockDeviceMappings" + }, + "monitoringEnabled": { + "type": "boolean", + "name": "MonitoringEnabled" + }, + "subnetId": { + "name": "SubnetId" + }, + "networkInterfaceSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "networkInterfaceId": { + "name": "NetworkInterfaceId" + }, + "deviceIndex": { + "type": "integer", + "name": "DeviceIndex" + }, + "subnetId": { + "name": "SubnetId" + }, + "description": { + "name": "Description" + }, + "privateIpAddress": { + "name": "PrivateIpAddress" + }, + "SecurityGroupId": { + "type": "list", + "members": { + "name": "SecurityGroupId" + }, + "name": "Groups" + }, + "deleteOnTermination": { + "type": "boolean", + "name": "DeleteOnTermination" + }, + "privateIpAddressesSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "privateIpAddress": { + "name": "PrivateIpAddress" + }, + "primary": { + "type": "boolean", + "name": "Primary" + } + }, + "name": "item" + }, + "name": "PrivateIpAddresses" + }, + "secondaryPrivateIpAddressCount": { + "type": "integer", + "name": "SecondaryPrivateIpAddressCount" + }, + "associatePublicIpAddress": { + "type": "boolean", + "name": "AssociatePublicIpAddress" + } + }, + "name": "item" + }, + "name": "NetworkInterfaces" + }, + "iamInstanceProfile": { + "type": "structure", + "members": { + "arn": { + "name": "Arn" + }, + "name": { + "name": "Name" + } + }, + "name": "IamInstanceProfile" + }, + "ebsOptimized": { + "type": "boolean", + "name": "EbsOptimized" + } + }, + "name": "LaunchSpecification" + }, + "instanceId": { + "name": "InstanceId" + }, + "createTime": { + "type": "timestamp", + "name": "CreateTime" + }, + "productDescription": { + "name": "ProductDescription" + }, + "tagSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "key": { + "name": "Key" + }, + "value": { + "name": "Value" + } + }, + "name": "item" + }, + "name": "Tags" + }, + "launchedAvailabilityZone": { + "name": "LaunchedAvailabilityZone" + } + }, + "name": "item" + }, + "name": "SpotInstanceRequests" + } + } + } + }, + "resetImageAttribute": { + "name": "ResetImageAttribute", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "ImageId": { + "required": true + }, + "Attribute": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "resetInstanceAttribute": { + "name": "ResetInstanceAttribute", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "InstanceId": { + "required": true + }, + "Attribute": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "resetNetworkInterfaceAttribute": { + "name": "ResetNetworkInterfaceAttribute", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "NetworkInterfaceId": { + "required": true + }, + "SourceDestCheck": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "resetSnapshotAttribute": { + "name": "ResetSnapshotAttribute", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "SnapshotId": { + "required": true + }, + "Attribute": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "revokeSecurityGroupEgress": { + "name": "RevokeSecurityGroupEgress", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "GroupId": { + "required": true + }, + "SourceSecurityGroupName": {}, + "SourceSecurityGroupOwnerId": {}, + "IpProtocol": {}, + "FromPort": { + "type": "integer" + }, + "ToPort": { + "type": "integer" + }, + "CidrIp": {}, + "IpPermissions": { + "type": "list", + "members": { + "type": "structure", + "members": { + "IpProtocol": {}, + "FromPort": { + "type": "integer" + }, + "ToPort": { + "type": "integer" + }, + "UserIdGroupPairs": { + "type": "list", + "members": { + "type": "structure", + "members": { + "UserId": {}, + "GroupName": {}, + "GroupId": {} + }, + "name": "Groups" + }, + "flattened": true + }, + "IpRanges": { + "type": "list", + "members": { + "type": "structure", + "members": { + "CidrIp": {} + } + }, + "flattened": true + } + } + }, + "flattened": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "revokeSecurityGroupIngress": { + "name": "RevokeSecurityGroupIngress", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "GroupName": {}, + "GroupId": {}, + "SourceSecurityGroupName": {}, + "SourceSecurityGroupOwnerId": {}, + "IpProtocol": {}, + "FromPort": { + "type": "integer" + }, + "ToPort": { + "type": "integer" + }, + "CidrIp": {}, + "IpPermissions": { + "type": "list", + "members": { + "type": "structure", + "members": { + "IpProtocol": {}, + "FromPort": { + "type": "integer" + }, + "ToPort": { + "type": "integer" + }, + "UserIdGroupPairs": { + "type": "list", + "members": { + "type": "structure", + "members": { + "UserId": {}, + "GroupName": {}, + "GroupId": {} + }, + "name": "Groups" + }, + "flattened": true + }, + "IpRanges": { + "type": "list", + "members": { + "type": "structure", + "members": { + "CidrIp": {} + } + }, + "flattened": true + } + } + }, + "flattened": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "runInstances": { + "name": "RunInstances", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "ImageId": { + "required": true + }, + "MinCount": { + "type": "integer", + "required": true + }, + "MaxCount": { + "type": "integer", + "required": true + }, + "KeyName": {}, + "SecurityGroups": { + "type": "list", + "members": { + "name": "SecurityGroup" + }, + "flattened": true + }, + "SecurityGroupIds": { + "type": "list", + "members": { + "name": "SecurityGroupId" + }, + "flattened": true + }, + "UserData": {}, + "InstanceType": {}, + "Placement": { + "type": "structure", + "members": { + "AvailabilityZone": {}, + "GroupName": {}, + "Tenancy": {} + } + }, + "KernelId": {}, + "RamdiskId": {}, + "BlockDeviceMappings": { + "type": "list", + "members": { + "type": "structure", + "members": { + "VirtualName": {}, + "DeviceName": {}, + "Ebs": { + "type": "structure", + "members": { + "SnapshotId": {}, + "VolumeSize": { + "type": "integer" + }, + "DeleteOnTermination": { + "type": "boolean" + }, + "VolumeType": {}, + "Iops": { + "type": "integer" + } + } + }, + "NoDevice": {} + }, + "name": "BlockDeviceMapping" + }, + "flattened": true + }, + "Monitoring": { + "type": "structure", + "members": { + "Enabled": { + "type": "boolean", + "required": true + } + } + }, + "SubnetId": {}, + "DisableApiTermination": { + "type": "boolean" + }, + "InstanceInitiatedShutdownBehavior": {}, + "PrivateIpAddress": {}, + "ClientToken": {}, + "AdditionalInfo": {}, + "NetworkInterfaces": { + "type": "list", + "members": { + "type": "structure", + "members": { + "NetworkInterfaceId": {}, + "DeviceIndex": { + "type": "integer" + }, + "SubnetId": {}, + "Description": {}, + "PrivateIpAddress": {}, + "Groups": { + "type": "list", + "members": { + "name": "SecurityGroupId" + }, + "flattened": true + }, + "DeleteOnTermination": { + "type": "boolean" + }, + "PrivateIpAddresses": { + "type": "list", + "members": { + "type": "structure", + "members": { + "PrivateIpAddress": { + "required": true + }, + "Primary": { + "type": "boolean" + } + } + }, + "flattened": true + }, + "SecondaryPrivateIpAddressCount": { + "type": "integer" + }, + "AssociatePublicIpAddress": { + "type": "boolean" + } + }, + "name": "NetworkInterface" + }, + "flattened": true + }, + "IamInstanceProfile": { + "type": "structure", + "members": { + "Arn": {}, + "Name": {} + } + }, + "EbsOptimized": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "reservationId": { + "name": "ReservationId" + }, + "ownerId": { + "name": "OwnerId" + }, + "requesterId": { + "name": "RequesterId" + }, + "groupSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "groupName": { + "name": "GroupName" + }, + "groupId": { + "name": "GroupId" + } + }, + "name": "item" + }, + "name": "Groups" + }, + "instancesSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "instanceId": { + "name": "InstanceId" + }, + "imageId": { + "name": "ImageId" + }, + "instanceState": { + "type": "structure", + "members": { + "code": { + "type": "integer", + "name": "Code" + }, + "name": { + "name": "Name" + } + }, + "name": "State" + }, + "privateDnsName": { + "name": "PrivateDnsName" + }, + "dnsName": { + "name": "PublicDnsName" + }, + "reason": { + "name": "StateTransitionReason" + }, + "keyName": { + "name": "KeyName" + }, + "amiLaunchIndex": { + "type": "integer", + "name": "AmiLaunchIndex" + }, + "productCodes": { + "type": "list", + "members": { + "type": "structure", + "members": { + "productCode": { + "name": "ProductCodeId" + }, + "type": { + "name": "ProductCodeType" + } + }, + "name": "item" + }, + "name": "ProductCodes" + }, + "instanceType": { + "name": "InstanceType" + }, + "launchTime": { + "type": "timestamp", + "name": "LaunchTime" + }, + "placement": { + "type": "structure", + "members": { + "availabilityZone": { + "name": "AvailabilityZone" + }, + "groupName": { + "name": "GroupName" + }, + "tenancy": { + "name": "Tenancy" + } + }, + "name": "Placement" + }, + "kernelId": { + "name": "KernelId" + }, + "ramdiskId": { + "name": "RamdiskId" + }, + "platform": { + "name": "Platform" + }, + "monitoring": { + "type": "structure", + "members": { + "state": { + "name": "State" + } + }, + "name": "Monitoring" + }, + "subnetId": { + "name": "SubnetId" + }, + "vpcId": { + "name": "VpcId" + }, + "privateIpAddress": { + "name": "PrivateIpAddress" + }, + "ipAddress": { + "name": "PublicIpAddress" + }, + "stateReason": { + "type": "structure", + "members": { + "code": { + "name": "Code" + }, + "message": { + "name": "Message" + } + }, + "name": "StateReason" + }, + "architecture": { + "name": "Architecture" + }, + "rootDeviceType": { + "name": "RootDeviceType" + }, + "rootDeviceName": { + "name": "RootDeviceName" + }, + "blockDeviceMapping": { + "type": "list", + "members": { + "type": "structure", + "members": { + "deviceName": { + "name": "DeviceName" + }, + "ebs": { + "type": "structure", + "members": { + "volumeId": { + "name": "VolumeId" + }, + "status": { + "name": "Status" + }, + "attachTime": { + "type": "timestamp", + "name": "AttachTime" + }, + "deleteOnTermination": { + "type": "boolean", + "name": "DeleteOnTermination" + } + }, + "name": "Ebs" + } + }, + "name": "item" + }, + "name": "BlockDeviceMappings" + }, + "virtualizationType": { + "name": "VirtualizationType" + }, + "instanceLifecycle": { + "name": "InstanceLifecycle" + }, + "spotInstanceRequestId": { + "name": "SpotInstanceRequestId" + }, + "clientToken": { + "name": "ClientToken" + }, + "tagSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "key": { + "name": "Key" + }, + "value": { + "name": "Value" + } + }, + "name": "item" + }, + "name": "Tags" + }, + "groupSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "groupName": { + "name": "GroupName" + }, + "groupId": { + "name": "GroupId" + } + }, + "name": "item" + }, + "name": "SecurityGroups" + }, + "sourceDestCheck": { + "type": "boolean", + "name": "SourceDestCheck" + }, + "hypervisor": { + "name": "Hypervisor" + }, + "networkInterfaceSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "networkInterfaceId": { + "name": "NetworkInterfaceId" + }, + "subnetId": { + "name": "SubnetId" + }, + "vpcId": { + "name": "VpcId" + }, + "description": { + "name": "Description" + }, + "ownerId": { + "name": "OwnerId" + }, + "status": { + "name": "Status" + }, + "privateIpAddress": { + "name": "PrivateIpAddress" + }, + "privateDnsName": { + "name": "PrivateDnsName" + }, + "sourceDestCheck": { + "type": "boolean", + "name": "SourceDestCheck" + }, + "groupSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "groupName": { + "name": "GroupName" + }, + "groupId": { + "name": "GroupId" + } + }, + "name": "item" + }, + "name": "Groups" + }, + "attachment": { + "type": "structure", + "members": { + "attachmentId": { + "name": "AttachmentId" + }, + "deviceIndex": { + "type": "integer", + "name": "DeviceIndex" + }, + "status": { + "name": "Status" + }, + "attachTime": { + "type": "timestamp", + "name": "AttachTime" + }, + "deleteOnTermination": { + "type": "boolean", + "name": "DeleteOnTermination" + } + }, + "name": "Attachment" + }, + "association": { + "type": "structure", + "members": { + "publicIp": { + "name": "PublicIp" + }, + "publicDnsName": { + "name": "PublicDnsName" + }, + "ipOwnerId": { + "name": "IpOwnerId" + } + }, + "name": "Association" + }, + "privateIpAddressesSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "privateIpAddress": { + "name": "PrivateIpAddress" + }, + "privateDnsName": { + "name": "PrivateDnsName" + }, + "primary": { + "type": "boolean", + "name": "Primary" + }, + "association": { + "type": "structure", + "members": { + "publicIp": { + "name": "PublicIp" + }, + "publicDnsName": { + "name": "PublicDnsName" + }, + "ipOwnerId": { + "name": "IpOwnerId" + } + }, + "name": "Association" + } + }, + "name": "item" + }, + "name": "PrivateIpAddresses" + } + }, + "name": "item" + }, + "name": "NetworkInterfaces" + }, + "iamInstanceProfile": { + "type": "structure", + "members": { + "arn": { + "name": "Arn" + }, + "id": { + "name": "Id" + } + }, + "name": "IamInstanceProfile" + }, + "ebsOptimized": { + "type": "boolean", + "name": "EbsOptimized" + }, + "sriovNetSupport": { + "name": "SriovNetSupport" + } + }, + "name": "item" + }, + "name": "Instances" + } + }, + "name": "reservation" + } + }, + "startInstances": { + "name": "StartInstances", + "input": { + "type": "structure", + "members": { + "InstanceIds": { + "type": "list", + "members": { + "name": "InstanceId" + }, + "required": true, + "flattened": true + }, + "AdditionalInfo": {}, + "DryRun": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "instancesSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "instanceId": { + "name": "InstanceId" + }, + "currentState": { + "type": "structure", + "members": { + "code": { + "type": "integer", + "name": "Code" + }, + "name": { + "name": "Name" + } + }, + "name": "CurrentState" + }, + "previousState": { + "type": "structure", + "members": { + "code": { + "type": "integer", + "name": "Code" + }, + "name": { + "name": "Name" + } + }, + "name": "PreviousState" + } + }, + "name": "item" + }, + "name": "StartingInstances" + } + } + } + }, + "stopInstances": { + "name": "StopInstances", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "InstanceIds": { + "type": "list", + "members": { + "name": "InstanceId" + }, + "required": true, + "flattened": true + }, + "Force": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "instancesSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "instanceId": { + "name": "InstanceId" + }, + "currentState": { + "type": "structure", + "members": { + "code": { + "type": "integer", + "name": "Code" + }, + "name": { + "name": "Name" + } + }, + "name": "CurrentState" + }, + "previousState": { + "type": "structure", + "members": { + "code": { + "type": "integer", + "name": "Code" + }, + "name": { + "name": "Name" + } + }, + "name": "PreviousState" + } + }, + "name": "item" + }, + "name": "StoppingInstances" + } + } + } + }, + "terminateInstances": { + "name": "TerminateInstances", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "InstanceIds": { + "type": "list", + "members": { + "name": "InstanceId" + }, + "required": true, + "flattened": true + } + } + }, + "output": { + "type": "structure", + "members": { + "instancesSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "instanceId": { + "name": "InstanceId" + }, + "currentState": { + "type": "structure", + "members": { + "code": { + "type": "integer", + "name": "Code" + }, + "name": { + "name": "Name" + } + }, + "name": "CurrentState" + }, + "previousState": { + "type": "structure", + "members": { + "code": { + "type": "integer", + "name": "Code" + }, + "name": { + "name": "Name" + } + }, + "name": "PreviousState" + } + }, + "name": "item" + }, + "name": "TerminatingInstances" + } + } + } + }, + "unassignPrivateIpAddresses": { + "name": "UnassignPrivateIpAddresses", + "input": { + "type": "structure", + "members": { + "NetworkInterfaceId": { + "required": true + }, + "PrivateIpAddresses": { + "type": "list", + "members": { + "name": "PrivateIpAddress" + }, + "required": true, + "flattened": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "unmonitorInstances": { + "name": "UnmonitorInstances", + "input": { + "type": "structure", + "members": { + "DryRun": { + "type": "boolean" + }, + "InstanceIds": { + "type": "list", + "members": { + "name": "InstanceId" + }, + "required": true, + "flattened": true + } + } + }, + "output": { + "type": "structure", + "members": { + "instancesSet": { + "type": "list", + "members": { + "type": "structure", + "members": { + "instanceId": { + "name": "InstanceId" + }, + "monitoring": { + "type": "structure", + "members": { + "state": { + "name": "State" + } + }, + "name": "Monitoring" + } + }, + "name": "item" + }, + "name": "InstanceMonitorings" + } + } + } + } + }, + "pagination": { + "describeAccountAttributes": { + "resultKey": "AccountAttributes" + }, + "describeAddresses": { + "resultKey": "Addresses" + }, + "describeAvailabilityZones": { + "resultKey": "AvailabilityZones" + }, + "describeBundleTasks": { + "resultKey": "BundleTasks" + }, + "describeConversionTasks": { + "resultKey": "ConversionTasks" + }, + "describeCustomerGateways": { + "resultKey": "CustomerGateways" + }, + "describeDhcpOptions": { + "resultKey": "DhcpOptions" + }, + "describeExportTasks": { + "resultKey": "ExportTasks" + }, + "describeImages": { + "resultKey": "Images" + }, + "describeInstanceStatus": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "limitKey": "MaxResults", + "resultKey": "InstanceStatuses" + }, + "describeInstances": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "limitKey": "MaxResults", + "resultKey": "Reservations" + }, + "describeInternetGateways": { + "resultKey": "InternetGateways" + }, + "describeKeyPairs": { + "resultKey": "KeyPairs" + }, + "describeNetworkAcls": { + "resultKey": "NetworkAcls" + }, + "describeNetworkInterfaces": { + "resultKey": "NetworkInterfaces" + }, + "describePlacementGroups": { + "resultKey": "PlacementGroups" + }, + "describeRegions": { + "resultKey": "Regions" + }, + "describeReservedInstances": { + "resultKey": "ReservedInstances" + }, + "describeReservedInstancesListings": { + "resultKey": "ReservedInstancesListings" + }, + "describeReservedInstancesModifications": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "resultKey": "ReservedInstancesModifications" + }, + "describeReservedInstancesOfferings": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "limitKey": "MaxResults", + "resultKey": "ReservedInstancesOfferings" + }, + "describeRouteTables": { + "resultKey": "RouteTables" + }, + "describeSecurityGroups": { + "resultKey": "SecurityGroups" + }, + "describeSnapshots": { + "resultKey": "Snapshots" + }, + "describeSpotInstanceRequests": { + "resultKey": "SpotInstanceRequests" + }, + "describeSpotPriceHistory": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "limitKey": "MaxResults", + "resultKey": "SpotPriceHistory" + }, + "describeSubnets": { + "resultKey": "Subnets" + }, + "describeTags": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "limitKey": "MaxResults", + "resultKey": "Tags" + }, + "describeVolumeStatus": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "limitKey": "MaxResults", + "resultKey": "VolumeStatuses" + }, + "describeVolumes": { + "resultKey": "Volumes" + }, + "describeVpcPeeringConnections": { + "resultKey": "VpcPeeringConnections" + }, + "describeVpcs": { + "resultKey": "Vpcs" + }, + "describeVpnConnections": { + "resultKey": "VpnConnections" + }, + "describeVpnGateways": { + "resultKey": "VpnGateways" + } + }, + "waiters": { + "__default__": { + "interval": 15, + "maxAttempts": 40, + "acceptorType": "output" + }, + "__InstanceState": { + "operation": "DescribeInstances", + "acceptorPath": "Reservations[].Instances[].State.Name" + }, + "instanceRunning": { + "extends": "__InstanceState", + "successValue": "running", + "failureValue": [ + "shutting-down", + "terminated", + "stopping" + ] + }, + "instanceStopped": { + "extends": "__InstanceState", + "successValue": "stopped", + "failureValue": [ + "pending", + "terminated" + ] + }, + "instanceTerminated": { + "extends": "__InstanceState", + "successValue": "terminated", + "failureValue": [ + "pending", + "stopping" + ] + }, + "__ExportTaskState": { + "operation": "DescribeExportTasks", + "acceptorPath": "ExportTasks[].State" + }, + "exportTaskCompleted": { + "extends": "__ExportTaskState", + "successValue": "completed" + }, + "exportTaskCancelled": { + "extends": "__ExportTaskState", + "successValue": "cancelled" + }, + "snapshotCompleted": { + "operation": "DescribeSnapshots", + "successPath": "Snapshots[].State", + "successValue": "completed" + }, + "subnetAvailable": { + "operation": "DescribeSubnets", + "successPath": "Subnets[].State", + "successValue": "available" + }, + "__VolumeStatus": { + "operation": "DescribeVolumes", + "acceptorPath": "VolumeStatuses[].VolumeStatus.Status" + }, + "volumeAvailable": { + "extends": "__VolumeStatus", + "successValue": "available", + "failureValue": [ + "deleted" + ] + }, + "volumeInUse": { + "extends": "__VolumeStatus", + "successValue": "in-use", + "failureValue": [ + "deleted" + ] + }, + "volumeDeleted": { + "extends": "__VolumeStatus", + "successValue": "deleted" + }, + "vpcAvailable": { + "operation": "DescribeVpcs", + "successPath": "Vpcs[].State", + "successValue": "available" + }, + "__VpnConnectionState": { + "operation": "DescribeVpnConnections", + "acceptorPath": "VpnConnections[].State" + }, + "vpnConnectionAvailable": { + "extends": "__VpnConnectionState", + "successValue": "available", + "failureValue": [ + "deleting", + "deleted" + ] + }, + "vpnConnectionDeleted": { + "extends": "__VpnConnectionState", + "successValue": "deleted", + "failureValue": [ + "pending" + ] + }, + "bundleTaskComplete": { + "operation": "DescribeBundleTasks", + "acceptorPath": "BundleTasks[].State", + "successValue": "complete", + "failureValue": [ + "failed" + ] + }, + "__ConversionTaskState": { + "operation": "DescribeConversionTasks", + "acceptorPath": "ConversionTasks[].State" + }, + "conversionTaskCompleted": { + "extends": "__ConversionTaskState", + "successValue": "completed", + "failureValue": [ + "cancelled", + "cancelling" + ] + }, + "conversionTaskCancelled": { + "extends": "__ConversionTaskState", + "successValue": "cancelled" + }, + "__CustomerGatewayState": { + "operation": "DescribeCustomerGateways", + "acceptorPath": "CustomerGateways[].State" + }, + "customerGatewayAvailable": { + "extends": "__CustomerGatewayState", + "successValue": "available", + "failureValue": [ + "deleted", + "deleting" + ] + }, + "conversionTaskDeleted": { + "extends": "__CustomerGatewayState", + "successValue": "deleted" + } + } +} \ No newline at end of file diff --git a/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/ELB-2012-06-01.json b/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/ELB-2012-06-01.json new file mode 100644 index 00000000..7f8c71b7 --- /dev/null +++ b/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/ELB-2012-06-01.json @@ -0,0 +1,985 @@ +{ + "format": "query", + "apiVersion": "2012-06-01", + "endpointPrefix": "elasticloadbalancing", + "resultWrapped": true, + "serviceFullName": "Elastic Load Balancing", + "signatureVersion": "v4", + "timestampFormat": "iso8601", + "operations": { + "applySecurityGroupsToLoadBalancer": { + "name": "ApplySecurityGroupsToLoadBalancer", + "input": { + "type": "structure", + "members": { + "LoadBalancerName": { + "required": true + }, + "SecurityGroups": { + "type": "list", + "members": {}, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "SecurityGroups": { + "type": "list", + "members": {} + } + } + } + }, + "attachLoadBalancerToSubnets": { + "name": "AttachLoadBalancerToSubnets", + "input": { + "type": "structure", + "members": { + "LoadBalancerName": { + "required": true + }, + "Subnets": { + "type": "list", + "members": {}, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "Subnets": { + "type": "list", + "members": {} + } + } + } + }, + "configureHealthCheck": { + "name": "ConfigureHealthCheck", + "input": { + "type": "structure", + "members": { + "LoadBalancerName": { + "required": true + }, + "HealthCheck": { + "type": "structure", + "members": { + "Target": { + "required": true + }, + "Interval": { + "type": "integer", + "required": true + }, + "Timeout": { + "type": "integer", + "required": true + }, + "UnhealthyThreshold": { + "type": "integer", + "required": true + }, + "HealthyThreshold": { + "type": "integer", + "required": true + } + }, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "HealthCheck": { + "type": "structure", + "members": { + "Target": {}, + "Interval": { + "type": "integer" + }, + "Timeout": { + "type": "integer" + }, + "UnhealthyThreshold": { + "type": "integer" + }, + "HealthyThreshold": { + "type": "integer" + } + } + } + } + } + }, + "createAppCookieStickinessPolicy": { + "name": "CreateAppCookieStickinessPolicy", + "input": { + "type": "structure", + "members": { + "LoadBalancerName": { + "required": true + }, + "PolicyName": { + "required": true + }, + "CookieName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "createLBCookieStickinessPolicy": { + "name": "CreateLBCookieStickinessPolicy", + "input": { + "type": "structure", + "members": { + "LoadBalancerName": { + "required": true + }, + "PolicyName": { + "required": true + }, + "CookieExpirationPeriod": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "createLoadBalancer": { + "name": "CreateLoadBalancer", + "input": { + "type": "structure", + "members": { + "LoadBalancerName": { + "required": true + }, + "Listeners": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Protocol": { + "required": true + }, + "LoadBalancerPort": { + "type": "integer", + "required": true + }, + "InstanceProtocol": {}, + "InstancePort": { + "type": "integer", + "required": true + }, + "SSLCertificateId": {} + } + }, + "required": true + }, + "AvailabilityZones": { + "type": "list", + "members": {} + }, + "Subnets": { + "type": "list", + "members": {} + }, + "SecurityGroups": { + "type": "list", + "members": {} + }, + "Scheme": {} + } + }, + "output": { + "type": "structure", + "members": { + "DNSName": {} + } + } + }, + "createLoadBalancerListeners": { + "name": "CreateLoadBalancerListeners", + "input": { + "type": "structure", + "members": { + "LoadBalancerName": { + "required": true + }, + "Listeners": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Protocol": { + "required": true + }, + "LoadBalancerPort": { + "type": "integer", + "required": true + }, + "InstanceProtocol": {}, + "InstancePort": { + "type": "integer", + "required": true + }, + "SSLCertificateId": {} + } + }, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "createLoadBalancerPolicy": { + "name": "CreateLoadBalancerPolicy", + "input": { + "type": "structure", + "members": { + "LoadBalancerName": { + "required": true + }, + "PolicyName": { + "required": true + }, + "PolicyTypeName": { + "required": true + }, + "PolicyAttributes": { + "type": "list", + "members": { + "type": "structure", + "members": { + "AttributeName": {}, + "AttributeValue": {} + } + } + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteLoadBalancer": { + "name": "DeleteLoadBalancer", + "input": { + "type": "structure", + "members": { + "LoadBalancerName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteLoadBalancerListeners": { + "name": "DeleteLoadBalancerListeners", + "input": { + "type": "structure", + "members": { + "LoadBalancerName": { + "required": true + }, + "LoadBalancerPorts": { + "type": "list", + "members": { + "type": "integer" + }, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteLoadBalancerPolicy": { + "name": "DeleteLoadBalancerPolicy", + "input": { + "type": "structure", + "members": { + "LoadBalancerName": { + "required": true + }, + "PolicyName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deregisterInstancesFromLoadBalancer": { + "name": "DeregisterInstancesFromLoadBalancer", + "input": { + "type": "structure", + "members": { + "LoadBalancerName": { + "required": true + }, + "Instances": { + "type": "list", + "members": { + "type": "structure", + "members": { + "InstanceId": {} + } + }, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "Instances": { + "type": "list", + "members": { + "type": "structure", + "members": { + "InstanceId": {} + } + } + } + } + } + }, + "describeInstanceHealth": { + "name": "DescribeInstanceHealth", + "input": { + "type": "structure", + "members": { + "LoadBalancerName": { + "required": true + }, + "Instances": { + "type": "list", + "members": { + "type": "structure", + "members": { + "InstanceId": {} + } + } + } + } + }, + "output": { + "type": "structure", + "members": { + "InstanceStates": { + "type": "list", + "members": { + "type": "structure", + "members": { + "InstanceId": {}, + "State": {}, + "ReasonCode": {}, + "Description": {} + } + } + } + } + } + }, + "describeLoadBalancerAttributes": { + "name": "DescribeLoadBalancerAttributes", + "input": { + "type": "structure", + "members": { + "LoadBalancerName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "LoadBalancerAttributes": { + "type": "structure", + "members": { + "CrossZoneLoadBalancing": { + "type": "structure", + "members": { + "Enabled": { + "type": "boolean" + } + } + }, + "AccessLog": { + "type": "structure", + "members": { + "Enabled": { + "type": "boolean" + }, + "S3BucketName": {}, + "EmitInterval": { + "type": "integer" + }, + "S3BucketPrefix": {} + } + }, + "ConnectionDraining": { + "type": "structure", + "members": { + "Enabled": { + "type": "boolean" + }, + "Timeout": { + "type": "integer" + } + } + } + } + } + } + } + }, + "describeLoadBalancerPolicies": { + "name": "DescribeLoadBalancerPolicies", + "input": { + "type": "structure", + "members": { + "LoadBalancerName": {}, + "PolicyNames": { + "type": "list", + "members": {} + } + } + }, + "output": { + "type": "structure", + "members": { + "PolicyDescriptions": { + "type": "list", + "members": { + "type": "structure", + "members": { + "PolicyName": {}, + "PolicyTypeName": {}, + "PolicyAttributeDescriptions": { + "type": "list", + "members": { + "type": "structure", + "members": { + "AttributeName": {}, + "AttributeValue": {} + } + } + } + } + } + } + } + } + }, + "describeLoadBalancerPolicyTypes": { + "name": "DescribeLoadBalancerPolicyTypes", + "input": { + "type": "structure", + "members": { + "PolicyTypeNames": { + "type": "list", + "members": {} + } + } + }, + "output": { + "type": "structure", + "members": { + "PolicyTypeDescriptions": { + "type": "list", + "members": { + "type": "structure", + "members": { + "PolicyTypeName": {}, + "Description": {}, + "PolicyAttributeTypeDescriptions": { + "type": "list", + "members": { + "type": "structure", + "members": { + "AttributeName": {}, + "AttributeType": {}, + "Description": {}, + "DefaultValue": {}, + "Cardinality": {} + } + } + } + } + } + } + } + } + }, + "describeLoadBalancers": { + "name": "DescribeLoadBalancers", + "input": { + "type": "structure", + "members": { + "LoadBalancerNames": { + "type": "list", + "members": {} + }, + "Marker": {} + } + }, + "output": { + "type": "structure", + "members": { + "LoadBalancerDescriptions": { + "type": "list", + "members": { + "type": "structure", + "members": { + "LoadBalancerName": {}, + "DNSName": {}, + "CanonicalHostedZoneName": {}, + "CanonicalHostedZoneNameID": {}, + "ListenerDescriptions": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Listener": { + "type": "structure", + "members": { + "Protocol": {}, + "LoadBalancerPort": { + "type": "integer" + }, + "InstanceProtocol": {}, + "InstancePort": { + "type": "integer" + }, + "SSLCertificateId": {} + } + }, + "PolicyNames": { + "type": "list", + "members": {} + } + } + } + }, + "Policies": { + "type": "structure", + "members": { + "AppCookieStickinessPolicies": { + "type": "list", + "members": { + "type": "structure", + "members": { + "PolicyName": {}, + "CookieName": {} + } + } + }, + "LBCookieStickinessPolicies": { + "type": "list", + "members": { + "type": "structure", + "members": { + "PolicyName": {}, + "CookieExpirationPeriod": { + "type": "integer" + } + } + } + }, + "OtherPolicies": { + "type": "list", + "members": {} + } + } + }, + "BackendServerDescriptions": { + "type": "list", + "members": { + "type": "structure", + "members": { + "InstancePort": { + "type": "integer" + }, + "PolicyNames": { + "type": "list", + "members": {} + } + } + } + }, + "AvailabilityZones": { + "type": "list", + "members": {} + }, + "Subnets": { + "type": "list", + "members": {} + }, + "VPCId": {}, + "Instances": { + "type": "list", + "members": { + "type": "structure", + "members": { + "InstanceId": {} + } + } + }, + "HealthCheck": { + "type": "structure", + "members": { + "Target": {}, + "Interval": { + "type": "integer" + }, + "Timeout": { + "type": "integer" + }, + "UnhealthyThreshold": { + "type": "integer" + }, + "HealthyThreshold": { + "type": "integer" + } + } + }, + "SourceSecurityGroup": { + "type": "structure", + "members": { + "OwnerAlias": {}, + "GroupName": {} + } + }, + "SecurityGroups": { + "type": "list", + "members": {} + }, + "CreatedTime": { + "type": "timestamp" + }, + "Scheme": {} + } + } + }, + "NextMarker": {} + } + } + }, + "detachLoadBalancerFromSubnets": { + "name": "DetachLoadBalancerFromSubnets", + "input": { + "type": "structure", + "members": { + "LoadBalancerName": { + "required": true + }, + "Subnets": { + "type": "list", + "members": {}, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "Subnets": { + "type": "list", + "members": {} + } + } + } + }, + "disableAvailabilityZonesForLoadBalancer": { + "name": "DisableAvailabilityZonesForLoadBalancer", + "input": { + "type": "structure", + "members": { + "LoadBalancerName": { + "required": true + }, + "AvailabilityZones": { + "type": "list", + "members": {}, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "AvailabilityZones": { + "type": "list", + "members": {} + } + } + } + }, + "enableAvailabilityZonesForLoadBalancer": { + "name": "EnableAvailabilityZonesForLoadBalancer", + "input": { + "type": "structure", + "members": { + "LoadBalancerName": { + "required": true + }, + "AvailabilityZones": { + "type": "list", + "members": {}, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "AvailabilityZones": { + "type": "list", + "members": {} + } + } + } + }, + "modifyLoadBalancerAttributes": { + "name": "ModifyLoadBalancerAttributes", + "input": { + "type": "structure", + "members": { + "LoadBalancerName": { + "required": true + }, + "LoadBalancerAttributes": { + "type": "structure", + "members": { + "CrossZoneLoadBalancing": { + "type": "structure", + "members": { + "Enabled": { + "type": "boolean", + "required": true + } + } + }, + "AccessLog": { + "type": "structure", + "members": { + "Enabled": { + "type": "boolean", + "required": true + }, + "S3BucketName": {}, + "EmitInterval": { + "type": "integer" + }, + "S3BucketPrefix": {} + } + }, + "ConnectionDraining": { + "type": "structure", + "members": { + "Enabled": { + "type": "boolean", + "required": true + }, + "Timeout": { + "type": "integer" + } + } + } + }, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "LoadBalancerName": {}, + "LoadBalancerAttributes": { + "type": "structure", + "members": { + "CrossZoneLoadBalancing": { + "type": "structure", + "members": { + "Enabled": { + "type": "boolean" + } + } + }, + "AccessLog": { + "type": "structure", + "members": { + "Enabled": { + "type": "boolean" + }, + "S3BucketName": {}, + "EmitInterval": { + "type": "integer" + }, + "S3BucketPrefix": {} + } + }, + "ConnectionDraining": { + "type": "structure", + "members": { + "Enabled": { + "type": "boolean" + }, + "Timeout": { + "type": "integer" + } + } + } + } + } + } + } + }, + "registerInstancesWithLoadBalancer": { + "name": "RegisterInstancesWithLoadBalancer", + "input": { + "type": "structure", + "members": { + "LoadBalancerName": { + "required": true + }, + "Instances": { + "type": "list", + "members": { + "type": "structure", + "members": { + "InstanceId": {} + } + }, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "Instances": { + "type": "list", + "members": { + "type": "structure", + "members": { + "InstanceId": {} + } + } + } + } + } + }, + "setLoadBalancerListenerSSLCertificate": { + "name": "SetLoadBalancerListenerSSLCertificate", + "input": { + "type": "structure", + "members": { + "LoadBalancerName": { + "required": true + }, + "LoadBalancerPort": { + "type": "integer", + "required": true + }, + "SSLCertificateId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "setLoadBalancerPoliciesForBackendServer": { + "name": "SetLoadBalancerPoliciesForBackendServer", + "input": { + "type": "structure", + "members": { + "LoadBalancerName": { + "required": true + }, + "InstancePort": { + "type": "integer", + "required": true + }, + "PolicyNames": { + "type": "list", + "members": {}, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "setLoadBalancerPoliciesOfListener": { + "name": "SetLoadBalancerPoliciesOfListener", + "input": { + "type": "structure", + "members": { + "LoadBalancerName": { + "required": true + }, + "LoadBalancerPort": { + "type": "integer", + "required": true + }, + "PolicyNames": { + "type": "list", + "members": {}, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + } + }, + "pagination": { + "describeInstanceHealth": { + "resultKey": "InstanceStates" + }, + "describeLoadBalancerPolicies": { + "resultKey": "PolicyDescriptions" + }, + "describeLoadBalancerPolicyTypes": { + "resultKey": "PolicyTypeDescriptions" + }, + "describeLoadBalancers": { + "inputToken": "Marker", + "outputToken": "NextMarker", + "resultKey": "LoadBalancerDescriptions" + } + } +} \ No newline at end of file diff --git a/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/EMR-2009-03-31.json b/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/EMR-2009-03-31.json new file mode 100644 index 00000000..7bf50f62 --- /dev/null +++ b/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/EMR-2009-03-31.json @@ -0,0 +1,1076 @@ +{ + "format": "json", + "apiVersion": "2009-03-31", + "endpointPrefix": "elasticmapreduce", + "jsonVersion": "1.1", + "serviceAbbreviation": "Amazon EMR", + "serviceFullName": "Amazon Elastic MapReduce", + "signatureVersion": "v4", + "targetPrefix": "ElasticMapReduce", + "timestampFormat": "unixTimestamp", + "operations": { + "addInstanceGroups": { + "name": "AddInstanceGroups", + "input": { + "type": "structure", + "members": { + "InstanceGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": {}, + "Market": {}, + "InstanceRole": { + "required": true + }, + "BidPrice": {}, + "InstanceType": { + "required": true + }, + "InstanceCount": { + "type": "integer", + "required": true + } + } + }, + "required": true + }, + "JobFlowId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "JobFlowId": {}, + "InstanceGroupIds": { + "type": "list", + "members": {} + } + } + } + }, + "addJobFlowSteps": { + "name": "AddJobFlowSteps", + "input": { + "type": "structure", + "members": { + "JobFlowId": { + "required": true + }, + "Steps": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": { + "required": true + }, + "ActionOnFailure": {}, + "HadoopJarStep": { + "type": "structure", + "members": { + "Properties": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Key": {}, + "Value": {} + } + } + }, + "Jar": { + "required": true + }, + "MainClass": {}, + "Args": { + "type": "list", + "members": {} + } + }, + "required": true + } + } + }, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "StepIds": { + "type": "list", + "members": {} + } + } + } + }, + "addTags": { + "name": "AddTags", + "input": { + "type": "structure", + "members": { + "ResourceId": {}, + "Tags": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Key": {}, + "Value": {} + } + } + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "describeCluster": { + "name": "DescribeCluster", + "input": { + "type": "structure", + "members": { + "ClusterId": {} + } + }, + "output": { + "type": "structure", + "members": { + "Cluster": { + "type": "structure", + "members": { + "Id": {}, + "Name": {}, + "Status": { + "type": "structure", + "members": { + "State": {}, + "StateChangeReason": { + "type": "structure", + "members": { + "Code": {}, + "Message": {} + } + }, + "Timeline": { + "type": "structure", + "members": { + "CreationDateTime": { + "type": "timestamp" + }, + "ReadyDateTime": { + "type": "timestamp" + }, + "EndDateTime": { + "type": "timestamp" + } + } + } + } + }, + "Ec2InstanceAttributes": { + "type": "structure", + "members": { + "Ec2KeyName": {}, + "Ec2SubnetId": {}, + "Ec2AvailabilityZone": {}, + "IamInstanceProfile": {} + } + }, + "LogUri": {}, + "RequestedAmiVersion": {}, + "RunningAmiVersion": {}, + "AutoTerminate": { + "type": "boolean" + }, + "TerminationProtected": { + "type": "boolean" + }, + "VisibleToAllUsers": { + "type": "boolean" + }, + "Applications": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": {}, + "Version": {}, + "Args": { + "type": "list", + "members": {} + }, + "AdditionalInfo": { + "type": "map", + "keys": {}, + "members": {} + } + } + } + }, + "Tags": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Key": {}, + "Value": {} + } + } + } + } + } + } + } + }, + "describeJobFlows": { + "name": "DescribeJobFlows", + "input": { + "type": "structure", + "members": { + "CreatedAfter": { + "type": "timestamp" + }, + "CreatedBefore": { + "type": "timestamp" + }, + "JobFlowIds": { + "type": "list", + "members": {} + }, + "JobFlowStates": { + "type": "list", + "members": {} + } + } + }, + "output": { + "type": "structure", + "members": { + "JobFlows": { + "type": "list", + "members": { + "type": "structure", + "members": { + "JobFlowId": {}, + "Name": {}, + "LogUri": {}, + "AmiVersion": {}, + "ExecutionStatusDetail": { + "type": "structure", + "members": { + "State": {}, + "CreationDateTime": { + "type": "timestamp" + }, + "StartDateTime": { + "type": "timestamp" + }, + "ReadyDateTime": { + "type": "timestamp" + }, + "EndDateTime": { + "type": "timestamp" + }, + "LastStateChangeReason": {} + } + }, + "Instances": { + "type": "structure", + "members": { + "MasterInstanceType": {}, + "MasterPublicDnsName": {}, + "MasterInstanceId": {}, + "SlaveInstanceType": {}, + "InstanceCount": { + "type": "integer" + }, + "InstanceGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "InstanceGroupId": {}, + "Name": {}, + "Market": {}, + "InstanceRole": {}, + "BidPrice": {}, + "InstanceType": {}, + "InstanceRequestCount": { + "type": "integer" + }, + "InstanceRunningCount": { + "type": "integer" + }, + "State": {}, + "LastStateChangeReason": {}, + "CreationDateTime": { + "type": "timestamp" + }, + "StartDateTime": { + "type": "timestamp" + }, + "ReadyDateTime": { + "type": "timestamp" + }, + "EndDateTime": { + "type": "timestamp" + } + } + } + }, + "NormalizedInstanceHours": { + "type": "integer" + }, + "Ec2KeyName": {}, + "Ec2SubnetId": {}, + "Placement": { + "type": "structure", + "members": { + "AvailabilityZone": {} + } + }, + "KeepJobFlowAliveWhenNoSteps": { + "type": "boolean" + }, + "TerminationProtected": { + "type": "boolean" + }, + "HadoopVersion": {} + } + }, + "Steps": { + "type": "list", + "members": { + "type": "structure", + "members": { + "StepConfig": { + "type": "structure", + "members": { + "Name": {}, + "ActionOnFailure": {}, + "HadoopJarStep": { + "type": "structure", + "members": { + "Properties": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Key": {}, + "Value": {} + } + } + }, + "Jar": {}, + "MainClass": {}, + "Args": { + "type": "list", + "members": {} + } + } + } + } + }, + "ExecutionStatusDetail": { + "type": "structure", + "members": { + "State": {}, + "CreationDateTime": { + "type": "timestamp" + }, + "StartDateTime": { + "type": "timestamp" + }, + "EndDateTime": { + "type": "timestamp" + }, + "LastStateChangeReason": {} + } + } + } + } + }, + "BootstrapActions": { + "type": "list", + "members": { + "type": "structure", + "members": { + "BootstrapActionConfig": { + "type": "structure", + "members": { + "Name": {}, + "ScriptBootstrapAction": { + "type": "structure", + "members": { + "Path": {}, + "Args": { + "type": "list", + "members": {} + } + } + } + } + } + } + } + }, + "SupportedProducts": { + "type": "list", + "members": {} + }, + "VisibleToAllUsers": { + "type": "boolean" + }, + "JobFlowRole": {} + } + } + } + } + } + }, + "describeStep": { + "name": "DescribeStep", + "input": { + "type": "structure", + "members": { + "ClusterId": {}, + "StepId": {} + } + }, + "output": { + "type": "structure", + "members": { + "Step": { + "type": "structure", + "members": { + "Id": {}, + "Name": {}, + "Config": { + "type": "structure", + "members": { + "Jar": {}, + "Properties": { + "type": "map", + "keys": {}, + "members": {} + }, + "MainClass": {}, + "Args": { + "type": "list", + "members": {} + } + } + }, + "ActionOnFailure": {}, + "Status": { + "type": "structure", + "members": { + "State": {}, + "StateChangeReason": { + "type": "structure", + "members": { + "Code": {}, + "Message": {} + } + }, + "Timeline": { + "type": "structure", + "members": { + "CreationDateTime": { + "type": "timestamp" + }, + "StartDateTime": { + "type": "timestamp" + }, + "EndDateTime": { + "type": "timestamp" + } + } + } + } + } + } + } + } + } + }, + "listBootstrapActions": { + "name": "ListBootstrapActions", + "input": { + "type": "structure", + "members": { + "ClusterId": {}, + "Marker": {} + } + }, + "output": { + "type": "structure", + "members": { + "BootstrapActions": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": {}, + "ScriptPath": {}, + "Args": { + "type": "list", + "members": {} + } + } + } + }, + "Marker": {} + } + } + }, + "listClusters": { + "name": "ListClusters", + "input": { + "type": "structure", + "members": { + "CreatedAfter": { + "type": "timestamp" + }, + "CreatedBefore": { + "type": "timestamp" + }, + "ClusterStates": { + "type": "list", + "members": {} + }, + "Marker": {} + } + }, + "output": { + "type": "structure", + "members": { + "Clusters": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Id": {}, + "Name": {}, + "Status": { + "type": "structure", + "members": { + "State": {}, + "StateChangeReason": { + "type": "structure", + "members": { + "Code": {}, + "Message": {} + } + }, + "Timeline": { + "type": "structure", + "members": { + "CreationDateTime": { + "type": "timestamp" + }, + "ReadyDateTime": { + "type": "timestamp" + }, + "EndDateTime": { + "type": "timestamp" + } + } + } + } + } + } + } + }, + "Marker": {} + } + } + }, + "listInstanceGroups": { + "name": "ListInstanceGroups", + "input": { + "type": "structure", + "members": { + "ClusterId": {}, + "Marker": {} + } + }, + "output": { + "type": "structure", + "members": { + "InstanceGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Id": {}, + "Name": {}, + "Market": {}, + "InstanceGroupType": {}, + "BidPrice": {}, + "InstanceType": {}, + "RequestedInstanceCount": { + "type": "integer" + }, + "RunningInstanceCount": { + "type": "integer" + }, + "Status": { + "type": "structure", + "members": { + "State": {}, + "StateChangeReason": { + "type": "structure", + "members": { + "Code": {}, + "Message": {} + } + }, + "Timeline": { + "type": "structure", + "members": { + "CreationDateTime": { + "type": "timestamp" + }, + "ReadyDateTime": { + "type": "timestamp" + }, + "EndDateTime": { + "type": "timestamp" + } + } + } + } + } + } + } + }, + "Marker": {} + } + } + }, + "listInstances": { + "name": "ListInstances", + "input": { + "type": "structure", + "members": { + "ClusterId": {}, + "InstanceGroupId": {}, + "InstanceGroupTypes": { + "type": "list", + "members": {} + }, + "Marker": {} + } + }, + "output": { + "type": "structure", + "members": { + "Instances": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Id": {}, + "Ec2InstanceId": {}, + "PublicDnsName": {}, + "PublicIpAddress": {}, + "PrivateDnsName": {}, + "PrivateIpAddress": {}, + "Status": { + "type": "structure", + "members": { + "State": {}, + "StateChangeReason": { + "type": "structure", + "members": { + "Code": {}, + "Message": {} + } + }, + "Timeline": { + "type": "structure", + "members": { + "CreationDateTime": { + "type": "timestamp" + }, + "ReadyDateTime": { + "type": "timestamp" + }, + "EndDateTime": { + "type": "timestamp" + } + } + } + } + } + } + } + }, + "Marker": {} + } + } + }, + "listSteps": { + "name": "ListSteps", + "input": { + "type": "structure", + "members": { + "ClusterId": {}, + "StepStates": { + "type": "list", + "members": {} + }, + "Marker": {} + } + }, + "output": { + "type": "structure", + "members": { + "Steps": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Id": {}, + "Name": {}, + "Status": { + "type": "structure", + "members": { + "State": {}, + "StateChangeReason": { + "type": "structure", + "members": { + "Code": {}, + "Message": {} + } + }, + "Timeline": { + "type": "structure", + "members": { + "CreationDateTime": { + "type": "timestamp" + }, + "StartDateTime": { + "type": "timestamp" + }, + "EndDateTime": { + "type": "timestamp" + } + } + } + } + } + } + } + }, + "Marker": {} + } + } + }, + "modifyInstanceGroups": { + "name": "ModifyInstanceGroups", + "input": { + "type": "structure", + "members": { + "InstanceGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "InstanceGroupId": { + "required": true + }, + "InstanceCount": { + "type": "integer" + }, + "EC2InstanceIdsToTerminate": { + "type": "list", + "members": {} + } + } + } + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "removeTags": { + "name": "RemoveTags", + "input": { + "type": "structure", + "members": { + "ResourceId": {}, + "TagKeys": { + "type": "list", + "members": {} + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "runJobFlow": { + "name": "RunJobFlow", + "input": { + "type": "structure", + "members": { + "Name": { + "required": true + }, + "LogUri": {}, + "AdditionalInfo": {}, + "AmiVersion": {}, + "Instances": { + "type": "structure", + "members": { + "MasterInstanceType": {}, + "SlaveInstanceType": {}, + "InstanceCount": { + "type": "integer" + }, + "InstanceGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": {}, + "Market": {}, + "InstanceRole": { + "required": true + }, + "BidPrice": {}, + "InstanceType": { + "required": true + }, + "InstanceCount": { + "type": "integer", + "required": true + } + } + } + }, + "Ec2KeyName": {}, + "Placement": { + "type": "structure", + "members": { + "AvailabilityZone": { + "required": true + } + } + }, + "KeepJobFlowAliveWhenNoSteps": { + "type": "boolean" + }, + "TerminationProtected": { + "type": "boolean" + }, + "HadoopVersion": {}, + "Ec2SubnetId": {} + }, + "required": true + }, + "Steps": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": { + "required": true + }, + "ActionOnFailure": {}, + "HadoopJarStep": { + "type": "structure", + "members": { + "Properties": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Key": {}, + "Value": {} + } + } + }, + "Jar": { + "required": true + }, + "MainClass": {}, + "Args": { + "type": "list", + "members": {} + } + }, + "required": true + } + } + } + }, + "BootstrapActions": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": { + "required": true + }, + "ScriptBootstrapAction": { + "type": "structure", + "members": { + "Path": { + "required": true + }, + "Args": { + "type": "list", + "members": {} + } + }, + "required": true + } + } + } + }, + "SupportedProducts": { + "type": "list", + "members": {} + }, + "NewSupportedProducts": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": {}, + "Args": { + "type": "list", + "members": {} + } + } + } + }, + "VisibleToAllUsers": { + "type": "boolean" + }, + "JobFlowRole": {}, + "Tags": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Key": {}, + "Value": {} + } + } + } + } + }, + "output": { + "type": "structure", + "members": { + "JobFlowId": {} + } + } + }, + "setTerminationProtection": { + "name": "SetTerminationProtection", + "input": { + "type": "structure", + "members": { + "JobFlowIds": { + "type": "list", + "members": {}, + "required": true + }, + "TerminationProtected": { + "type": "boolean", + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "setVisibleToAllUsers": { + "name": "SetVisibleToAllUsers", + "input": { + "type": "structure", + "members": { + "JobFlowIds": { + "type": "list", + "members": {}, + "required": true + }, + "VisibleToAllUsers": { + "type": "boolean", + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "terminateJobFlows": { + "name": "TerminateJobFlows", + "input": { + "type": "structure", + "members": { + "JobFlowIds": { + "type": "list", + "members": {}, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + } + }, + "pagination": { + "describeJobFlows": { + "resultKey": "JobFlows" + }, + "listBootstrapActions": { + "inputToken": "Marker", + "outputToken": "Marker", + "resultKey": "BootstrapActions" + }, + "listClusters": { + "inputToken": "Marker", + "outputToken": "Marker", + "resultKey": "Clusters" + }, + "listInstanceGroups": { + "inputToken": "Marker", + "outputToken": "Marker", + "resultKey": "InstanceGroups" + }, + "listInstances": { + "inputToken": "Marker", + "outputToken": "Marker", + "resultKey": "Instances" + }, + "listSteps": { + "inputToken": "Marker", + "outputToken": "Marker", + "resultKey": "Steps" + } + } +} \ No newline at end of file diff --git a/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/ElastiCache-2013-06-15.json b/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/ElastiCache-2013-06-15.json new file mode 100644 index 00000000..57363750 --- /dev/null +++ b/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/ElastiCache-2013-06-15.json @@ -0,0 +1,2055 @@ +{ + "format": "query", + "apiVersion": "2013-06-15", + "endpointPrefix": "elasticache", + "resultWrapped": true, + "serviceFullName": "Amazon ElastiCache", + "signatureVersion": "v4", + "timestampFormat": "iso8601", + "operations": { + "authorizeCacheSecurityGroupIngress": { + "name": "AuthorizeCacheSecurityGroupIngress", + "input": { + "type": "structure", + "members": { + "CacheSecurityGroupName": { + "required": true + }, + "EC2SecurityGroupName": { + "required": true + }, + "EC2SecurityGroupOwnerId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "CacheSecurityGroup": { + "type": "structure", + "members": { + "OwnerId": {}, + "CacheSecurityGroupName": {}, + "Description": {}, + "EC2SecurityGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Status": {}, + "EC2SecurityGroupName": {}, + "EC2SecurityGroupOwnerId": {} + }, + "name": "EC2SecurityGroup" + } + } + } + } + } + } + }, + "createCacheCluster": { + "name": "CreateCacheCluster", + "input": { + "type": "structure", + "members": { + "CacheClusterId": { + "required": true + }, + "ReplicationGroupId": {}, + "NumCacheNodes": { + "type": "integer" + }, + "CacheNodeType": {}, + "Engine": {}, + "EngineVersion": {}, + "CacheParameterGroupName": {}, + "CacheSubnetGroupName": {}, + "CacheSecurityGroupNames": { + "type": "list", + "members": { + "name": "CacheSecurityGroupName" + } + }, + "SecurityGroupIds": { + "type": "list", + "members": { + "name": "SecurityGroupId" + } + }, + "SnapshotArns": { + "type": "list", + "members": { + "name": "SnapshotArn" + } + }, + "PreferredAvailabilityZone": {}, + "PreferredMaintenanceWindow": {}, + "Port": { + "type": "integer" + }, + "NotificationTopicArn": {}, + "AutoMinorVersionUpgrade": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "CacheCluster": { + "type": "structure", + "members": { + "CacheClusterId": {}, + "ConfigurationEndpoint": { + "type": "structure", + "members": { + "Address": {}, + "Port": { + "type": "integer" + } + } + }, + "ClientDownloadLandingPage": {}, + "CacheNodeType": {}, + "Engine": {}, + "EngineVersion": {}, + "CacheClusterStatus": {}, + "NumCacheNodes": { + "type": "integer" + }, + "PreferredAvailabilityZone": {}, + "CacheClusterCreateTime": { + "type": "timestamp" + }, + "PreferredMaintenanceWindow": {}, + "PendingModifiedValues": { + "type": "structure", + "members": { + "NumCacheNodes": { + "type": "integer" + }, + "CacheNodeIdsToRemove": { + "type": "list", + "members": { + "name": "CacheNodeId" + } + }, + "EngineVersion": {} + } + }, + "NotificationConfiguration": { + "type": "structure", + "members": { + "TopicArn": {}, + "TopicStatus": {} + } + }, + "CacheSecurityGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "CacheSecurityGroupName": {}, + "Status": {} + }, + "name": "CacheSecurityGroup" + } + }, + "CacheParameterGroup": { + "type": "structure", + "members": { + "CacheParameterGroupName": {}, + "ParameterApplyStatus": {}, + "CacheNodeIdsToReboot": { + "type": "list", + "members": { + "name": "CacheNodeId" + } + } + } + }, + "CacheSubnetGroupName": {}, + "CacheNodes": { + "type": "list", + "members": { + "type": "structure", + "members": { + "CacheNodeId": {}, + "CacheNodeStatus": {}, + "CacheNodeCreateTime": { + "type": "timestamp" + }, + "Endpoint": { + "type": "structure", + "members": { + "Address": {}, + "Port": { + "type": "integer" + } + } + }, + "ParameterGroupStatus": {}, + "SourceCacheNodeId": {} + }, + "name": "CacheNode" + } + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "SecurityGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "SecurityGroupId": {}, + "Status": {} + } + } + }, + "ReplicationGroupId": {} + } + } + } + } + }, + "createCacheParameterGroup": { + "name": "CreateCacheParameterGroup", + "input": { + "type": "structure", + "members": { + "CacheParameterGroupName": { + "required": true + }, + "CacheParameterGroupFamily": { + "required": true + }, + "Description": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "CacheParameterGroup": { + "type": "structure", + "members": { + "CacheParameterGroupName": {}, + "CacheParameterGroupFamily": {}, + "Description": {} + } + } + } + } + }, + "createCacheSecurityGroup": { + "name": "CreateCacheSecurityGroup", + "input": { + "type": "structure", + "members": { + "CacheSecurityGroupName": { + "required": true + }, + "Description": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "CacheSecurityGroup": { + "type": "structure", + "members": { + "OwnerId": {}, + "CacheSecurityGroupName": {}, + "Description": {}, + "EC2SecurityGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Status": {}, + "EC2SecurityGroupName": {}, + "EC2SecurityGroupOwnerId": {} + }, + "name": "EC2SecurityGroup" + } + } + } + } + } + } + }, + "createCacheSubnetGroup": { + "name": "CreateCacheSubnetGroup", + "input": { + "type": "structure", + "members": { + "CacheSubnetGroupName": { + "required": true + }, + "CacheSubnetGroupDescription": { + "required": true + }, + "SubnetIds": { + "type": "list", + "members": { + "name": "SubnetIdentifier" + }, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "CacheSubnetGroup": { + "type": "structure", + "members": { + "CacheSubnetGroupName": {}, + "CacheSubnetGroupDescription": {}, + "VpcId": {}, + "Subnets": { + "type": "list", + "members": { + "type": "structure", + "members": { + "SubnetIdentifier": {}, + "SubnetAvailabilityZone": { + "type": "structure", + "members": { + "Name": {} + } + } + }, + "name": "Subnet" + } + } + } + } + } + } + }, + "createReplicationGroup": { + "name": "CreateReplicationGroup", + "input": { + "type": "structure", + "members": { + "ReplicationGroupId": { + "required": true + }, + "PrimaryClusterId": { + "required": true + }, + "ReplicationGroupDescription": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "ReplicationGroup": { + "type": "structure", + "members": { + "ReplicationGroupId": {}, + "Description": {}, + "Status": {}, + "PendingModifiedValues": { + "type": "structure", + "members": { + "PrimaryClusterId": {} + } + }, + "MemberClusters": { + "type": "list", + "members": { + "name": "ClusterId" + } + }, + "NodeGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "NodeGroupId": {}, + "Status": {}, + "PrimaryEndpoint": { + "type": "structure", + "members": { + "Address": {}, + "Port": { + "type": "integer" + } + } + }, + "NodeGroupMembers": { + "type": "list", + "members": { + "type": "structure", + "members": { + "CacheClusterId": {}, + "CacheNodeId": {}, + "ReadEndpoint": { + "type": "structure", + "members": { + "Address": {}, + "Port": { + "type": "integer" + } + } + }, + "PreferredAvailabilityZone": {}, + "CurrentRole": {} + }, + "name": "NodeGroupMember" + } + } + }, + "name": "NodeGroup" + } + } + } + } + } + } + }, + "deleteCacheCluster": { + "name": "DeleteCacheCluster", + "input": { + "type": "structure", + "members": { + "CacheClusterId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "CacheCluster": { + "type": "structure", + "members": { + "CacheClusterId": {}, + "ConfigurationEndpoint": { + "type": "structure", + "members": { + "Address": {}, + "Port": { + "type": "integer" + } + } + }, + "ClientDownloadLandingPage": {}, + "CacheNodeType": {}, + "Engine": {}, + "EngineVersion": {}, + "CacheClusterStatus": {}, + "NumCacheNodes": { + "type": "integer" + }, + "PreferredAvailabilityZone": {}, + "CacheClusterCreateTime": { + "type": "timestamp" + }, + "PreferredMaintenanceWindow": {}, + "PendingModifiedValues": { + "type": "structure", + "members": { + "NumCacheNodes": { + "type": "integer" + }, + "CacheNodeIdsToRemove": { + "type": "list", + "members": { + "name": "CacheNodeId" + } + }, + "EngineVersion": {} + } + }, + "NotificationConfiguration": { + "type": "structure", + "members": { + "TopicArn": {}, + "TopicStatus": {} + } + }, + "CacheSecurityGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "CacheSecurityGroupName": {}, + "Status": {} + }, + "name": "CacheSecurityGroup" + } + }, + "CacheParameterGroup": { + "type": "structure", + "members": { + "CacheParameterGroupName": {}, + "ParameterApplyStatus": {}, + "CacheNodeIdsToReboot": { + "type": "list", + "members": { + "name": "CacheNodeId" + } + } + } + }, + "CacheSubnetGroupName": {}, + "CacheNodes": { + "type": "list", + "members": { + "type": "structure", + "members": { + "CacheNodeId": {}, + "CacheNodeStatus": {}, + "CacheNodeCreateTime": { + "type": "timestamp" + }, + "Endpoint": { + "type": "structure", + "members": { + "Address": {}, + "Port": { + "type": "integer" + } + } + }, + "ParameterGroupStatus": {}, + "SourceCacheNodeId": {} + }, + "name": "CacheNode" + } + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "SecurityGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "SecurityGroupId": {}, + "Status": {} + } + } + }, + "ReplicationGroupId": {} + } + } + } + } + }, + "deleteCacheParameterGroup": { + "name": "DeleteCacheParameterGroup", + "input": { + "type": "structure", + "members": { + "CacheParameterGroupName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteCacheSecurityGroup": { + "name": "DeleteCacheSecurityGroup", + "input": { + "type": "structure", + "members": { + "CacheSecurityGroupName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteCacheSubnetGroup": { + "name": "DeleteCacheSubnetGroup", + "input": { + "type": "structure", + "members": { + "CacheSubnetGroupName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteReplicationGroup": { + "name": "DeleteReplicationGroup", + "input": { + "type": "structure", + "members": { + "ReplicationGroupId": { + "required": true + }, + "RetainPrimaryCluster": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "ReplicationGroup": { + "type": "structure", + "members": { + "ReplicationGroupId": {}, + "Description": {}, + "Status": {}, + "PendingModifiedValues": { + "type": "structure", + "members": { + "PrimaryClusterId": {} + } + }, + "MemberClusters": { + "type": "list", + "members": { + "name": "ClusterId" + } + }, + "NodeGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "NodeGroupId": {}, + "Status": {}, + "PrimaryEndpoint": { + "type": "structure", + "members": { + "Address": {}, + "Port": { + "type": "integer" + } + } + }, + "NodeGroupMembers": { + "type": "list", + "members": { + "type": "structure", + "members": { + "CacheClusterId": {}, + "CacheNodeId": {}, + "ReadEndpoint": { + "type": "structure", + "members": { + "Address": {}, + "Port": { + "type": "integer" + } + } + }, + "PreferredAvailabilityZone": {}, + "CurrentRole": {} + }, + "name": "NodeGroupMember" + } + } + }, + "name": "NodeGroup" + } + } + } + } + } + } + }, + "describeCacheClusters": { + "name": "DescribeCacheClusters", + "input": { + "type": "structure", + "members": { + "CacheClusterId": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {}, + "ShowCacheNodeInfo": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "Marker": {}, + "CacheClusters": { + "type": "list", + "members": { + "type": "structure", + "members": { + "CacheClusterId": {}, + "ConfigurationEndpoint": { + "type": "structure", + "members": { + "Address": {}, + "Port": { + "type": "integer" + } + } + }, + "ClientDownloadLandingPage": {}, + "CacheNodeType": {}, + "Engine": {}, + "EngineVersion": {}, + "CacheClusterStatus": {}, + "NumCacheNodes": { + "type": "integer" + }, + "PreferredAvailabilityZone": {}, + "CacheClusterCreateTime": { + "type": "timestamp" + }, + "PreferredMaintenanceWindow": {}, + "PendingModifiedValues": { + "type": "structure", + "members": { + "NumCacheNodes": { + "type": "integer" + }, + "CacheNodeIdsToRemove": { + "type": "list", + "members": { + "name": "CacheNodeId" + } + }, + "EngineVersion": {} + } + }, + "NotificationConfiguration": { + "type": "structure", + "members": { + "TopicArn": {}, + "TopicStatus": {} + } + }, + "CacheSecurityGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "CacheSecurityGroupName": {}, + "Status": {} + }, + "name": "CacheSecurityGroup" + } + }, + "CacheParameterGroup": { + "type": "structure", + "members": { + "CacheParameterGroupName": {}, + "ParameterApplyStatus": {}, + "CacheNodeIdsToReboot": { + "type": "list", + "members": { + "name": "CacheNodeId" + } + } + } + }, + "CacheSubnetGroupName": {}, + "CacheNodes": { + "type": "list", + "members": { + "type": "structure", + "members": { + "CacheNodeId": {}, + "CacheNodeStatus": {}, + "CacheNodeCreateTime": { + "type": "timestamp" + }, + "Endpoint": { + "type": "structure", + "members": { + "Address": {}, + "Port": { + "type": "integer" + } + } + }, + "ParameterGroupStatus": {}, + "SourceCacheNodeId": {} + }, + "name": "CacheNode" + } + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "SecurityGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "SecurityGroupId": {}, + "Status": {} + } + } + }, + "ReplicationGroupId": {} + }, + "name": "CacheCluster" + } + } + } + } + }, + "describeCacheEngineVersions": { + "name": "DescribeCacheEngineVersions", + "input": { + "type": "structure", + "members": { + "Engine": {}, + "EngineVersion": {}, + "CacheParameterGroupFamily": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {}, + "DefaultOnly": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "Marker": {}, + "CacheEngineVersions": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Engine": {}, + "EngineVersion": {}, + "CacheParameterGroupFamily": {}, + "CacheEngineDescription": {}, + "CacheEngineVersionDescription": {} + }, + "name": "CacheEngineVersion" + } + } + } + } + }, + "describeCacheParameterGroups": { + "name": "DescribeCacheParameterGroups", + "input": { + "type": "structure", + "members": { + "CacheParameterGroupName": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "type": "structure", + "members": { + "Marker": {}, + "CacheParameterGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "CacheParameterGroupName": {}, + "CacheParameterGroupFamily": {}, + "Description": {} + }, + "name": "CacheParameterGroup" + } + } + } + } + }, + "describeCacheParameters": { + "name": "DescribeCacheParameters", + "input": { + "type": "structure", + "members": { + "CacheParameterGroupName": { + "required": true + }, + "Source": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "type": "structure", + "members": { + "Marker": {}, + "Parameters": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ParameterName": {}, + "ParameterValue": {}, + "Description": {}, + "Source": {}, + "DataType": {}, + "AllowedValues": {}, + "IsModifiable": { + "type": "boolean" + }, + "MinimumEngineVersion": {} + }, + "name": "Parameter" + } + }, + "CacheNodeTypeSpecificParameters": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ParameterName": {}, + "Description": {}, + "Source": {}, + "DataType": {}, + "AllowedValues": {}, + "IsModifiable": { + "type": "boolean" + }, + "MinimumEngineVersion": {}, + "CacheNodeTypeSpecificValues": { + "type": "list", + "members": { + "type": "structure", + "members": { + "CacheNodeType": {}, + "Value": {} + }, + "name": "CacheNodeTypeSpecificValue" + } + } + }, + "name": "CacheNodeTypeSpecificParameter" + } + } + } + } + }, + "describeCacheSecurityGroups": { + "name": "DescribeCacheSecurityGroups", + "input": { + "type": "structure", + "members": { + "CacheSecurityGroupName": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "type": "structure", + "members": { + "Marker": {}, + "CacheSecurityGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "OwnerId": {}, + "CacheSecurityGroupName": {}, + "Description": {}, + "EC2SecurityGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Status": {}, + "EC2SecurityGroupName": {}, + "EC2SecurityGroupOwnerId": {} + }, + "name": "EC2SecurityGroup" + } + } + }, + "name": "CacheSecurityGroup" + } + } + } + } + }, + "describeCacheSubnetGroups": { + "name": "DescribeCacheSubnetGroups", + "input": { + "type": "structure", + "members": { + "CacheSubnetGroupName": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "type": "structure", + "members": { + "Marker": {}, + "CacheSubnetGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "CacheSubnetGroupName": {}, + "CacheSubnetGroupDescription": {}, + "VpcId": {}, + "Subnets": { + "type": "list", + "members": { + "type": "structure", + "members": { + "SubnetIdentifier": {}, + "SubnetAvailabilityZone": { + "type": "structure", + "members": { + "Name": {} + } + } + }, + "name": "Subnet" + } + } + }, + "name": "CacheSubnetGroup" + } + } + } + } + }, + "describeEngineDefaultParameters": { + "name": "DescribeEngineDefaultParameters", + "input": { + "type": "structure", + "members": { + "CacheParameterGroupFamily": { + "required": true + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "type": "structure", + "members": { + "EngineDefaults": { + "type": "structure", + "members": { + "CacheParameterGroupFamily": {}, + "Marker": {}, + "Parameters": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ParameterName": {}, + "ParameterValue": {}, + "Description": {}, + "Source": {}, + "DataType": {}, + "AllowedValues": {}, + "IsModifiable": { + "type": "boolean" + }, + "MinimumEngineVersion": {} + }, + "name": "Parameter" + } + }, + "CacheNodeTypeSpecificParameters": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ParameterName": {}, + "Description": {}, + "Source": {}, + "DataType": {}, + "AllowedValues": {}, + "IsModifiable": { + "type": "boolean" + }, + "MinimumEngineVersion": {}, + "CacheNodeTypeSpecificValues": { + "type": "list", + "members": { + "type": "structure", + "members": { + "CacheNodeType": {}, + "Value": {} + }, + "name": "CacheNodeTypeSpecificValue" + } + } + }, + "name": "CacheNodeTypeSpecificParameter" + } + } + } + } + } + } + }, + "describeEvents": { + "name": "DescribeEvents", + "input": { + "type": "structure", + "members": { + "SourceIdentifier": {}, + "SourceType": {}, + "StartTime": { + "type": "timestamp" + }, + "EndTime": { + "type": "timestamp" + }, + "Duration": { + "type": "integer" + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "type": "structure", + "members": { + "Marker": {}, + "Events": { + "type": "list", + "members": { + "type": "structure", + "members": { + "SourceIdentifier": {}, + "SourceType": {}, + "Message": {}, + "Date": { + "type": "timestamp" + } + }, + "name": "Event" + } + } + } + } + }, + "describeReplicationGroups": { + "name": "DescribeReplicationGroups", + "input": { + "type": "structure", + "members": { + "ReplicationGroupId": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "type": "structure", + "members": { + "Marker": {}, + "ReplicationGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ReplicationGroupId": {}, + "Description": {}, + "Status": {}, + "PendingModifiedValues": { + "type": "structure", + "members": { + "PrimaryClusterId": {} + } + }, + "MemberClusters": { + "type": "list", + "members": { + "name": "ClusterId" + } + }, + "NodeGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "NodeGroupId": {}, + "Status": {}, + "PrimaryEndpoint": { + "type": "structure", + "members": { + "Address": {}, + "Port": { + "type": "integer" + } + } + }, + "NodeGroupMembers": { + "type": "list", + "members": { + "type": "structure", + "members": { + "CacheClusterId": {}, + "CacheNodeId": {}, + "ReadEndpoint": { + "type": "structure", + "members": { + "Address": {}, + "Port": { + "type": "integer" + } + } + }, + "PreferredAvailabilityZone": {}, + "CurrentRole": {} + }, + "name": "NodeGroupMember" + } + } + }, + "name": "NodeGroup" + } + } + }, + "name": "ReplicationGroup" + } + } + } + } + }, + "describeReservedCacheNodes": { + "name": "DescribeReservedCacheNodes", + "input": { + "type": "structure", + "members": { + "ReservedCacheNodeId": {}, + "ReservedCacheNodesOfferingId": {}, + "CacheNodeType": {}, + "Duration": {}, + "ProductDescription": {}, + "OfferingType": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "type": "structure", + "members": { + "Marker": {}, + "ReservedCacheNodes": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ReservedCacheNodeId": {}, + "ReservedCacheNodesOfferingId": {}, + "CacheNodeType": {}, + "StartTime": { + "type": "timestamp" + }, + "Duration": { + "type": "integer" + }, + "FixedPrice": { + "type": "float" + }, + "UsagePrice": { + "type": "float" + }, + "CacheNodeCount": { + "type": "integer" + }, + "ProductDescription": {}, + "OfferingType": {}, + "State": {}, + "RecurringCharges": { + "type": "list", + "members": { + "type": "structure", + "members": { + "RecurringChargeAmount": { + "type": "float" + }, + "RecurringChargeFrequency": {} + }, + "name": "RecurringCharge" + } + } + }, + "name": "ReservedCacheNode" + } + } + } + } + }, + "describeReservedCacheNodesOfferings": { + "name": "DescribeReservedCacheNodesOfferings", + "input": { + "type": "structure", + "members": { + "ReservedCacheNodesOfferingId": {}, + "CacheNodeType": {}, + "Duration": {}, + "ProductDescription": {}, + "OfferingType": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "type": "structure", + "members": { + "Marker": {}, + "ReservedCacheNodesOfferings": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ReservedCacheNodesOfferingId": {}, + "CacheNodeType": {}, + "Duration": { + "type": "integer" + }, + "FixedPrice": { + "type": "float" + }, + "UsagePrice": { + "type": "float" + }, + "ProductDescription": {}, + "OfferingType": {}, + "RecurringCharges": { + "type": "list", + "members": { + "type": "structure", + "members": { + "RecurringChargeAmount": { + "type": "float" + }, + "RecurringChargeFrequency": {} + }, + "name": "RecurringCharge" + } + } + }, + "name": "ReservedCacheNodesOffering" + } + } + } + } + }, + "modifyCacheCluster": { + "name": "ModifyCacheCluster", + "input": { + "type": "structure", + "members": { + "CacheClusterId": { + "required": true + }, + "NumCacheNodes": { + "type": "integer" + }, + "CacheNodeIdsToRemove": { + "type": "list", + "members": { + "name": "CacheNodeId" + } + }, + "CacheSecurityGroupNames": { + "type": "list", + "members": { + "name": "CacheSecurityGroupName" + } + }, + "SecurityGroupIds": { + "type": "list", + "members": { + "name": "SecurityGroupId" + } + }, + "PreferredMaintenanceWindow": {}, + "NotificationTopicArn": {}, + "CacheParameterGroupName": {}, + "NotificationTopicStatus": {}, + "ApplyImmediately": { + "type": "boolean" + }, + "EngineVersion": {}, + "AutoMinorVersionUpgrade": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "CacheCluster": { + "type": "structure", + "members": { + "CacheClusterId": {}, + "ConfigurationEndpoint": { + "type": "structure", + "members": { + "Address": {}, + "Port": { + "type": "integer" + } + } + }, + "ClientDownloadLandingPage": {}, + "CacheNodeType": {}, + "Engine": {}, + "EngineVersion": {}, + "CacheClusterStatus": {}, + "NumCacheNodes": { + "type": "integer" + }, + "PreferredAvailabilityZone": {}, + "CacheClusterCreateTime": { + "type": "timestamp" + }, + "PreferredMaintenanceWindow": {}, + "PendingModifiedValues": { + "type": "structure", + "members": { + "NumCacheNodes": { + "type": "integer" + }, + "CacheNodeIdsToRemove": { + "type": "list", + "members": { + "name": "CacheNodeId" + } + }, + "EngineVersion": {} + } + }, + "NotificationConfiguration": { + "type": "structure", + "members": { + "TopicArn": {}, + "TopicStatus": {} + } + }, + "CacheSecurityGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "CacheSecurityGroupName": {}, + "Status": {} + }, + "name": "CacheSecurityGroup" + } + }, + "CacheParameterGroup": { + "type": "structure", + "members": { + "CacheParameterGroupName": {}, + "ParameterApplyStatus": {}, + "CacheNodeIdsToReboot": { + "type": "list", + "members": { + "name": "CacheNodeId" + } + } + } + }, + "CacheSubnetGroupName": {}, + "CacheNodes": { + "type": "list", + "members": { + "type": "structure", + "members": { + "CacheNodeId": {}, + "CacheNodeStatus": {}, + "CacheNodeCreateTime": { + "type": "timestamp" + }, + "Endpoint": { + "type": "structure", + "members": { + "Address": {}, + "Port": { + "type": "integer" + } + } + }, + "ParameterGroupStatus": {}, + "SourceCacheNodeId": {} + }, + "name": "CacheNode" + } + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "SecurityGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "SecurityGroupId": {}, + "Status": {} + } + } + }, + "ReplicationGroupId": {} + } + } + } + } + }, + "modifyCacheParameterGroup": { + "name": "ModifyCacheParameterGroup", + "input": { + "type": "structure", + "members": { + "CacheParameterGroupName": { + "required": true + }, + "ParameterNameValues": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ParameterName": {}, + "ParameterValue": {} + }, + "name": "ParameterNameValue" + }, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "CacheParameterGroupName": {} + } + } + }, + "modifyCacheSubnetGroup": { + "name": "ModifyCacheSubnetGroup", + "input": { + "type": "structure", + "members": { + "CacheSubnetGroupName": { + "required": true + }, + "CacheSubnetGroupDescription": {}, + "SubnetIds": { + "type": "list", + "members": { + "name": "SubnetIdentifier" + } + } + } + }, + "output": { + "type": "structure", + "members": { + "CacheSubnetGroup": { + "type": "structure", + "members": { + "CacheSubnetGroupName": {}, + "CacheSubnetGroupDescription": {}, + "VpcId": {}, + "Subnets": { + "type": "list", + "members": { + "type": "structure", + "members": { + "SubnetIdentifier": {}, + "SubnetAvailabilityZone": { + "type": "structure", + "members": { + "Name": {} + } + } + }, + "name": "Subnet" + } + } + } + } + } + } + }, + "modifyReplicationGroup": { + "name": "ModifyReplicationGroup", + "input": { + "type": "structure", + "members": { + "ReplicationGroupId": { + "required": true + }, + "ReplicationGroupDescription": {}, + "CacheSecurityGroupNames": { + "type": "list", + "members": { + "name": "CacheSecurityGroupName" + } + }, + "SecurityGroupIds": { + "type": "list", + "members": { + "name": "SecurityGroupId" + } + }, + "PreferredMaintenanceWindow": {}, + "NotificationTopicArn": {}, + "CacheParameterGroupName": {}, + "NotificationTopicStatus": {}, + "ApplyImmediately": { + "type": "boolean" + }, + "EngineVersion": {}, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "PrimaryClusterId": {} + } + }, + "output": { + "type": "structure", + "members": { + "ReplicationGroup": { + "type": "structure", + "members": { + "ReplicationGroupId": {}, + "Description": {}, + "Status": {}, + "PendingModifiedValues": { + "type": "structure", + "members": { + "PrimaryClusterId": {} + } + }, + "MemberClusters": { + "type": "list", + "members": { + "name": "ClusterId" + } + }, + "NodeGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "NodeGroupId": {}, + "Status": {}, + "PrimaryEndpoint": { + "type": "structure", + "members": { + "Address": {}, + "Port": { + "type": "integer" + } + } + }, + "NodeGroupMembers": { + "type": "list", + "members": { + "type": "structure", + "members": { + "CacheClusterId": {}, + "CacheNodeId": {}, + "ReadEndpoint": { + "type": "structure", + "members": { + "Address": {}, + "Port": { + "type": "integer" + } + } + }, + "PreferredAvailabilityZone": {}, + "CurrentRole": {} + }, + "name": "NodeGroupMember" + } + } + }, + "name": "NodeGroup" + } + } + } + } + } + } + }, + "purchaseReservedCacheNodesOffering": { + "name": "PurchaseReservedCacheNodesOffering", + "input": { + "type": "structure", + "members": { + "ReservedCacheNodesOfferingId": { + "required": true + }, + "ReservedCacheNodeId": {}, + "CacheNodeCount": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "ReservedCacheNode": { + "type": "structure", + "members": { + "ReservedCacheNodeId": {}, + "ReservedCacheNodesOfferingId": {}, + "CacheNodeType": {}, + "StartTime": { + "type": "timestamp" + }, + "Duration": { + "type": "integer" + }, + "FixedPrice": { + "type": "float" + }, + "UsagePrice": { + "type": "float" + }, + "CacheNodeCount": { + "type": "integer" + }, + "ProductDescription": {}, + "OfferingType": {}, + "State": {}, + "RecurringCharges": { + "type": "list", + "members": { + "type": "structure", + "members": { + "RecurringChargeAmount": { + "type": "float" + }, + "RecurringChargeFrequency": {} + }, + "name": "RecurringCharge" + } + } + } + } + } + } + }, + "rebootCacheCluster": { + "name": "RebootCacheCluster", + "input": { + "type": "structure", + "members": { + "CacheClusterId": { + "required": true + }, + "CacheNodeIdsToReboot": { + "type": "list", + "members": { + "name": "CacheNodeId" + }, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "CacheCluster": { + "type": "structure", + "members": { + "CacheClusterId": {}, + "ConfigurationEndpoint": { + "type": "structure", + "members": { + "Address": {}, + "Port": { + "type": "integer" + } + } + }, + "ClientDownloadLandingPage": {}, + "CacheNodeType": {}, + "Engine": {}, + "EngineVersion": {}, + "CacheClusterStatus": {}, + "NumCacheNodes": { + "type": "integer" + }, + "PreferredAvailabilityZone": {}, + "CacheClusterCreateTime": { + "type": "timestamp" + }, + "PreferredMaintenanceWindow": {}, + "PendingModifiedValues": { + "type": "structure", + "members": { + "NumCacheNodes": { + "type": "integer" + }, + "CacheNodeIdsToRemove": { + "type": "list", + "members": { + "name": "CacheNodeId" + } + }, + "EngineVersion": {} + } + }, + "NotificationConfiguration": { + "type": "structure", + "members": { + "TopicArn": {}, + "TopicStatus": {} + } + }, + "CacheSecurityGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "CacheSecurityGroupName": {}, + "Status": {} + }, + "name": "CacheSecurityGroup" + } + }, + "CacheParameterGroup": { + "type": "structure", + "members": { + "CacheParameterGroupName": {}, + "ParameterApplyStatus": {}, + "CacheNodeIdsToReboot": { + "type": "list", + "members": { + "name": "CacheNodeId" + } + } + } + }, + "CacheSubnetGroupName": {}, + "CacheNodes": { + "type": "list", + "members": { + "type": "structure", + "members": { + "CacheNodeId": {}, + "CacheNodeStatus": {}, + "CacheNodeCreateTime": { + "type": "timestamp" + }, + "Endpoint": { + "type": "structure", + "members": { + "Address": {}, + "Port": { + "type": "integer" + } + } + }, + "ParameterGroupStatus": {}, + "SourceCacheNodeId": {} + }, + "name": "CacheNode" + } + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "SecurityGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "SecurityGroupId": {}, + "Status": {} + } + } + }, + "ReplicationGroupId": {} + } + } + } + } + }, + "resetCacheParameterGroup": { + "name": "ResetCacheParameterGroup", + "input": { + "type": "structure", + "members": { + "CacheParameterGroupName": { + "required": true + }, + "ResetAllParameters": { + "type": "boolean" + }, + "ParameterNameValues": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ParameterName": {}, + "ParameterValue": {} + }, + "name": "ParameterNameValue" + }, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "CacheParameterGroupName": {} + } + } + }, + "revokeCacheSecurityGroupIngress": { + "name": "RevokeCacheSecurityGroupIngress", + "input": { + "type": "structure", + "members": { + "CacheSecurityGroupName": { + "required": true + }, + "EC2SecurityGroupName": { + "required": true + }, + "EC2SecurityGroupOwnerId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "CacheSecurityGroup": { + "type": "structure", + "members": { + "OwnerId": {}, + "CacheSecurityGroupName": {}, + "Description": {}, + "EC2SecurityGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Status": {}, + "EC2SecurityGroupName": {}, + "EC2SecurityGroupOwnerId": {} + }, + "name": "EC2SecurityGroup" + } + } + } + } + } + } + } + }, + "pagination": { + "describeCacheClusters": { + "inputToken": "Marker", + "outputToken": "Marker", + "limitKey": "MaxRecords", + "resultKey": "CacheClusters" + }, + "describeCacheEngineVersions": { + "inputToken": "Marker", + "outputToken": "Marker", + "limitKey": "MaxRecords", + "resultKey": "CacheEngineVersions" + }, + "describeCacheParameterGroups": { + "inputToken": "Marker", + "outputToken": "Marker", + "limitKey": "MaxRecords", + "resultKey": "CacheParameterGroups" + }, + "describeCacheParameters": { + "inputToken": "Marker", + "outputToken": "Marker", + "limitKey": "MaxRecords", + "resultKey": "Parameters" + }, + "describeCacheSecurityGroups": { + "inputToken": "Marker", + "outputToken": "Marker", + "limitKey": "MaxRecords", + "resultKey": "CacheSecurityGroups" + }, + "describeCacheSubnetGroups": { + "inputToken": "Marker", + "outputToken": "Marker", + "limitKey": "MaxRecords", + "resultKey": "CacheSubnetGroups" + }, + "describeEngineDefaultParameters": { + "inputToken": "Marker", + "outputToken": "EngineDefaults.Marker", + "limitKey": "MaxRecords", + "resultKey": "EngineDefaults.Parameters" + }, + "describeEvents": { + "inputToken": "Marker", + "outputToken": "Marker", + "limitKey": "MaxRecords", + "resultKey": "Events" + }, + "describeReservedCacheNodes": { + "inputToken": "Marker", + "outputToken": "Marker", + "limitKey": "MaxRecords", + "resultKey": "ReservedCacheNodes" + }, + "describeReservedCacheNodesOfferings": { + "inputToken": "Marker", + "outputToken": "Marker", + "limitKey": "MaxRecords", + "resultKey": "ReservedCacheNodesOfferings" + }, + "describeReplicationGroups": { + "inputToken": "Marker", + "outputToken": "Marker", + "limitKey": "MaxRecords", + "resultKey": "ReplicationGroups" + } + } +} \ No newline at end of file diff --git a/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/ElasticBeanstalk-2010-12-01.json b/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/ElasticBeanstalk-2010-12-01.json new file mode 100644 index 00000000..0f9bca9f --- /dev/null +++ b/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/ElasticBeanstalk-2010-12-01.json @@ -0,0 +1,1274 @@ +{ + "format": "query", + "apiVersion": "2010-12-01", + "endpointPrefix": "elasticbeanstalk", + "resultWrapped": true, + "serviceAbbreviation": "Elastic Beanstalk", + "serviceFullName": "AWS Elastic Beanstalk", + "signatureVersion": "v4", + "timestampFormat": "iso8601", + "operations": { + "checkDNSAvailability": { + "name": "CheckDNSAvailability", + "input": { + "type": "structure", + "members": { + "CNAMEPrefix": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "Available": { + "type": "boolean" + }, + "FullyQualifiedCNAME": {} + } + } + }, + "createApplication": { + "name": "CreateApplication", + "input": { + "type": "structure", + "members": { + "ApplicationName": { + "required": true + }, + "Description": {} + } + }, + "output": { + "type": "structure", + "members": { + "Application": { + "type": "structure", + "members": { + "ApplicationName": {}, + "Description": {}, + "DateCreated": { + "type": "timestamp" + }, + "DateUpdated": { + "type": "timestamp" + }, + "Versions": { + "type": "list", + "members": {} + }, + "ConfigurationTemplates": { + "type": "list", + "members": {} + } + } + } + } + } + }, + "createApplicationVersion": { + "name": "CreateApplicationVersion", + "input": { + "type": "structure", + "members": { + "ApplicationName": { + "required": true + }, + "VersionLabel": { + "required": true + }, + "Description": {}, + "SourceBundle": { + "type": "structure", + "members": { + "S3Bucket": {}, + "S3Key": {} + } + }, + "AutoCreateApplication": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "ApplicationVersion": { + "type": "structure", + "members": { + "ApplicationName": {}, + "Description": {}, + "VersionLabel": {}, + "SourceBundle": { + "type": "structure", + "members": { + "S3Bucket": {}, + "S3Key": {} + } + }, + "DateCreated": { + "type": "timestamp" + }, + "DateUpdated": { + "type": "timestamp" + } + } + } + } + } + }, + "createConfigurationTemplate": { + "name": "CreateConfigurationTemplate", + "input": { + "type": "structure", + "members": { + "ApplicationName": { + "required": true + }, + "TemplateName": { + "required": true + }, + "SolutionStackName": {}, + "SourceConfiguration": { + "type": "structure", + "members": { + "ApplicationName": {}, + "TemplateName": {} + } + }, + "EnvironmentId": {}, + "Description": {}, + "OptionSettings": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Namespace": {}, + "OptionName": {}, + "Value": {} + } + } + } + } + }, + "output": { + "type": "structure", + "members": { + "SolutionStackName": {}, + "ApplicationName": {}, + "TemplateName": {}, + "Description": {}, + "EnvironmentName": {}, + "DeploymentStatus": {}, + "DateCreated": { + "type": "timestamp" + }, + "DateUpdated": { + "type": "timestamp" + }, + "OptionSettings": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Namespace": {}, + "OptionName": {}, + "Value": {} + } + } + } + } + } + }, + "createEnvironment": { + "name": "CreateEnvironment", + "input": { + "type": "structure", + "members": { + "ApplicationName": { + "required": true + }, + "EnvironmentName": { + "required": true + }, + "Description": {}, + "CNAMEPrefix": {}, + "Tier": { + "type": "structure", + "members": { + "Name": {}, + "Type": {}, + "Version": {} + } + }, + "VersionLabel": {}, + "TemplateName": {}, + "SolutionStackName": {}, + "OptionSettings": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Namespace": {}, + "OptionName": {}, + "Value": {} + } + } + }, + "OptionsToRemove": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Namespace": {}, + "OptionName": {} + } + } + } + } + }, + "output": { + "type": "structure", + "members": { + "EnvironmentName": {}, + "EnvironmentId": {}, + "ApplicationName": {}, + "VersionLabel": {}, + "SolutionStackName": {}, + "TemplateName": {}, + "Description": {}, + "EndpointURL": {}, + "CNAME": {}, + "DateCreated": { + "type": "timestamp" + }, + "DateUpdated": { + "type": "timestamp" + }, + "Status": {}, + "Health": {}, + "Resources": { + "type": "structure", + "members": { + "LoadBalancer": { + "type": "structure", + "members": { + "LoadBalancerName": {}, + "Domain": {}, + "Listeners": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Protocol": {}, + "Port": { + "type": "integer" + } + } + } + } + } + } + } + }, + "Tier": { + "type": "structure", + "members": { + "Name": {}, + "Type": {}, + "Version": {} + } + } + } + } + }, + "createStorageLocation": { + "name": "CreateStorageLocation", + "input": { + "type": "structure", + "members": {} + }, + "output": { + "type": "structure", + "members": { + "S3Bucket": {} + } + } + }, + "deleteApplication": { + "name": "DeleteApplication", + "input": { + "type": "structure", + "members": { + "ApplicationName": { + "required": true + }, + "TerminateEnvByForce": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteApplicationVersion": { + "name": "DeleteApplicationVersion", + "input": { + "type": "structure", + "members": { + "ApplicationName": { + "required": true + }, + "VersionLabel": { + "required": true + }, + "DeleteSourceBundle": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteConfigurationTemplate": { + "name": "DeleteConfigurationTemplate", + "input": { + "type": "structure", + "members": { + "ApplicationName": { + "required": true + }, + "TemplateName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteEnvironmentConfiguration": { + "name": "DeleteEnvironmentConfiguration", + "input": { + "type": "structure", + "members": { + "ApplicationName": { + "required": true + }, + "EnvironmentName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "describeApplicationVersions": { + "name": "DescribeApplicationVersions", + "input": { + "type": "structure", + "members": { + "ApplicationName": {}, + "VersionLabels": { + "type": "list", + "members": {} + } + } + }, + "output": { + "type": "structure", + "members": { + "ApplicationVersions": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ApplicationName": {}, + "Description": {}, + "VersionLabel": {}, + "SourceBundle": { + "type": "structure", + "members": { + "S3Bucket": {}, + "S3Key": {} + } + }, + "DateCreated": { + "type": "timestamp" + }, + "DateUpdated": { + "type": "timestamp" + } + } + } + } + } + } + }, + "describeApplications": { + "name": "DescribeApplications", + "input": { + "type": "structure", + "members": { + "ApplicationNames": { + "type": "list", + "members": {} + } + } + }, + "output": { + "type": "structure", + "members": { + "Applications": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ApplicationName": {}, + "Description": {}, + "DateCreated": { + "type": "timestamp" + }, + "DateUpdated": { + "type": "timestamp" + }, + "Versions": { + "type": "list", + "members": {} + }, + "ConfigurationTemplates": { + "type": "list", + "members": {} + } + } + } + } + } + } + }, + "describeConfigurationOptions": { + "name": "DescribeConfigurationOptions", + "input": { + "type": "structure", + "members": { + "ApplicationName": {}, + "TemplateName": {}, + "EnvironmentName": {}, + "SolutionStackName": {}, + "Options": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Namespace": {}, + "OptionName": {} + } + } + } + } + }, + "output": { + "type": "structure", + "members": { + "SolutionStackName": {}, + "Options": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Namespace": {}, + "Name": {}, + "DefaultValue": {}, + "ChangeSeverity": {}, + "UserDefined": { + "type": "boolean" + }, + "ValueType": {}, + "ValueOptions": { + "type": "list", + "members": {} + }, + "MinValue": { + "type": "integer" + }, + "MaxValue": { + "type": "integer" + }, + "MaxLength": { + "type": "integer" + }, + "Regex": { + "type": "structure", + "members": { + "Pattern": {}, + "Label": {} + } + } + } + } + } + } + } + }, + "describeConfigurationSettings": { + "name": "DescribeConfigurationSettings", + "input": { + "type": "structure", + "members": { + "ApplicationName": { + "required": true + }, + "TemplateName": {}, + "EnvironmentName": {} + } + }, + "output": { + "type": "structure", + "members": { + "ConfigurationSettings": { + "type": "list", + "members": { + "type": "structure", + "members": { + "SolutionStackName": {}, + "ApplicationName": {}, + "TemplateName": {}, + "Description": {}, + "EnvironmentName": {}, + "DeploymentStatus": {}, + "DateCreated": { + "type": "timestamp" + }, + "DateUpdated": { + "type": "timestamp" + }, + "OptionSettings": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Namespace": {}, + "OptionName": {}, + "Value": {} + } + } + } + } + } + } + } + } + }, + "describeEnvironmentResources": { + "name": "DescribeEnvironmentResources", + "input": { + "type": "structure", + "members": { + "EnvironmentId": {}, + "EnvironmentName": {} + } + }, + "output": { + "type": "structure", + "members": { + "EnvironmentResources": { + "type": "structure", + "members": { + "EnvironmentName": {}, + "AutoScalingGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": {} + } + } + }, + "Instances": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Id": {} + } + } + }, + "LaunchConfigurations": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": {} + } + } + }, + "LoadBalancers": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": {} + } + } + }, + "Triggers": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": {} + } + } + }, + "Queues": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": {}, + "URL": {} + } + } + } + } + } + } + } + }, + "describeEnvironments": { + "name": "DescribeEnvironments", + "input": { + "type": "structure", + "members": { + "ApplicationName": {}, + "VersionLabel": {}, + "EnvironmentIds": { + "type": "list", + "members": {} + }, + "EnvironmentNames": { + "type": "list", + "members": {} + }, + "IncludeDeleted": { + "type": "boolean" + }, + "IncludedDeletedBackTo": { + "type": "timestamp" + } + } + }, + "output": { + "type": "structure", + "members": { + "Environments": { + "type": "list", + "members": { + "type": "structure", + "members": { + "EnvironmentName": {}, + "EnvironmentId": {}, + "ApplicationName": {}, + "VersionLabel": {}, + "SolutionStackName": {}, + "TemplateName": {}, + "Description": {}, + "EndpointURL": {}, + "CNAME": {}, + "DateCreated": { + "type": "timestamp" + }, + "DateUpdated": { + "type": "timestamp" + }, + "Status": {}, + "Health": {}, + "Resources": { + "type": "structure", + "members": { + "LoadBalancer": { + "type": "structure", + "members": { + "LoadBalancerName": {}, + "Domain": {}, + "Listeners": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Protocol": {}, + "Port": { + "type": "integer" + } + } + } + } + } + } + } + }, + "Tier": { + "type": "structure", + "members": { + "Name": {}, + "Type": {}, + "Version": {} + } + } + } + } + } + } + } + }, + "describeEvents": { + "name": "DescribeEvents", + "input": { + "type": "structure", + "members": { + "ApplicationName": {}, + "VersionLabel": {}, + "TemplateName": {}, + "EnvironmentId": {}, + "EnvironmentName": {}, + "RequestId": {}, + "Severity": {}, + "StartTime": { + "type": "timestamp" + }, + "EndTime": { + "type": "timestamp" + }, + "MaxRecords": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "Events": { + "type": "list", + "members": { + "type": "structure", + "members": { + "EventDate": { + "type": "timestamp" + }, + "Message": {}, + "ApplicationName": {}, + "VersionLabel": {}, + "TemplateName": {}, + "EnvironmentName": {}, + "RequestId": {}, + "Severity": {} + } + } + }, + "NextToken": {} + } + } + }, + "listAvailableSolutionStacks": { + "name": "ListAvailableSolutionStacks", + "input": { + "type": "structure", + "members": {} + }, + "output": { + "type": "structure", + "members": { + "SolutionStacks": { + "type": "list", + "members": {} + }, + "SolutionStackDetails": { + "type": "list", + "members": { + "type": "structure", + "members": { + "SolutionStackName": {}, + "PermittedFileTypes": { + "type": "list", + "members": {} + } + } + } + } + } + } + }, + "rebuildEnvironment": { + "name": "RebuildEnvironment", + "input": { + "type": "structure", + "members": { + "EnvironmentId": {}, + "EnvironmentName": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "requestEnvironmentInfo": { + "name": "RequestEnvironmentInfo", + "input": { + "type": "structure", + "members": { + "EnvironmentId": {}, + "EnvironmentName": {}, + "InfoType": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "restartAppServer": { + "name": "RestartAppServer", + "input": { + "type": "structure", + "members": { + "EnvironmentId": {}, + "EnvironmentName": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "retrieveEnvironmentInfo": { + "name": "RetrieveEnvironmentInfo", + "input": { + "type": "structure", + "members": { + "EnvironmentId": {}, + "EnvironmentName": {}, + "InfoType": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "EnvironmentInfo": { + "type": "list", + "members": { + "type": "structure", + "members": { + "InfoType": {}, + "Ec2InstanceId": {}, + "SampleTimestamp": { + "type": "timestamp" + }, + "Message": {} + } + } + } + } + } + }, + "swapEnvironmentCNAMEs": { + "name": "SwapEnvironmentCNAMEs", + "input": { + "type": "structure", + "members": { + "SourceEnvironmentId": {}, + "SourceEnvironmentName": {}, + "DestinationEnvironmentId": {}, + "DestinationEnvironmentName": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "terminateEnvironment": { + "name": "TerminateEnvironment", + "input": { + "type": "structure", + "members": { + "EnvironmentId": {}, + "EnvironmentName": {}, + "TerminateResources": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "EnvironmentName": {}, + "EnvironmentId": {}, + "ApplicationName": {}, + "VersionLabel": {}, + "SolutionStackName": {}, + "TemplateName": {}, + "Description": {}, + "EndpointURL": {}, + "CNAME": {}, + "DateCreated": { + "type": "timestamp" + }, + "DateUpdated": { + "type": "timestamp" + }, + "Status": {}, + "Health": {}, + "Resources": { + "type": "structure", + "members": { + "LoadBalancer": { + "type": "structure", + "members": { + "LoadBalancerName": {}, + "Domain": {}, + "Listeners": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Protocol": {}, + "Port": { + "type": "integer" + } + } + } + } + } + } + } + }, + "Tier": { + "type": "structure", + "members": { + "Name": {}, + "Type": {}, + "Version": {} + } + } + } + } + }, + "updateApplication": { + "name": "UpdateApplication", + "input": { + "type": "structure", + "members": { + "ApplicationName": { + "required": true + }, + "Description": {} + } + }, + "output": { + "type": "structure", + "members": { + "Application": { + "type": "structure", + "members": { + "ApplicationName": {}, + "Description": {}, + "DateCreated": { + "type": "timestamp" + }, + "DateUpdated": { + "type": "timestamp" + }, + "Versions": { + "type": "list", + "members": {} + }, + "ConfigurationTemplates": { + "type": "list", + "members": {} + } + } + } + } + } + }, + "updateApplicationVersion": { + "name": "UpdateApplicationVersion", + "input": { + "type": "structure", + "members": { + "ApplicationName": { + "required": true + }, + "VersionLabel": { + "required": true + }, + "Description": {} + } + }, + "output": { + "type": "structure", + "members": { + "ApplicationVersion": { + "type": "structure", + "members": { + "ApplicationName": {}, + "Description": {}, + "VersionLabel": {}, + "SourceBundle": { + "type": "structure", + "members": { + "S3Bucket": {}, + "S3Key": {} + } + }, + "DateCreated": { + "type": "timestamp" + }, + "DateUpdated": { + "type": "timestamp" + } + } + } + } + } + }, + "updateConfigurationTemplate": { + "name": "UpdateConfigurationTemplate", + "input": { + "type": "structure", + "members": { + "ApplicationName": { + "required": true + }, + "TemplateName": { + "required": true + }, + "Description": {}, + "OptionSettings": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Namespace": {}, + "OptionName": {}, + "Value": {} + } + } + }, + "OptionsToRemove": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Namespace": {}, + "OptionName": {} + } + } + } + } + }, + "output": { + "type": "structure", + "members": { + "SolutionStackName": {}, + "ApplicationName": {}, + "TemplateName": {}, + "Description": {}, + "EnvironmentName": {}, + "DeploymentStatus": {}, + "DateCreated": { + "type": "timestamp" + }, + "DateUpdated": { + "type": "timestamp" + }, + "OptionSettings": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Namespace": {}, + "OptionName": {}, + "Value": {} + } + } + } + } + } + }, + "updateEnvironment": { + "name": "UpdateEnvironment", + "input": { + "type": "structure", + "members": { + "EnvironmentId": {}, + "EnvironmentName": {}, + "Description": {}, + "Tier": { + "type": "structure", + "members": { + "Name": {}, + "Type": {}, + "Version": {} + } + }, + "VersionLabel": {}, + "TemplateName": {}, + "OptionSettings": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Namespace": {}, + "OptionName": {}, + "Value": {} + } + } + }, + "OptionsToRemove": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Namespace": {}, + "OptionName": {} + } + } + } + } + }, + "output": { + "type": "structure", + "members": { + "EnvironmentName": {}, + "EnvironmentId": {}, + "ApplicationName": {}, + "VersionLabel": {}, + "SolutionStackName": {}, + "TemplateName": {}, + "Description": {}, + "EndpointURL": {}, + "CNAME": {}, + "DateCreated": { + "type": "timestamp" + }, + "DateUpdated": { + "type": "timestamp" + }, + "Status": {}, + "Health": {}, + "Resources": { + "type": "structure", + "members": { + "LoadBalancer": { + "type": "structure", + "members": { + "LoadBalancerName": {}, + "Domain": {}, + "Listeners": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Protocol": {}, + "Port": { + "type": "integer" + } + } + } + } + } + } + } + }, + "Tier": { + "type": "structure", + "members": { + "Name": {}, + "Type": {}, + "Version": {} + } + } + } + } + }, + "validateConfigurationSettings": { + "name": "ValidateConfigurationSettings", + "input": { + "type": "structure", + "members": { + "ApplicationName": { + "required": true + }, + "TemplateName": {}, + "EnvironmentName": {}, + "OptionSettings": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Namespace": {}, + "OptionName": {}, + "Value": {} + } + }, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "Messages": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Message": {}, + "Severity": {}, + "Namespace": {}, + "OptionName": {} + } + } + } + } + } + } + }, + "pagination": { + "describeApplicationVersions": { + "resultKey": "ApplicationVersions" + }, + "describeApplications": { + "resultKey": "Applications" + }, + "describeConfigurationOptions": { + "resultKey": "Options" + }, + "describeEnvironments": { + "resultKey": "Environments" + }, + "describeEvents": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "limitKey": "MaxRecords", + "resultKey": "Events" + }, + "listAvailableSolutionStacks": { + "resultKey": "SolutionStacks" + } + } +} \ No newline at end of file diff --git a/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/ElasticTranscoder-2012-09-25.json b/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/ElasticTranscoder-2012-09-25.json new file mode 100644 index 00000000..6af9de56 --- /dev/null +++ b/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/ElasticTranscoder-2012-09-25.json @@ -0,0 +1,2095 @@ +{ + "format": "rest-json", + "apiVersion": "2012-09-25", + "endpointPrefix": "elastictranscoder", + "serviceFullName": "Amazon Elastic Transcoder", + "signatureVersion": "v4", + "timestampFormat": "iso8601", + "operations": { + "cancelJob": { + "name": "CancelJob", + "http": { + "method": "DELETE", + "uri": "/2012-09-25/jobs/{Id}" + }, + "input": { + "type": "structure", + "members": { + "Id": { + "location": "uri" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "createJob": { + "name": "CreateJob", + "http": { + "method": "POST", + "uri": "/2012-09-25/jobs" + }, + "input": { + "payload": [ + "PipelineId", + "Input", + "Output", + "Outputs", + "OutputKeyPrefix", + "Playlists" + ], + "type": "structure", + "members": { + "PipelineId": {}, + "Input": { + "type": "structure", + "members": { + "Key": {}, + "FrameRate": {}, + "Resolution": {}, + "AspectRatio": {}, + "Interlaced": {}, + "Container": {} + } + }, + "Output": { + "type": "structure", + "members": { + "Key": {}, + "ThumbnailPattern": {}, + "Rotate": {}, + "PresetId": {}, + "SegmentDuration": {}, + "Watermarks": { + "type": "list", + "members": { + "type": "structure", + "members": { + "PresetWatermarkId": {}, + "InputKey": {} + } + } + }, + "AlbumArt": { + "type": "structure", + "members": { + "MergePolicy": {}, + "Artwork": { + "type": "list", + "members": { + "type": "structure", + "members": { + "InputKey": {}, + "MaxWidth": {}, + "MaxHeight": {}, + "SizingPolicy": {}, + "PaddingPolicy": {}, + "AlbumArtFormat": {} + } + } + } + } + }, + "Composition": { + "type": "list", + "members": { + "type": "structure", + "members": { + "TimeSpan": { + "type": "structure", + "members": { + "StartTime": {}, + "Duration": {} + } + } + } + } + } + } + }, + "Outputs": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Key": {}, + "ThumbnailPattern": {}, + "Rotate": {}, + "PresetId": {}, + "SegmentDuration": {}, + "Watermarks": { + "type": "list", + "members": { + "type": "structure", + "members": { + "PresetWatermarkId": {}, + "InputKey": {} + } + } + }, + "AlbumArt": { + "type": "structure", + "members": { + "MergePolicy": {}, + "Artwork": { + "type": "list", + "members": { + "type": "structure", + "members": { + "InputKey": {}, + "MaxWidth": {}, + "MaxHeight": {}, + "SizingPolicy": {}, + "PaddingPolicy": {}, + "AlbumArtFormat": {} + } + } + } + } + }, + "Composition": { + "type": "list", + "members": { + "type": "structure", + "members": { + "TimeSpan": { + "type": "structure", + "members": { + "StartTime": {}, + "Duration": {} + } + } + } + } + } + } + } + }, + "OutputKeyPrefix": {}, + "Playlists": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": {}, + "Format": {}, + "OutputKeys": { + "type": "list", + "members": {} + } + } + } + } + } + }, + "output": { + "type": "structure", + "members": { + "Job": { + "type": "structure", + "members": { + "Id": {}, + "Arn": {}, + "PipelineId": {}, + "Input": { + "type": "structure", + "members": { + "Key": {}, + "FrameRate": {}, + "Resolution": {}, + "AspectRatio": {}, + "Interlaced": {}, + "Container": {} + } + }, + "Output": { + "type": "structure", + "members": { + "Id": {}, + "Key": {}, + "ThumbnailPattern": {}, + "Rotate": {}, + "PresetId": {}, + "SegmentDuration": {}, + "Status": {}, + "StatusDetail": {}, + "Duration": { + "type": "integer" + }, + "Width": { + "type": "integer" + }, + "Height": { + "type": "integer" + }, + "Watermarks": { + "type": "list", + "members": { + "type": "structure", + "members": { + "PresetWatermarkId": {}, + "InputKey": {} + } + } + }, + "AlbumArt": { + "type": "structure", + "members": { + "MergePolicy": {}, + "Artwork": { + "type": "list", + "members": { + "type": "structure", + "members": { + "InputKey": {}, + "MaxWidth": {}, + "MaxHeight": {}, + "SizingPolicy": {}, + "PaddingPolicy": {}, + "AlbumArtFormat": {} + } + } + } + } + }, + "Composition": { + "type": "list", + "members": { + "type": "structure", + "members": { + "TimeSpan": { + "type": "structure", + "members": { + "StartTime": {}, + "Duration": {} + } + } + } + } + } + } + }, + "Outputs": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Id": {}, + "Key": {}, + "ThumbnailPattern": {}, + "Rotate": {}, + "PresetId": {}, + "SegmentDuration": {}, + "Status": {}, + "StatusDetail": {}, + "Duration": { + "type": "integer" + }, + "Width": { + "type": "integer" + }, + "Height": { + "type": "integer" + }, + "Watermarks": { + "type": "list", + "members": { + "type": "structure", + "members": { + "PresetWatermarkId": {}, + "InputKey": {} + } + } + }, + "AlbumArt": { + "type": "structure", + "members": { + "MergePolicy": {}, + "Artwork": { + "type": "list", + "members": { + "type": "structure", + "members": { + "InputKey": {}, + "MaxWidth": {}, + "MaxHeight": {}, + "SizingPolicy": {}, + "PaddingPolicy": {}, + "AlbumArtFormat": {} + } + } + } + } + }, + "Composition": { + "type": "list", + "members": { + "type": "structure", + "members": { + "TimeSpan": { + "type": "structure", + "members": { + "StartTime": {}, + "Duration": {} + } + } + } + } + } + } + } + }, + "OutputKeyPrefix": {}, + "Playlists": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": {}, + "Format": {}, + "OutputKeys": { + "type": "list", + "members": {} + }, + "Status": {}, + "StatusDetail": {} + } + } + }, + "Status": {} + } + } + } + } + }, + "createPipeline": { + "name": "CreatePipeline", + "http": { + "method": "POST", + "uri": "/2012-09-25/pipelines" + }, + "input": { + "payload": [ + "Name", + "InputBucket", + "OutputBucket", + "Role", + "Notifications", + "ContentConfig", + "ThumbnailConfig" + ], + "type": "structure", + "members": { + "Name": {}, + "InputBucket": {}, + "OutputBucket": {}, + "Role": {}, + "Notifications": { + "type": "structure", + "members": { + "Progressing": {}, + "Completed": {}, + "Warning": {}, + "Error": {} + } + }, + "ContentConfig": { + "type": "structure", + "members": { + "Bucket": {}, + "StorageClass": {}, + "Permissions": { + "type": "list", + "members": { + "type": "structure", + "members": { + "GranteeType": {}, + "Grantee": {}, + "Access": { + "type": "list", + "members": {} + } + } + } + } + } + }, + "ThumbnailConfig": { + "type": "structure", + "members": { + "Bucket": {}, + "StorageClass": {}, + "Permissions": { + "type": "list", + "members": { + "type": "structure", + "members": { + "GranteeType": {}, + "Grantee": {}, + "Access": { + "type": "list", + "members": {} + } + } + } + } + } + } + } + }, + "output": { + "type": "structure", + "members": { + "Pipeline": { + "type": "structure", + "members": { + "Id": {}, + "Arn": {}, + "Name": {}, + "Status": {}, + "InputBucket": {}, + "OutputBucket": {}, + "Role": {}, + "Notifications": { + "type": "structure", + "members": { + "Progressing": {}, + "Completed": {}, + "Warning": {}, + "Error": {} + } + }, + "ContentConfig": { + "type": "structure", + "members": { + "Bucket": {}, + "StorageClass": {}, + "Permissions": { + "type": "list", + "members": { + "type": "structure", + "members": { + "GranteeType": {}, + "Grantee": {}, + "Access": { + "type": "list", + "members": {} + } + } + } + } + } + }, + "ThumbnailConfig": { + "type": "structure", + "members": { + "Bucket": {}, + "StorageClass": {}, + "Permissions": { + "type": "list", + "members": { + "type": "structure", + "members": { + "GranteeType": {}, + "Grantee": {}, + "Access": { + "type": "list", + "members": {} + } + } + } + } + } + } + } + } + } + } + }, + "createPreset": { + "name": "CreatePreset", + "http": { + "method": "POST", + "uri": "/2012-09-25/presets" + }, + "input": { + "payload": [ + "Name", + "Description", + "Container", + "Video", + "Audio", + "Thumbnails" + ], + "type": "structure", + "members": { + "Name": {}, + "Description": {}, + "Container": {}, + "Video": { + "type": "structure", + "members": { + "Codec": {}, + "CodecOptions": { + "type": "map", + "keys": {}, + "members": {} + }, + "KeyframesMaxDist": {}, + "FixedGOP": {}, + "BitRate": {}, + "FrameRate": {}, + "MaxFrameRate": {}, + "Resolution": {}, + "AspectRatio": {}, + "MaxWidth": {}, + "MaxHeight": {}, + "DisplayAspectRatio": {}, + "SizingPolicy": {}, + "PaddingPolicy": {}, + "Watermarks": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Id": {}, + "MaxWidth": {}, + "MaxHeight": {}, + "SizingPolicy": {}, + "HorizontalAlign": {}, + "HorizontalOffset": {}, + "VerticalAlign": {}, + "VerticalOffset": {}, + "Opacity": {}, + "Target": {} + } + } + } + } + }, + "Audio": { + "type": "structure", + "members": { + "Codec": {}, + "SampleRate": {}, + "BitRate": {}, + "Channels": {}, + "CodecOptions": { + "type": "structure", + "members": { + "Profile": {} + } + } + } + }, + "Thumbnails": { + "type": "structure", + "members": { + "Format": {}, + "Interval": {}, + "Resolution": {}, + "AspectRatio": {}, + "MaxWidth": {}, + "MaxHeight": {}, + "SizingPolicy": {}, + "PaddingPolicy": {} + } + } + } + }, + "output": { + "type": "structure", + "members": { + "Preset": { + "type": "structure", + "members": { + "Id": {}, + "Arn": {}, + "Name": {}, + "Description": {}, + "Container": {}, + "Audio": { + "type": "structure", + "members": { + "Codec": {}, + "SampleRate": {}, + "BitRate": {}, + "Channels": {}, + "CodecOptions": { + "type": "structure", + "members": { + "Profile": {} + } + } + } + }, + "Video": { + "type": "structure", + "members": { + "Codec": {}, + "CodecOptions": { + "type": "map", + "keys": {}, + "members": {} + }, + "KeyframesMaxDist": {}, + "FixedGOP": {}, + "BitRate": {}, + "FrameRate": {}, + "MaxFrameRate": {}, + "Resolution": {}, + "AspectRatio": {}, + "MaxWidth": {}, + "MaxHeight": {}, + "DisplayAspectRatio": {}, + "SizingPolicy": {}, + "PaddingPolicy": {}, + "Watermarks": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Id": {}, + "MaxWidth": {}, + "MaxHeight": {}, + "SizingPolicy": {}, + "HorizontalAlign": {}, + "HorizontalOffset": {}, + "VerticalAlign": {}, + "VerticalOffset": {}, + "Opacity": {}, + "Target": {} + } + } + } + } + }, + "Thumbnails": { + "type": "structure", + "members": { + "Format": {}, + "Interval": {}, + "Resolution": {}, + "AspectRatio": {}, + "MaxWidth": {}, + "MaxHeight": {}, + "SizingPolicy": {}, + "PaddingPolicy": {} + } + }, + "Type": {} + } + }, + "Warning": {} + } + } + }, + "deletePipeline": { + "name": "DeletePipeline", + "http": { + "method": "DELETE", + "uri": "/2012-09-25/pipelines/{Id}" + }, + "input": { + "type": "structure", + "members": { + "Id": { + "location": "uri" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deletePreset": { + "name": "DeletePreset", + "http": { + "method": "DELETE", + "uri": "/2012-09-25/presets/{Id}" + }, + "input": { + "type": "structure", + "members": { + "Id": { + "location": "uri" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "listJobsByPipeline": { + "name": "ListJobsByPipeline", + "http": { + "method": "GET", + "uri": "/2012-09-25/jobsByPipeline/{PipelineId}?Ascending={Ascending}&PageToken={PageToken}" + }, + "input": { + "type": "structure", + "members": { + "PipelineId": { + "location": "uri" + }, + "Ascending": { + "location": "uri" + }, + "PageToken": { + "location": "uri" + } + } + }, + "output": { + "type": "structure", + "members": { + "Jobs": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Id": {}, + "Arn": {}, + "PipelineId": {}, + "Input": { + "type": "structure", + "members": { + "Key": {}, + "FrameRate": {}, + "Resolution": {}, + "AspectRatio": {}, + "Interlaced": {}, + "Container": {} + } + }, + "Output": { + "type": "structure", + "members": { + "Id": {}, + "Key": {}, + "ThumbnailPattern": {}, + "Rotate": {}, + "PresetId": {}, + "SegmentDuration": {}, + "Status": {}, + "StatusDetail": {}, + "Duration": { + "type": "integer" + }, + "Width": { + "type": "integer" + }, + "Height": { + "type": "integer" + }, + "Watermarks": { + "type": "list", + "members": { + "type": "structure", + "members": { + "PresetWatermarkId": {}, + "InputKey": {} + } + } + }, + "AlbumArt": { + "type": "structure", + "members": { + "MergePolicy": {}, + "Artwork": { + "type": "list", + "members": { + "type": "structure", + "members": { + "InputKey": {}, + "MaxWidth": {}, + "MaxHeight": {}, + "SizingPolicy": {}, + "PaddingPolicy": {}, + "AlbumArtFormat": {} + } + } + } + } + }, + "Composition": { + "type": "list", + "members": { + "type": "structure", + "members": { + "TimeSpan": { + "type": "structure", + "members": { + "StartTime": {}, + "Duration": {} + } + } + } + } + } + } + }, + "Outputs": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Id": {}, + "Key": {}, + "ThumbnailPattern": {}, + "Rotate": {}, + "PresetId": {}, + "SegmentDuration": {}, + "Status": {}, + "StatusDetail": {}, + "Duration": { + "type": "integer" + }, + "Width": { + "type": "integer" + }, + "Height": { + "type": "integer" + }, + "Watermarks": { + "type": "list", + "members": { + "type": "structure", + "members": { + "PresetWatermarkId": {}, + "InputKey": {} + } + } + }, + "AlbumArt": { + "type": "structure", + "members": { + "MergePolicy": {}, + "Artwork": { + "type": "list", + "members": { + "type": "structure", + "members": { + "InputKey": {}, + "MaxWidth": {}, + "MaxHeight": {}, + "SizingPolicy": {}, + "PaddingPolicy": {}, + "AlbumArtFormat": {} + } + } + } + } + }, + "Composition": { + "type": "list", + "members": { + "type": "structure", + "members": { + "TimeSpan": { + "type": "structure", + "members": { + "StartTime": {}, + "Duration": {} + } + } + } + } + } + } + } + }, + "OutputKeyPrefix": {}, + "Playlists": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": {}, + "Format": {}, + "OutputKeys": { + "type": "list", + "members": {} + }, + "Status": {}, + "StatusDetail": {} + } + } + }, + "Status": {} + } + } + }, + "NextPageToken": {} + } + } + }, + "listJobsByStatus": { + "name": "ListJobsByStatus", + "http": { + "method": "GET", + "uri": "/2012-09-25/jobsByStatus/{Status}?Ascending={Ascending}&PageToken={PageToken}" + }, + "input": { + "type": "structure", + "members": { + "Status": { + "location": "uri" + }, + "Ascending": { + "location": "uri" + }, + "PageToken": { + "location": "uri" + } + } + }, + "output": { + "type": "structure", + "members": { + "Jobs": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Id": {}, + "Arn": {}, + "PipelineId": {}, + "Input": { + "type": "structure", + "members": { + "Key": {}, + "FrameRate": {}, + "Resolution": {}, + "AspectRatio": {}, + "Interlaced": {}, + "Container": {} + } + }, + "Output": { + "type": "structure", + "members": { + "Id": {}, + "Key": {}, + "ThumbnailPattern": {}, + "Rotate": {}, + "PresetId": {}, + "SegmentDuration": {}, + "Status": {}, + "StatusDetail": {}, + "Duration": { + "type": "integer" + }, + "Width": { + "type": "integer" + }, + "Height": { + "type": "integer" + }, + "Watermarks": { + "type": "list", + "members": { + "type": "structure", + "members": { + "PresetWatermarkId": {}, + "InputKey": {} + } + } + }, + "AlbumArt": { + "type": "structure", + "members": { + "MergePolicy": {}, + "Artwork": { + "type": "list", + "members": { + "type": "structure", + "members": { + "InputKey": {}, + "MaxWidth": {}, + "MaxHeight": {}, + "SizingPolicy": {}, + "PaddingPolicy": {}, + "AlbumArtFormat": {} + } + } + } + } + }, + "Composition": { + "type": "list", + "members": { + "type": "structure", + "members": { + "TimeSpan": { + "type": "structure", + "members": { + "StartTime": {}, + "Duration": {} + } + } + } + } + } + } + }, + "Outputs": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Id": {}, + "Key": {}, + "ThumbnailPattern": {}, + "Rotate": {}, + "PresetId": {}, + "SegmentDuration": {}, + "Status": {}, + "StatusDetail": {}, + "Duration": { + "type": "integer" + }, + "Width": { + "type": "integer" + }, + "Height": { + "type": "integer" + }, + "Watermarks": { + "type": "list", + "members": { + "type": "structure", + "members": { + "PresetWatermarkId": {}, + "InputKey": {} + } + } + }, + "AlbumArt": { + "type": "structure", + "members": { + "MergePolicy": {}, + "Artwork": { + "type": "list", + "members": { + "type": "structure", + "members": { + "InputKey": {}, + "MaxWidth": {}, + "MaxHeight": {}, + "SizingPolicy": {}, + "PaddingPolicy": {}, + "AlbumArtFormat": {} + } + } + } + } + }, + "Composition": { + "type": "list", + "members": { + "type": "structure", + "members": { + "TimeSpan": { + "type": "structure", + "members": { + "StartTime": {}, + "Duration": {} + } + } + } + } + } + } + } + }, + "OutputKeyPrefix": {}, + "Playlists": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": {}, + "Format": {}, + "OutputKeys": { + "type": "list", + "members": {} + }, + "Status": {}, + "StatusDetail": {} + } + } + }, + "Status": {} + } + } + }, + "NextPageToken": {} + } + } + }, + "listPipelines": { + "name": "ListPipelines", + "http": { + "method": "GET", + "uri": "/2012-09-25/pipelines?Ascending={Ascending}&PageToken={PageToken}" + }, + "input": { + "type": "structure", + "members": { + "Ascending": { + "location": "uri" + }, + "PageToken": { + "location": "uri" + } + } + }, + "output": { + "type": "structure", + "members": { + "Pipelines": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Id": {}, + "Arn": {}, + "Name": {}, + "Status": {}, + "InputBucket": {}, + "OutputBucket": {}, + "Role": {}, + "Notifications": { + "type": "structure", + "members": { + "Progressing": {}, + "Completed": {}, + "Warning": {}, + "Error": {} + } + }, + "ContentConfig": { + "type": "structure", + "members": { + "Bucket": {}, + "StorageClass": {}, + "Permissions": { + "type": "list", + "members": { + "type": "structure", + "members": { + "GranteeType": {}, + "Grantee": {}, + "Access": { + "type": "list", + "members": {} + } + } + } + } + } + }, + "ThumbnailConfig": { + "type": "structure", + "members": { + "Bucket": {}, + "StorageClass": {}, + "Permissions": { + "type": "list", + "members": { + "type": "structure", + "members": { + "GranteeType": {}, + "Grantee": {}, + "Access": { + "type": "list", + "members": {} + } + } + } + } + } + } + } + } + }, + "NextPageToken": {} + } + } + }, + "listPresets": { + "name": "ListPresets", + "http": { + "method": "GET", + "uri": "/2012-09-25/presets?Ascending={Ascending}&PageToken={PageToken}" + }, + "input": { + "type": "structure", + "members": { + "Ascending": { + "location": "uri" + }, + "PageToken": { + "location": "uri" + } + } + }, + "output": { + "type": "structure", + "members": { + "Presets": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Id": {}, + "Arn": {}, + "Name": {}, + "Description": {}, + "Container": {}, + "Audio": { + "type": "structure", + "members": { + "Codec": {}, + "SampleRate": {}, + "BitRate": {}, + "Channels": {}, + "CodecOptions": { + "type": "structure", + "members": { + "Profile": {} + } + } + } + }, + "Video": { + "type": "structure", + "members": { + "Codec": {}, + "CodecOptions": { + "type": "map", + "keys": {}, + "members": {} + }, + "KeyframesMaxDist": {}, + "FixedGOP": {}, + "BitRate": {}, + "FrameRate": {}, + "MaxFrameRate": {}, + "Resolution": {}, + "AspectRatio": {}, + "MaxWidth": {}, + "MaxHeight": {}, + "DisplayAspectRatio": {}, + "SizingPolicy": {}, + "PaddingPolicy": {}, + "Watermarks": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Id": {}, + "MaxWidth": {}, + "MaxHeight": {}, + "SizingPolicy": {}, + "HorizontalAlign": {}, + "HorizontalOffset": {}, + "VerticalAlign": {}, + "VerticalOffset": {}, + "Opacity": {}, + "Target": {} + } + } + } + } + }, + "Thumbnails": { + "type": "structure", + "members": { + "Format": {}, + "Interval": {}, + "Resolution": {}, + "AspectRatio": {}, + "MaxWidth": {}, + "MaxHeight": {}, + "SizingPolicy": {}, + "PaddingPolicy": {} + } + }, + "Type": {} + } + } + }, + "NextPageToken": {} + } + } + }, + "readJob": { + "name": "ReadJob", + "http": { + "method": "GET", + "uri": "/2012-09-25/jobs/{Id}" + }, + "input": { + "type": "structure", + "members": { + "Id": { + "location": "uri" + } + } + }, + "output": { + "type": "structure", + "members": { + "Job": { + "type": "structure", + "members": { + "Id": {}, + "Arn": {}, + "PipelineId": {}, + "Input": { + "type": "structure", + "members": { + "Key": {}, + "FrameRate": {}, + "Resolution": {}, + "AspectRatio": {}, + "Interlaced": {}, + "Container": {} + } + }, + "Output": { + "type": "structure", + "members": { + "Id": {}, + "Key": {}, + "ThumbnailPattern": {}, + "Rotate": {}, + "PresetId": {}, + "SegmentDuration": {}, + "Status": {}, + "StatusDetail": {}, + "Duration": { + "type": "integer" + }, + "Width": { + "type": "integer" + }, + "Height": { + "type": "integer" + }, + "Watermarks": { + "type": "list", + "members": { + "type": "structure", + "members": { + "PresetWatermarkId": {}, + "InputKey": {} + } + } + }, + "AlbumArt": { + "type": "structure", + "members": { + "MergePolicy": {}, + "Artwork": { + "type": "list", + "members": { + "type": "structure", + "members": { + "InputKey": {}, + "MaxWidth": {}, + "MaxHeight": {}, + "SizingPolicy": {}, + "PaddingPolicy": {}, + "AlbumArtFormat": {} + } + } + } + } + }, + "Composition": { + "type": "list", + "members": { + "type": "structure", + "members": { + "TimeSpan": { + "type": "structure", + "members": { + "StartTime": {}, + "Duration": {} + } + } + } + } + } + } + }, + "Outputs": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Id": {}, + "Key": {}, + "ThumbnailPattern": {}, + "Rotate": {}, + "PresetId": {}, + "SegmentDuration": {}, + "Status": {}, + "StatusDetail": {}, + "Duration": { + "type": "integer" + }, + "Width": { + "type": "integer" + }, + "Height": { + "type": "integer" + }, + "Watermarks": { + "type": "list", + "members": { + "type": "structure", + "members": { + "PresetWatermarkId": {}, + "InputKey": {} + } + } + }, + "AlbumArt": { + "type": "structure", + "members": { + "MergePolicy": {}, + "Artwork": { + "type": "list", + "members": { + "type": "structure", + "members": { + "InputKey": {}, + "MaxWidth": {}, + "MaxHeight": {}, + "SizingPolicy": {}, + "PaddingPolicy": {}, + "AlbumArtFormat": {} + } + } + } + } + }, + "Composition": { + "type": "list", + "members": { + "type": "structure", + "members": { + "TimeSpan": { + "type": "structure", + "members": { + "StartTime": {}, + "Duration": {} + } + } + } + } + } + } + } + }, + "OutputKeyPrefix": {}, + "Playlists": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": {}, + "Format": {}, + "OutputKeys": { + "type": "list", + "members": {} + }, + "Status": {}, + "StatusDetail": {} + } + } + }, + "Status": {} + } + } + } + } + }, + "readPipeline": { + "name": "ReadPipeline", + "http": { + "method": "GET", + "uri": "/2012-09-25/pipelines/{Id}" + }, + "input": { + "type": "structure", + "members": { + "Id": { + "location": "uri" + } + } + }, + "output": { + "type": "structure", + "members": { + "Pipeline": { + "type": "structure", + "members": { + "Id": {}, + "Arn": {}, + "Name": {}, + "Status": {}, + "InputBucket": {}, + "OutputBucket": {}, + "Role": {}, + "Notifications": { + "type": "structure", + "members": { + "Progressing": {}, + "Completed": {}, + "Warning": {}, + "Error": {} + } + }, + "ContentConfig": { + "type": "structure", + "members": { + "Bucket": {}, + "StorageClass": {}, + "Permissions": { + "type": "list", + "members": { + "type": "structure", + "members": { + "GranteeType": {}, + "Grantee": {}, + "Access": { + "type": "list", + "members": {} + } + } + } + } + } + }, + "ThumbnailConfig": { + "type": "structure", + "members": { + "Bucket": {}, + "StorageClass": {}, + "Permissions": { + "type": "list", + "members": { + "type": "structure", + "members": { + "GranteeType": {}, + "Grantee": {}, + "Access": { + "type": "list", + "members": {} + } + } + } + } + } + } + } + } + } + } + }, + "readPreset": { + "name": "ReadPreset", + "http": { + "method": "GET", + "uri": "/2012-09-25/presets/{Id}" + }, + "input": { + "type": "structure", + "members": { + "Id": { + "location": "uri" + } + } + }, + "output": { + "type": "structure", + "members": { + "Preset": { + "type": "structure", + "members": { + "Id": {}, + "Arn": {}, + "Name": {}, + "Description": {}, + "Container": {}, + "Audio": { + "type": "structure", + "members": { + "Codec": {}, + "SampleRate": {}, + "BitRate": {}, + "Channels": {}, + "CodecOptions": { + "type": "structure", + "members": { + "Profile": {} + } + } + } + }, + "Video": { + "type": "structure", + "members": { + "Codec": {}, + "CodecOptions": { + "type": "map", + "keys": {}, + "members": {} + }, + "KeyframesMaxDist": {}, + "FixedGOP": {}, + "BitRate": {}, + "FrameRate": {}, + "MaxFrameRate": {}, + "Resolution": {}, + "AspectRatio": {}, + "MaxWidth": {}, + "MaxHeight": {}, + "DisplayAspectRatio": {}, + "SizingPolicy": {}, + "PaddingPolicy": {}, + "Watermarks": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Id": {}, + "MaxWidth": {}, + "MaxHeight": {}, + "SizingPolicy": {}, + "HorizontalAlign": {}, + "HorizontalOffset": {}, + "VerticalAlign": {}, + "VerticalOffset": {}, + "Opacity": {}, + "Target": {} + } + } + } + } + }, + "Thumbnails": { + "type": "structure", + "members": { + "Format": {}, + "Interval": {}, + "Resolution": {}, + "AspectRatio": {}, + "MaxWidth": {}, + "MaxHeight": {}, + "SizingPolicy": {}, + "PaddingPolicy": {} + } + }, + "Type": {} + } + } + } + } + }, + "testRole": { + "name": "TestRole", + "http": { + "method": "POST", + "uri": "/2012-09-25/roleTests" + }, + "input": { + "payload": [ + "Role", + "InputBucket", + "OutputBucket", + "Topics" + ], + "type": "structure", + "members": { + "Role": {}, + "InputBucket": {}, + "OutputBucket": {}, + "Topics": { + "type": "list", + "members": {} + } + } + }, + "output": { + "type": "structure", + "members": { + "Success": {}, + "Messages": { + "type": "list", + "members": {} + } + } + } + }, + "updatePipeline": { + "name": "UpdatePipeline", + "http": { + "method": "PUT", + "uri": "/2012-09-25/pipelines/{Id}" + }, + "input": { + "payload": [ + "Name", + "InputBucket", + "Role", + "Notifications", + "ContentConfig", + "ThumbnailConfig" + ], + "type": "structure", + "members": { + "Id": { + "required": true, + "location": "uri" + }, + "Name": {}, + "InputBucket": {}, + "Role": {}, + "Notifications": { + "type": "structure", + "members": { + "Progressing": {}, + "Completed": {}, + "Warning": {}, + "Error": {} + } + }, + "ContentConfig": { + "type": "structure", + "members": { + "Bucket": {}, + "StorageClass": {}, + "Permissions": { + "type": "list", + "members": { + "type": "structure", + "members": { + "GranteeType": {}, + "Grantee": {}, + "Access": { + "type": "list", + "members": {} + } + } + } + } + } + }, + "ThumbnailConfig": { + "type": "structure", + "members": { + "Bucket": {}, + "StorageClass": {}, + "Permissions": { + "type": "list", + "members": { + "type": "structure", + "members": { + "GranteeType": {}, + "Grantee": {}, + "Access": { + "type": "list", + "members": {} + } + } + } + } + } + } + } + }, + "output": { + "type": "structure", + "members": { + "Pipeline": { + "type": "structure", + "members": { + "Id": {}, + "Arn": {}, + "Name": {}, + "Status": {}, + "InputBucket": {}, + "OutputBucket": {}, + "Role": {}, + "Notifications": { + "type": "structure", + "members": { + "Progressing": {}, + "Completed": {}, + "Warning": {}, + "Error": {} + } + }, + "ContentConfig": { + "type": "structure", + "members": { + "Bucket": {}, + "StorageClass": {}, + "Permissions": { + "type": "list", + "members": { + "type": "structure", + "members": { + "GranteeType": {}, + "Grantee": {}, + "Access": { + "type": "list", + "members": {} + } + } + } + } + } + }, + "ThumbnailConfig": { + "type": "structure", + "members": { + "Bucket": {}, + "StorageClass": {}, + "Permissions": { + "type": "list", + "members": { + "type": "structure", + "members": { + "GranteeType": {}, + "Grantee": {}, + "Access": { + "type": "list", + "members": {} + } + } + } + } + } + } + } + } + } + } + }, + "updatePipelineNotifications": { + "name": "UpdatePipelineNotifications", + "http": { + "method": "POST", + "uri": "/2012-09-25/pipelines/{Id}/notifications" + }, + "input": { + "payload": [ + "Notifications" + ], + "type": "structure", + "members": { + "Id": { + "location": "uri" + }, + "Notifications": { + "type": "structure", + "members": { + "Progressing": {}, + "Completed": {}, + "Warning": {}, + "Error": {} + } + } + } + }, + "output": { + "type": "structure", + "members": { + "Pipeline": { + "type": "structure", + "members": { + "Id": {}, + "Arn": {}, + "Name": {}, + "Status": {}, + "InputBucket": {}, + "OutputBucket": {}, + "Role": {}, + "Notifications": { + "type": "structure", + "members": { + "Progressing": {}, + "Completed": {}, + "Warning": {}, + "Error": {} + } + }, + "ContentConfig": { + "type": "structure", + "members": { + "Bucket": {}, + "StorageClass": {}, + "Permissions": { + "type": "list", + "members": { + "type": "structure", + "members": { + "GranteeType": {}, + "Grantee": {}, + "Access": { + "type": "list", + "members": {} + } + } + } + } + } + }, + "ThumbnailConfig": { + "type": "structure", + "members": { + "Bucket": {}, + "StorageClass": {}, + "Permissions": { + "type": "list", + "members": { + "type": "structure", + "members": { + "GranteeType": {}, + "Grantee": {}, + "Access": { + "type": "list", + "members": {} + } + } + } + } + } + } + } + } + } + } + }, + "updatePipelineStatus": { + "name": "UpdatePipelineStatus", + "http": { + "method": "POST", + "uri": "/2012-09-25/pipelines/{Id}/status" + }, + "input": { + "payload": [ + "Status" + ], + "type": "structure", + "members": { + "Id": { + "location": "uri" + }, + "Status": {} + } + }, + "output": { + "type": "structure", + "members": { + "Pipeline": { + "type": "structure", + "members": { + "Id": {}, + "Arn": {}, + "Name": {}, + "Status": {}, + "InputBucket": {}, + "OutputBucket": {}, + "Role": {}, + "Notifications": { + "type": "structure", + "members": { + "Progressing": {}, + "Completed": {}, + "Warning": {}, + "Error": {} + } + }, + "ContentConfig": { + "type": "structure", + "members": { + "Bucket": {}, + "StorageClass": {}, + "Permissions": { + "type": "list", + "members": { + "type": "structure", + "members": { + "GranteeType": {}, + "Grantee": {}, + "Access": { + "type": "list", + "members": {} + } + } + } + } + } + }, + "ThumbnailConfig": { + "type": "structure", + "members": { + "Bucket": {}, + "StorageClass": {}, + "Permissions": { + "type": "list", + "members": { + "type": "structure", + "members": { + "GranteeType": {}, + "Grantee": {}, + "Access": { + "type": "list", + "members": {} + } + } + } + } + } + } + } + } + } + } + } + }, + "pagination": { + "listJobsByPipeline": { + "inputToken": "PageToken", + "outputToken": "NextPageToken", + "resultKey": "Jobs" + }, + "listJobsByStatus": { + "inputToken": "PageToken", + "outputToken": "NextPageToken", + "resultKey": "Jobs" + }, + "listPipelines": { + "inputToken": "PageToken", + "outputToken": "NextPageToken", + "resultKey": "Pipelines" + }, + "listPresets": { + "inputToken": "PageToken", + "outputToken": "NextPageToken", + "resultKey": "Presets" + } + } +} \ No newline at end of file diff --git a/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/Glacier-2012-06-01.json b/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/Glacier-2012-06-01.json new file mode 100644 index 00000000..a11a0e60 --- /dev/null +++ b/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/Glacier-2012-06-01.json @@ -0,0 +1,834 @@ +{ + "format": "rest-json", + "apiVersion": "2012-06-01", + "checksumFormat": "sha256", + "endpointPrefix": "glacier", + "serviceFullName": "Amazon Glacier", + "signatureVersion": "v4", + "timestampFormat": "iso8601", + "operations": { + "abortMultipartUpload": { + "name": "AbortMultipartUpload", + "http": { + "method": "DELETE", + "uri": "/{accountId}/vaults/{vaultName}/multipart-uploads/{uploadId}" + }, + "input": { + "type": "structure", + "members": { + "accountId": { + "location": "uri" + }, + "vaultName": { + "location": "uri" + }, + "uploadId": { + "location": "uri" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "completeMultipartUpload": { + "name": "CompleteMultipartUpload", + "http": { + "method": "POST", + "uri": "/{accountId}/vaults/{vaultName}/multipart-uploads/{uploadId}" + }, + "input": { + "type": "structure", + "members": { + "accountId": { + "location": "uri" + }, + "vaultName": { + "location": "uri" + }, + "uploadId": { + "location": "uri" + }, + "archiveSize": { + "location": "header", + "name": "x-amz-archive-size" + }, + "checksum": { + "location": "header", + "name": "x-amz-sha256-tree-hash" + } + } + }, + "output": { + "type": "structure", + "members": { + "location": { + "location": "header", + "name": "Location" + }, + "checksum": { + "location": "header", + "name": "x-amz-sha256-tree-hash" + }, + "archiveId": { + "location": "header", + "name": "x-amz-archive-id" + } + } + } + }, + "createVault": { + "name": "CreateVault", + "http": { + "method": "PUT", + "uri": "/{accountId}/vaults/{vaultName}" + }, + "input": { + "type": "structure", + "members": { + "accountId": { + "location": "uri" + }, + "vaultName": { + "location": "uri" + } + } + }, + "output": { + "type": "structure", + "members": { + "location": { + "location": "header", + "name": "Location" + } + } + } + }, + "deleteArchive": { + "name": "DeleteArchive", + "http": { + "method": "DELETE", + "uri": "/{accountId}/vaults/{vaultName}/archives/{archiveId}" + }, + "input": { + "type": "structure", + "members": { + "accountId": { + "location": "uri" + }, + "vaultName": { + "location": "uri" + }, + "archiveId": { + "location": "uri" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteVault": { + "name": "DeleteVault", + "http": { + "method": "DELETE", + "uri": "/{accountId}/vaults/{vaultName}" + }, + "input": { + "type": "structure", + "members": { + "accountId": { + "location": "uri" + }, + "vaultName": { + "location": "uri" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteVaultNotifications": { + "name": "DeleteVaultNotifications", + "http": { + "method": "DELETE", + "uri": "/{accountId}/vaults/{vaultName}/notification-configuration" + }, + "input": { + "type": "structure", + "members": { + "accountId": { + "location": "uri" + }, + "vaultName": { + "location": "uri" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "describeJob": { + "name": "DescribeJob", + "http": { + "method": "GET", + "uri": "/{accountId}/vaults/{vaultName}/jobs/{jobId}" + }, + "input": { + "type": "structure", + "members": { + "accountId": { + "location": "uri" + }, + "vaultName": { + "location": "uri" + }, + "jobId": { + "location": "uri" + } + } + }, + "output": { + "type": "structure", + "members": { + "JobId": {}, + "JobDescription": {}, + "Action": {}, + "ArchiveId": {}, + "VaultARN": {}, + "CreationDate": {}, + "Completed": { + "type": "boolean" + }, + "StatusCode": {}, + "StatusMessage": {}, + "ArchiveSizeInBytes": { + "type": "integer" + }, + "InventorySizeInBytes": { + "type": "integer" + }, + "SNSTopic": {}, + "CompletionDate": {}, + "SHA256TreeHash": {}, + "ArchiveSHA256TreeHash": {}, + "RetrievalByteRange": {}, + "InventoryRetrievalParameters": { + "type": "structure", + "members": { + "Format": {}, + "StartDate": {}, + "EndDate": {}, + "Limit": {}, + "Marker": {} + } + } + } + } + }, + "describeVault": { + "name": "DescribeVault", + "http": { + "method": "GET", + "uri": "/{accountId}/vaults/{vaultName}" + }, + "input": { + "type": "structure", + "members": { + "accountId": { + "location": "uri" + }, + "vaultName": { + "location": "uri" + } + } + }, + "output": { + "type": "structure", + "members": { + "VaultARN": {}, + "VaultName": {}, + "CreationDate": {}, + "LastInventoryDate": {}, + "NumberOfArchives": { + "type": "integer" + }, + "SizeInBytes": { + "type": "integer" + } + } + } + }, + "getJobOutput": { + "name": "GetJobOutput", + "http": { + "method": "GET", + "uri": "/{accountId}/vaults/{vaultName}/jobs/{jobId}/output" + }, + "input": { + "type": "structure", + "members": { + "accountId": { + "location": "uri" + }, + "vaultName": { + "location": "uri" + }, + "jobId": { + "location": "uri" + }, + "range": { + "location": "header", + "name": "Range" + } + } + }, + "output": { + "type": "structure", + "members": { + "body": { + "type": "binary", + "streaming": true + }, + "checksum": { + "location": "header", + "name": "x-amz-sha256-tree-hash" + }, + "status": { + "type": "integer", + "location": "status" + }, + "contentRange": { + "location": "header", + "name": "Content-Range" + }, + "acceptRanges": { + "location": "header", + "name": "Accept-Ranges" + }, + "contentType": { + "location": "header", + "name": "Content-Type" + }, + "archiveDescription": { + "location": "header", + "name": "x-amz-archive-description" + } + }, + "payload": "body" + } + }, + "getVaultNotifications": { + "name": "GetVaultNotifications", + "http": { + "method": "GET", + "uri": "/{accountId}/vaults/{vaultName}/notification-configuration" + }, + "input": { + "type": "structure", + "members": { + "accountId": { + "location": "uri" + }, + "vaultName": { + "location": "uri" + } + } + }, + "output": { + "type": "structure", + "members": { + "SNSTopic": {}, + "Events": { + "type": "list", + "members": {} + } + } + } + }, + "initiateJob": { + "name": "InitiateJob", + "http": { + "method": "POST", + "uri": "/{accountId}/vaults/{vaultName}/jobs" + }, + "input": { + "payload": "jobParameters", + "type": "structure", + "members": { + "accountId": { + "location": "uri" + }, + "vaultName": { + "location": "uri" + }, + "jobParameters": { + "type": "structure", + "members": { + "Format": {}, + "Type": {}, + "ArchiveId": {}, + "Description": {}, + "SNSTopic": {}, + "RetrievalByteRange": {}, + "InventoryRetrievalParameters": { + "type": "structure", + "members": { + "StartDate": {}, + "EndDate": {}, + "Limit": {}, + "Marker": {} + } + } + } + } + } + }, + "output": { + "type": "structure", + "members": { + "location": { + "location": "header", + "name": "Location" + }, + "jobId": { + "location": "header", + "name": "x-amz-job-id" + } + } + } + }, + "initiateMultipartUpload": { + "name": "InitiateMultipartUpload", + "http": { + "method": "POST", + "uri": "/{accountId}/vaults/{vaultName}/multipart-uploads" + }, + "input": { + "type": "structure", + "members": { + "accountId": { + "location": "uri" + }, + "vaultName": { + "location": "uri" + }, + "archiveDescription": { + "location": "header", + "name": "x-amz-archive-description" + }, + "partSize": { + "location": "header", + "name": "x-amz-part-size" + } + } + }, + "output": { + "type": "structure", + "members": { + "location": { + "location": "header", + "name": "Location" + }, + "uploadId": { + "location": "header", + "name": "x-amz-multipart-upload-id" + } + } + } + }, + "listJobs": { + "name": "ListJobs", + "http": { + "method": "GET", + "uri": "/{accountId}/vaults/{vaultName}/jobs?marker={marker}&limit={limit}&completed={completed}&statuscode={statuscode}" + }, + "input": { + "type": "structure", + "members": { + "accountId": { + "location": "uri" + }, + "vaultName": { + "location": "uri" + }, + "limit": { + "location": "uri" + }, + "marker": { + "location": "uri" + }, + "statuscode": { + "location": "uri" + }, + "completed": { + "location": "uri" + } + } + }, + "output": { + "type": "structure", + "members": { + "JobList": { + "type": "list", + "members": { + "type": "structure", + "members": { + "JobId": {}, + "JobDescription": {}, + "Action": {}, + "ArchiveId": {}, + "VaultARN": {}, + "CreationDate": {}, + "Completed": { + "type": "boolean" + }, + "StatusCode": {}, + "StatusMessage": {}, + "ArchiveSizeInBytes": { + "type": "integer" + }, + "InventorySizeInBytes": { + "type": "integer" + }, + "SNSTopic": {}, + "CompletionDate": {}, + "SHA256TreeHash": {}, + "ArchiveSHA256TreeHash": {}, + "RetrievalByteRange": {}, + "InventoryRetrievalParameters": { + "type": "structure", + "members": { + "Format": {}, + "StartDate": {}, + "EndDate": {}, + "Limit": {}, + "Marker": {} + } + } + } + } + }, + "Marker": {} + } + } + }, + "listMultipartUploads": { + "name": "ListMultipartUploads", + "http": { + "method": "GET", + "uri": "/{accountId}/vaults/{vaultName}/multipart-uploads?marker={marker}&limit={limit}" + }, + "input": { + "type": "structure", + "members": { + "accountId": { + "location": "uri" + }, + "vaultName": { + "location": "uri" + }, + "limit": { + "location": "uri" + }, + "marker": { + "location": "uri" + } + } + }, + "output": { + "type": "structure", + "members": { + "UploadsList": { + "type": "list", + "members": { + "type": "structure", + "members": { + "MultipartUploadId": {}, + "VaultARN": {}, + "ArchiveDescription": {}, + "PartSizeInBytes": { + "type": "integer" + }, + "CreationDate": {} + } + } + }, + "Marker": {} + } + } + }, + "listParts": { + "name": "ListParts", + "http": { + "method": "GET", + "uri": "/{accountId}/vaults/{vaultName}/multipart-uploads/{uploadId}?marker={marker}&limit={limit}" + }, + "input": { + "type": "structure", + "members": { + "accountId": { + "location": "uri" + }, + "vaultName": { + "location": "uri" + }, + "uploadId": { + "location": "uri" + }, + "marker": { + "location": "uri" + }, + "limit": { + "location": "uri" + } + } + }, + "output": { + "type": "structure", + "members": { + "MultipartUploadId": {}, + "VaultARN": {}, + "ArchiveDescription": {}, + "PartSizeInBytes": { + "type": "integer" + }, + "CreationDate": {}, + "Parts": { + "type": "list", + "members": { + "type": "structure", + "members": { + "RangeInBytes": {}, + "SHA256TreeHash": {} + } + } + }, + "Marker": {} + } + } + }, + "listVaults": { + "name": "ListVaults", + "http": { + "method": "GET", + "uri": "/{accountId}/vaults?marker={marker}&limit={limit}" + }, + "input": { + "type": "structure", + "members": { + "accountId": { + "location": "uri" + }, + "marker": { + "location": "uri" + }, + "limit": { + "location": "uri" + } + } + }, + "output": { + "type": "structure", + "members": { + "VaultList": { + "type": "list", + "members": { + "type": "structure", + "members": { + "VaultARN": {}, + "VaultName": {}, + "CreationDate": {}, + "LastInventoryDate": {}, + "NumberOfArchives": { + "type": "integer" + }, + "SizeInBytes": { + "type": "integer" + } + } + } + }, + "Marker": {} + } + } + }, + "setVaultNotifications": { + "name": "SetVaultNotifications", + "http": { + "method": "PUT", + "uri": "/{accountId}/vaults/{vaultName}/notification-configuration" + }, + "input": { + "payload": "vaultNotificationConfig", + "type": "structure", + "members": { + "accountId": { + "location": "uri" + }, + "vaultName": { + "location": "uri" + }, + "vaultNotificationConfig": { + "type": "structure", + "members": { + "SNSTopic": {}, + "Events": { + "type": "list", + "members": {} + } + } + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "uploadArchive": { + "name": "UploadArchive", + "http": { + "method": "POST", + "uri": "/{accountId}/vaults/{vaultName}/archives" + }, + "input": { + "payload": "body", + "type": "structure", + "members": { + "vaultName": { + "location": "uri" + }, + "accountId": { + "location": "uri" + }, + "archiveDescription": { + "location": "header", + "name": "x-amz-archive-description" + }, + "checksum": { + "location": "header", + "name": "x-amz-sha256-tree-hash" + }, + "body": { + "type": "binary", + "streaming": true + } + } + }, + "output": { + "type": "structure", + "members": { + "location": { + "location": "header", + "name": "Location" + }, + "checksum": { + "location": "header", + "name": "x-amz-sha256-tree-hash" + }, + "archiveId": { + "location": "header", + "name": "x-amz-archive-id" + } + } + } + }, + "uploadMultipartPart": { + "name": "UploadMultipartPart", + "http": { + "method": "PUT", + "uri": "/{accountId}/vaults/{vaultName}/multipart-uploads/{uploadId}" + }, + "input": { + "payload": "body", + "type": "structure", + "members": { + "accountId": { + "location": "uri" + }, + "vaultName": { + "location": "uri" + }, + "uploadId": { + "location": "uri" + }, + "checksum": { + "location": "header", + "name": "x-amz-sha256-tree-hash" + }, + "range": { + "location": "header", + "name": "Content-Range" + }, + "body": { + "type": "binary", + "streaming": true + } + } + }, + "output": { + "type": "structure", + "members": { + "checksum": { + "location": "header", + "name": "x-amz-sha256-tree-hash" + } + } + } + } + }, + "pagination": { + "listJobs": { + "inputToken": "marker", + "outputToken": "Marker", + "limitKey": "limit", + "resultKey": "JobList" + }, + "listMultipartUploads": { + "inputToken": "marker", + "outputToken": "Marker", + "limitKey": "limit", + "resultKey": "UploadsList" + }, + "listParts": { + "inputToken": "marker", + "outputToken": "Marker", + "limitKey": "limit", + "resultKey": "Parts" + }, + "listVaults": { + "inputToken": "marker", + "outputToken": "Marker", + "limitKey": "limit", + "resultKey": "VaultList" + } + }, + "waiters": { + "__default__": { + "interval": 3, + "maxAttempts": 15 + }, + "__VaultState": { + "operation": "DescribeVault" + }, + "vaultExists": { + "extends": "__VaultState", + "ignoreErrors": [ + "ResourceNotFoundException" + ], + "successType": "output" + }, + "vaultNotExists": { + "extends": "__VaultState", + "successType": "error", + "successValue": "ResourceNotFoundException" + } + } +} \ No newline at end of file diff --git a/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/IAM-2010-05-08.json b/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/IAM-2010-05-08.json new file mode 100644 index 00000000..19163811 --- /dev/null +++ b/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/IAM-2010-05-08.json @@ -0,0 +1,2041 @@ +{ + "format": "query", + "apiVersion": "2010-05-08", + "endpointPrefix": "iam", + "globalEndpoint": "iam.amazonaws.com", + "resultWrapped": true, + "serviceAbbreviation": "IAM", + "serviceFullName": "AWS Identity and Access Management", + "signatureVersion": "v4", + "timestampFormat": "iso8601", + "operations": { + "addRoleToInstanceProfile": { + "name": "AddRoleToInstanceProfile", + "input": { + "type": "structure", + "members": { + "InstanceProfileName": { + "required": true + }, + "RoleName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "addUserToGroup": { + "name": "AddUserToGroup", + "input": { + "type": "structure", + "members": { + "GroupName": { + "required": true + }, + "UserName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "changePassword": { + "name": "ChangePassword", + "input": { + "type": "structure", + "members": { + "OldPassword": { + "required": true + }, + "NewPassword": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "createAccessKey": { + "name": "CreateAccessKey", + "input": { + "type": "structure", + "members": { + "UserName": {} + } + }, + "output": { + "type": "structure", + "members": { + "AccessKey": { + "type": "structure", + "members": { + "UserName": {}, + "AccessKeyId": {}, + "Status": {}, + "SecretAccessKey": {}, + "CreateDate": { + "type": "timestamp" + } + } + } + } + } + }, + "createAccountAlias": { + "name": "CreateAccountAlias", + "input": { + "type": "structure", + "members": { + "AccountAlias": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "createGroup": { + "name": "CreateGroup", + "input": { + "type": "structure", + "members": { + "Path": {}, + "GroupName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "Group": { + "type": "structure", + "members": { + "Path": {}, + "GroupName": {}, + "GroupId": {}, + "Arn": {}, + "CreateDate": { + "type": "timestamp" + } + } + } + } + } + }, + "createInstanceProfile": { + "name": "CreateInstanceProfile", + "input": { + "type": "structure", + "members": { + "InstanceProfileName": { + "required": true + }, + "Path": {} + } + }, + "output": { + "type": "structure", + "members": { + "InstanceProfile": { + "type": "structure", + "members": { + "Path": {}, + "InstanceProfileName": {}, + "InstanceProfileId": {}, + "Arn": {}, + "CreateDate": { + "type": "timestamp" + }, + "Roles": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Path": {}, + "RoleName": {}, + "RoleId": {}, + "Arn": {}, + "CreateDate": { + "type": "timestamp" + }, + "AssumeRolePolicyDocument": {} + } + } + } + } + } + } + } + }, + "createLoginProfile": { + "name": "CreateLoginProfile", + "input": { + "type": "structure", + "members": { + "UserName": { + "required": true + }, + "Password": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "LoginProfile": { + "type": "structure", + "members": { + "UserName": {}, + "CreateDate": { + "type": "timestamp" + } + } + } + } + } + }, + "createRole": { + "name": "CreateRole", + "input": { + "type": "structure", + "members": { + "Path": {}, + "RoleName": { + "required": true + }, + "AssumeRolePolicyDocument": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "Role": { + "type": "structure", + "members": { + "Path": {}, + "RoleName": {}, + "RoleId": {}, + "Arn": {}, + "CreateDate": { + "type": "timestamp" + }, + "AssumeRolePolicyDocument": {} + } + } + } + } + }, + "createSAMLProvider": { + "name": "CreateSAMLProvider", + "input": { + "type": "structure", + "members": { + "SAMLMetadataDocument": { + "required": true + }, + "Name": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "SAMLProviderArn": {} + } + } + }, + "createUser": { + "name": "CreateUser", + "input": { + "type": "structure", + "members": { + "Path": {}, + "UserName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "User": { + "type": "structure", + "members": { + "Path": {}, + "UserName": {}, + "UserId": {}, + "Arn": {}, + "CreateDate": { + "type": "timestamp" + } + } + } + } + } + }, + "createVirtualMFADevice": { + "name": "CreateVirtualMFADevice", + "input": { + "type": "structure", + "members": { + "Path": {}, + "VirtualMFADeviceName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "VirtualMFADevice": { + "type": "structure", + "members": { + "SerialNumber": {}, + "Base32StringSeed": { + "type": "base64" + }, + "QRCodePNG": { + "type": "base64" + }, + "User": { + "type": "structure", + "members": { + "Path": {}, + "UserName": {}, + "UserId": {}, + "Arn": {}, + "CreateDate": { + "type": "timestamp" + } + } + }, + "EnableDate": { + "type": "timestamp" + } + } + } + } + } + }, + "deactivateMFADevice": { + "name": "DeactivateMFADevice", + "input": { + "type": "structure", + "members": { + "UserName": { + "required": true + }, + "SerialNumber": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteAccessKey": { + "name": "DeleteAccessKey", + "input": { + "type": "structure", + "members": { + "UserName": {}, + "AccessKeyId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteAccountAlias": { + "name": "DeleteAccountAlias", + "input": { + "type": "structure", + "members": { + "AccountAlias": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteAccountPasswordPolicy": { + "name": "DeleteAccountPasswordPolicy", + "input": { + "type": "structure", + "members": {} + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteGroup": { + "name": "DeleteGroup", + "input": { + "type": "structure", + "members": { + "GroupName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteGroupPolicy": { + "name": "DeleteGroupPolicy", + "input": { + "type": "structure", + "members": { + "GroupName": { + "required": true + }, + "PolicyName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteInstanceProfile": { + "name": "DeleteInstanceProfile", + "input": { + "type": "structure", + "members": { + "InstanceProfileName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteLoginProfile": { + "name": "DeleteLoginProfile", + "input": { + "type": "structure", + "members": { + "UserName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteRole": { + "name": "DeleteRole", + "input": { + "type": "structure", + "members": { + "RoleName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteRolePolicy": { + "name": "DeleteRolePolicy", + "input": { + "type": "structure", + "members": { + "RoleName": { + "required": true + }, + "PolicyName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteSAMLProvider": { + "name": "DeleteSAMLProvider", + "input": { + "type": "structure", + "members": { + "SAMLProviderArn": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteServerCertificate": { + "name": "DeleteServerCertificate", + "input": { + "type": "structure", + "members": { + "ServerCertificateName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteSigningCertificate": { + "name": "DeleteSigningCertificate", + "input": { + "type": "structure", + "members": { + "UserName": {}, + "CertificateId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteUser": { + "name": "DeleteUser", + "input": { + "type": "structure", + "members": { + "UserName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteUserPolicy": { + "name": "DeleteUserPolicy", + "input": { + "type": "structure", + "members": { + "UserName": { + "required": true + }, + "PolicyName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteVirtualMFADevice": { + "name": "DeleteVirtualMFADevice", + "input": { + "type": "structure", + "members": { + "SerialNumber": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "enableMFADevice": { + "name": "EnableMFADevice", + "input": { + "type": "structure", + "members": { + "UserName": { + "required": true + }, + "SerialNumber": { + "required": true + }, + "AuthenticationCode1": { + "required": true + }, + "AuthenticationCode2": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "getAccountPasswordPolicy": { + "name": "GetAccountPasswordPolicy", + "input": { + "type": "structure", + "members": {} + }, + "output": { + "type": "structure", + "members": { + "PasswordPolicy": { + "type": "structure", + "members": { + "MinimumPasswordLength": { + "type": "integer" + }, + "RequireSymbols": { + "type": "boolean" + }, + "RequireNumbers": { + "type": "boolean" + }, + "RequireUppercaseCharacters": { + "type": "boolean" + }, + "RequireLowercaseCharacters": { + "type": "boolean" + }, + "AllowUsersToChangePassword": { + "type": "boolean" + }, + "ExpirePasswords": { + "type": "boolean" + }, + "MaxPasswordAge": { + "type": "integer" + } + } + } + } + } + }, + "getAccountSummary": { + "name": "GetAccountSummary", + "input": { + "type": "structure", + "members": {} + }, + "output": { + "type": "structure", + "members": { + "SummaryMap": { + "type": "map", + "keys": {}, + "members": { + "type": "integer" + } + } + } + } + }, + "getGroup": { + "name": "GetGroup", + "input": { + "type": "structure", + "members": { + "GroupName": { + "required": true + }, + "Marker": {}, + "MaxItems": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "Group": { + "type": "structure", + "members": { + "Path": {}, + "GroupName": {}, + "GroupId": {}, + "Arn": {}, + "CreateDate": { + "type": "timestamp" + } + } + }, + "Users": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Path": {}, + "UserName": {}, + "UserId": {}, + "Arn": {}, + "CreateDate": { + "type": "timestamp" + } + } + } + }, + "IsTruncated": { + "type": "boolean" + }, + "Marker": {} + } + } + }, + "getGroupPolicy": { + "name": "GetGroupPolicy", + "input": { + "type": "structure", + "members": { + "GroupName": { + "required": true + }, + "PolicyName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "GroupName": {}, + "PolicyName": {}, + "PolicyDocument": {} + } + } + }, + "getInstanceProfile": { + "name": "GetInstanceProfile", + "input": { + "type": "structure", + "members": { + "InstanceProfileName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "InstanceProfile": { + "type": "structure", + "members": { + "Path": {}, + "InstanceProfileName": {}, + "InstanceProfileId": {}, + "Arn": {}, + "CreateDate": { + "type": "timestamp" + }, + "Roles": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Path": {}, + "RoleName": {}, + "RoleId": {}, + "Arn": {}, + "CreateDate": { + "type": "timestamp" + }, + "AssumeRolePolicyDocument": {} + } + } + } + } + } + } + } + }, + "getLoginProfile": { + "name": "GetLoginProfile", + "input": { + "type": "structure", + "members": { + "UserName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "LoginProfile": { + "type": "structure", + "members": { + "UserName": {}, + "CreateDate": { + "type": "timestamp" + } + } + } + } + } + }, + "getRole": { + "name": "GetRole", + "input": { + "type": "structure", + "members": { + "RoleName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "Role": { + "type": "structure", + "members": { + "Path": {}, + "RoleName": {}, + "RoleId": {}, + "Arn": {}, + "CreateDate": { + "type": "timestamp" + }, + "AssumeRolePolicyDocument": {} + } + } + } + } + }, + "getRolePolicy": { + "name": "GetRolePolicy", + "input": { + "type": "structure", + "members": { + "RoleName": { + "required": true + }, + "PolicyName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "RoleName": {}, + "PolicyName": {}, + "PolicyDocument": {} + } + } + }, + "getSAMLProvider": { + "name": "GetSAMLProvider", + "input": { + "type": "structure", + "members": { + "SAMLProviderArn": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "SAMLMetadataDocument": {}, + "CreateDate": { + "type": "timestamp" + }, + "ValidUntil": { + "type": "timestamp" + } + } + } + }, + "getServerCertificate": { + "name": "GetServerCertificate", + "input": { + "type": "structure", + "members": { + "ServerCertificateName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "ServerCertificate": { + "type": "structure", + "members": { + "ServerCertificateMetadata": { + "type": "structure", + "members": { + "Path": {}, + "ServerCertificateName": {}, + "ServerCertificateId": {}, + "Arn": {}, + "UploadDate": { + "type": "timestamp" + } + } + }, + "CertificateBody": {}, + "CertificateChain": {} + } + } + } + } + }, + "getUser": { + "name": "GetUser", + "input": { + "type": "structure", + "members": { + "UserName": {} + } + }, + "output": { + "type": "structure", + "members": { + "User": { + "type": "structure", + "members": { + "Path": {}, + "UserName": {}, + "UserId": {}, + "Arn": {}, + "CreateDate": { + "type": "timestamp" + } + } + } + } + } + }, + "getUserPolicy": { + "name": "GetUserPolicy", + "input": { + "type": "structure", + "members": { + "UserName": { + "required": true + }, + "PolicyName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "UserName": {}, + "PolicyName": {}, + "PolicyDocument": {} + } + } + }, + "listAccessKeys": { + "name": "ListAccessKeys", + "input": { + "type": "structure", + "members": { + "UserName": {}, + "Marker": {}, + "MaxItems": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "AccessKeyMetadata": { + "type": "list", + "members": { + "type": "structure", + "members": { + "UserName": {}, + "AccessKeyId": {}, + "Status": {}, + "CreateDate": { + "type": "timestamp" + } + } + } + }, + "IsTruncated": { + "type": "boolean" + }, + "Marker": {} + } + } + }, + "listAccountAliases": { + "name": "ListAccountAliases", + "input": { + "type": "structure", + "members": { + "Marker": {}, + "MaxItems": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "AccountAliases": { + "type": "list", + "members": {} + }, + "IsTruncated": { + "type": "boolean" + }, + "Marker": {} + } + } + }, + "listGroupPolicies": { + "name": "ListGroupPolicies", + "input": { + "type": "structure", + "members": { + "GroupName": { + "required": true + }, + "Marker": {}, + "MaxItems": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "PolicyNames": { + "type": "list", + "members": {} + }, + "IsTruncated": { + "type": "boolean" + }, + "Marker": {} + } + } + }, + "listGroups": { + "name": "ListGroups", + "input": { + "type": "structure", + "members": { + "PathPrefix": {}, + "Marker": {}, + "MaxItems": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "Groups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Path": {}, + "GroupName": {}, + "GroupId": {}, + "Arn": {}, + "CreateDate": { + "type": "timestamp" + } + } + } + }, + "IsTruncated": { + "type": "boolean" + }, + "Marker": {} + } + } + }, + "listGroupsForUser": { + "name": "ListGroupsForUser", + "input": { + "type": "structure", + "members": { + "UserName": { + "required": true + }, + "Marker": {}, + "MaxItems": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "Groups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Path": {}, + "GroupName": {}, + "GroupId": {}, + "Arn": {}, + "CreateDate": { + "type": "timestamp" + } + } + } + }, + "IsTruncated": { + "type": "boolean" + }, + "Marker": {} + } + } + }, + "listInstanceProfiles": { + "name": "ListInstanceProfiles", + "input": { + "type": "structure", + "members": { + "PathPrefix": {}, + "Marker": {}, + "MaxItems": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "InstanceProfiles": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Path": {}, + "InstanceProfileName": {}, + "InstanceProfileId": {}, + "Arn": {}, + "CreateDate": { + "type": "timestamp" + }, + "Roles": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Path": {}, + "RoleName": {}, + "RoleId": {}, + "Arn": {}, + "CreateDate": { + "type": "timestamp" + }, + "AssumeRolePolicyDocument": {} + } + } + } + } + } + }, + "IsTruncated": { + "type": "boolean" + }, + "Marker": {} + } + } + }, + "listInstanceProfilesForRole": { + "name": "ListInstanceProfilesForRole", + "input": { + "type": "structure", + "members": { + "RoleName": { + "required": true + }, + "Marker": {}, + "MaxItems": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "InstanceProfiles": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Path": {}, + "InstanceProfileName": {}, + "InstanceProfileId": {}, + "Arn": {}, + "CreateDate": { + "type": "timestamp" + }, + "Roles": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Path": {}, + "RoleName": {}, + "RoleId": {}, + "Arn": {}, + "CreateDate": { + "type": "timestamp" + }, + "AssumeRolePolicyDocument": {} + } + } + } + } + } + }, + "IsTruncated": { + "type": "boolean" + }, + "Marker": {} + } + } + }, + "listMFADevices": { + "name": "ListMFADevices", + "input": { + "type": "structure", + "members": { + "UserName": {}, + "Marker": {}, + "MaxItems": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "MFADevices": { + "type": "list", + "members": { + "type": "structure", + "members": { + "UserName": {}, + "SerialNumber": {}, + "EnableDate": { + "type": "timestamp" + } + } + } + }, + "IsTruncated": { + "type": "boolean" + }, + "Marker": {} + } + } + }, + "listRolePolicies": { + "name": "ListRolePolicies", + "input": { + "type": "structure", + "members": { + "RoleName": { + "required": true + }, + "Marker": {}, + "MaxItems": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "PolicyNames": { + "type": "list", + "members": {} + }, + "IsTruncated": { + "type": "boolean" + }, + "Marker": {} + } + } + }, + "listRoles": { + "name": "ListRoles", + "input": { + "type": "structure", + "members": { + "PathPrefix": {}, + "Marker": {}, + "MaxItems": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "Roles": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Path": {}, + "RoleName": {}, + "RoleId": {}, + "Arn": {}, + "CreateDate": { + "type": "timestamp" + }, + "AssumeRolePolicyDocument": {} + } + } + }, + "IsTruncated": { + "type": "boolean" + }, + "Marker": {} + } + } + }, + "listSAMLProviders": { + "name": "ListSAMLProviders", + "input": { + "type": "structure", + "members": {} + }, + "output": { + "type": "structure", + "members": { + "SAMLProviderList": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Arn": {}, + "ValidUntil": { + "type": "timestamp" + }, + "CreateDate": { + "type": "timestamp" + } + } + } + } + } + } + }, + "listServerCertificates": { + "name": "ListServerCertificates", + "input": { + "type": "structure", + "members": { + "PathPrefix": {}, + "Marker": {}, + "MaxItems": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "ServerCertificateMetadataList": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Path": {}, + "ServerCertificateName": {}, + "ServerCertificateId": {}, + "Arn": {}, + "UploadDate": { + "type": "timestamp" + } + } + } + }, + "IsTruncated": { + "type": "boolean" + }, + "Marker": {} + } + } + }, + "listSigningCertificates": { + "name": "ListSigningCertificates", + "input": { + "type": "structure", + "members": { + "UserName": {}, + "Marker": {}, + "MaxItems": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "Certificates": { + "type": "list", + "members": { + "type": "structure", + "members": { + "UserName": {}, + "CertificateId": {}, + "CertificateBody": {}, + "Status": {}, + "UploadDate": { + "type": "timestamp" + } + } + } + }, + "IsTruncated": { + "type": "boolean" + }, + "Marker": {} + } + } + }, + "listUserPolicies": { + "name": "ListUserPolicies", + "input": { + "type": "structure", + "members": { + "UserName": { + "required": true + }, + "Marker": {}, + "MaxItems": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "PolicyNames": { + "type": "list", + "members": {} + }, + "IsTruncated": { + "type": "boolean" + }, + "Marker": {} + } + } + }, + "listUsers": { + "name": "ListUsers", + "input": { + "type": "structure", + "members": { + "PathPrefix": {}, + "Marker": {}, + "MaxItems": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "Users": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Path": {}, + "UserName": {}, + "UserId": {}, + "Arn": {}, + "CreateDate": { + "type": "timestamp" + } + } + } + }, + "IsTruncated": { + "type": "boolean" + }, + "Marker": {} + } + } + }, + "listVirtualMFADevices": { + "name": "ListVirtualMFADevices", + "input": { + "type": "structure", + "members": { + "AssignmentStatus": {}, + "Marker": {}, + "MaxItems": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "VirtualMFADevices": { + "type": "list", + "members": { + "type": "structure", + "members": { + "SerialNumber": {}, + "Base32StringSeed": { + "type": "base64" + }, + "QRCodePNG": { + "type": "base64" + }, + "User": { + "type": "structure", + "members": { + "Path": {}, + "UserName": {}, + "UserId": {}, + "Arn": {}, + "CreateDate": { + "type": "timestamp" + } + } + }, + "EnableDate": { + "type": "timestamp" + } + } + } + }, + "IsTruncated": { + "type": "boolean" + }, + "Marker": {} + } + } + }, + "putGroupPolicy": { + "name": "PutGroupPolicy", + "input": { + "type": "structure", + "members": { + "GroupName": { + "required": true + }, + "PolicyName": { + "required": true + }, + "PolicyDocument": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "putRolePolicy": { + "name": "PutRolePolicy", + "input": { + "type": "structure", + "members": { + "RoleName": { + "required": true + }, + "PolicyName": { + "required": true + }, + "PolicyDocument": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "putUserPolicy": { + "name": "PutUserPolicy", + "input": { + "type": "structure", + "members": { + "UserName": { + "required": true + }, + "PolicyName": { + "required": true + }, + "PolicyDocument": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "removeRoleFromInstanceProfile": { + "name": "RemoveRoleFromInstanceProfile", + "input": { + "type": "structure", + "members": { + "InstanceProfileName": { + "required": true + }, + "RoleName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "removeUserFromGroup": { + "name": "RemoveUserFromGroup", + "input": { + "type": "structure", + "members": { + "GroupName": { + "required": true + }, + "UserName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "resyncMFADevice": { + "name": "ResyncMFADevice", + "input": { + "type": "structure", + "members": { + "UserName": { + "required": true + }, + "SerialNumber": { + "required": true + }, + "AuthenticationCode1": { + "required": true + }, + "AuthenticationCode2": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "updateAccessKey": { + "name": "UpdateAccessKey", + "input": { + "type": "structure", + "members": { + "UserName": {}, + "AccessKeyId": { + "required": true + }, + "Status": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "updateAccountPasswordPolicy": { + "name": "UpdateAccountPasswordPolicy", + "input": { + "type": "structure", + "members": { + "MinimumPasswordLength": { + "type": "integer" + }, + "RequireSymbols": { + "type": "boolean" + }, + "RequireNumbers": { + "type": "boolean" + }, + "RequireUppercaseCharacters": { + "type": "boolean" + }, + "RequireLowercaseCharacters": { + "type": "boolean" + }, + "AllowUsersToChangePassword": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "updateAssumeRolePolicy": { + "name": "UpdateAssumeRolePolicy", + "input": { + "type": "structure", + "members": { + "RoleName": { + "required": true + }, + "PolicyDocument": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "updateGroup": { + "name": "UpdateGroup", + "input": { + "type": "structure", + "members": { + "GroupName": { + "required": true + }, + "NewPath": {}, + "NewGroupName": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "updateLoginProfile": { + "name": "UpdateLoginProfile", + "input": { + "type": "structure", + "members": { + "UserName": { + "required": true + }, + "Password": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "updateSAMLProvider": { + "name": "UpdateSAMLProvider", + "input": { + "type": "structure", + "members": { + "SAMLMetadataDocument": { + "required": true + }, + "SAMLProviderArn": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "SAMLProviderArn": {} + } + } + }, + "updateServerCertificate": { + "name": "UpdateServerCertificate", + "input": { + "type": "structure", + "members": { + "ServerCertificateName": { + "required": true + }, + "NewPath": {}, + "NewServerCertificateName": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "updateSigningCertificate": { + "name": "UpdateSigningCertificate", + "input": { + "type": "structure", + "members": { + "UserName": {}, + "CertificateId": { + "required": true + }, + "Status": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "updateUser": { + "name": "UpdateUser", + "input": { + "type": "structure", + "members": { + "UserName": { + "required": true + }, + "NewPath": {}, + "NewUserName": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "uploadServerCertificate": { + "name": "UploadServerCertificate", + "input": { + "type": "structure", + "members": { + "Path": {}, + "ServerCertificateName": { + "required": true + }, + "CertificateBody": { + "required": true + }, + "PrivateKey": { + "required": true + }, + "CertificateChain": {} + } + }, + "output": { + "type": "structure", + "members": { + "ServerCertificateMetadata": { + "type": "structure", + "members": { + "Path": {}, + "ServerCertificateName": {}, + "ServerCertificateId": {}, + "Arn": {}, + "UploadDate": { + "type": "timestamp" + } + } + } + } + } + }, + "uploadSigningCertificate": { + "name": "UploadSigningCertificate", + "input": { + "type": "structure", + "members": { + "UserName": {}, + "CertificateBody": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "Certificate": { + "type": "structure", + "members": { + "UserName": {}, + "CertificateId": {}, + "CertificateBody": {}, + "Status": {}, + "UploadDate": { + "type": "timestamp" + } + } + } + } + } + } + }, + "pagination": { + "getGroup": { + "inputToken": "Marker", + "outputToken": "Marker", + "moreResults": "IsTruncated", + "limitKey": "MaxItems", + "resultKey": "Users" + }, + "listAccessKeys": { + "inputToken": "Marker", + "outputToken": "Marker", + "moreResults": "IsTruncated", + "limitKey": "MaxItems", + "resultKey": "AccessKeyMetadata" + }, + "listAccountAliases": { + "inputToken": "Marker", + "outputToken": "Marker", + "moreResults": "IsTruncated", + "limitKey": "MaxItems", + "resultKey": "AccountAliases" + }, + "listGroupPolicies": { + "inputToken": "Marker", + "outputToken": "Marker", + "moreResults": "IsTruncated", + "limitKey": "MaxItems", + "resultKey": "PolicyNames" + }, + "listGroups": { + "inputToken": "Marker", + "outputToken": "Marker", + "moreResults": "IsTruncated", + "limitKey": "MaxItems", + "resultKey": "Groups" + }, + "listGroupsForUser": { + "inputToken": "Marker", + "outputToken": "Marker", + "moreResults": "IsTruncated", + "limitKey": "MaxItems", + "resultKey": "Groups" + }, + "listInstanceProfiles": { + "inputToken": "Marker", + "outputToken": "Marker", + "moreResults": "IsTruncated", + "limitKey": "MaxItems", + "resultKey": "InstanceProfiles" + }, + "listInstanceProfilesForRole": { + "inputToken": "Marker", + "outputToken": "Marker", + "moreResults": "IsTruncated", + "limitKey": "MaxItems", + "resultKey": "InstanceProfiles" + }, + "listMFADevices": { + "inputToken": "Marker", + "outputToken": "Marker", + "moreResults": "IsTruncated", + "limitKey": "MaxItems", + "resultKey": "MFADevices" + }, + "listRolePolicies": { + "inputToken": "Marker", + "outputToken": "Marker", + "moreResults": "IsTruncated", + "limitKey": "MaxItems", + "resultKey": "PolicyNames" + }, + "listRoles": { + "inputToken": "Marker", + "outputToken": "Marker", + "moreResults": "IsTruncated", + "limitKey": "MaxItems", + "resultKey": "Roles" + }, + "listSAMLProviders": { + "resultKey": "SAMLProviderList" + }, + "listServerCertificates": { + "inputToken": "Marker", + "outputToken": "Marker", + "moreResults": "IsTruncated", + "limitKey": "MaxItems", + "resultKey": "ServerCertificateMetadataList" + }, + "listSigningCertificates": { + "inputToken": "Marker", + "outputToken": "Marker", + "moreResults": "IsTruncated", + "limitKey": "MaxItems", + "resultKey": "Certificates" + }, + "listUserPolicies": { + "inputToken": "Marker", + "outputToken": "Marker", + "moreResults": "IsTruncated", + "limitKey": "MaxItems", + "resultKey": "PolicyNames" + }, + "listUsers": { + "inputToken": "Marker", + "outputToken": "Marker", + "moreResults": "IsTruncated", + "limitKey": "MaxItems", + "resultKey": "Users" + }, + "listVirtualMFADevices": { + "inputToken": "Marker", + "outputToken": "Marker", + "moreResults": "IsTruncated", + "limitKey": "MaxItems", + "resultKey": "VirtualMFADevices" + } + } +} \ No newline at end of file diff --git a/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/ImportExport-2010-06-01.json b/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/ImportExport-2010-06-01.json new file mode 100644 index 00000000..1bf7a194 --- /dev/null +++ b/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/ImportExport-2010-06-01.json @@ -0,0 +1,192 @@ +{ + "format": "query", + "apiVersion": "2010-06-01", + "endpointPrefix": "importexport", + "globalEndpoint": "importexport.amazonaws.com", + "resultWrapped": true, + "serviceFullName": "AWS Import/Export", + "signatureVersion": "v2", + "timestampFormat": "iso8601", + "operations": { + "cancelJob": { + "name": "CancelJob", + "http": { + "method": "POST", + "uri": "/?Operation=CancelJob" + }, + "input": { + "type": "structure", + "members": { + "JobId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "Success": { + "type": "boolean" + } + } + } + }, + "createJob": { + "name": "CreateJob", + "http": { + "method": "POST", + "uri": "/?Operation=CreateJob" + }, + "input": { + "type": "structure", + "members": { + "JobType": { + "required": true + }, + "Manifest": { + "required": true + }, + "ManifestAddendum": {}, + "ValidateOnly": { + "type": "boolean", + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "JobId": {}, + "JobType": {}, + "AwsShippingAddress": {}, + "Signature": {}, + "SignatureFileContents": {}, + "WarningMessage": {} + } + } + }, + "getStatus": { + "name": "GetStatus", + "http": { + "method": "POST", + "uri": "/?Operation=GetStatus" + }, + "input": { + "type": "structure", + "members": { + "JobId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "JobId": {}, + "JobType": {}, + "AwsShippingAddress": {}, + "LocationCode": {}, + "LocationMessage": {}, + "ProgressCode": {}, + "ProgressMessage": {}, + "Carrier": {}, + "TrackingNumber": {}, + "LogBucket": {}, + "LogKey": {}, + "ErrorCount": { + "type": "integer" + }, + "Signature": {}, + "SignatureFileContents": {}, + "CurrentManifest": {}, + "CreationDate": { + "type": "timestamp" + } + } + } + }, + "listJobs": { + "name": "ListJobs", + "http": { + "method": "POST", + "uri": "/?Operation=ListJobs" + }, + "input": { + "type": "structure", + "members": { + "MaxJobs": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "type": "structure", + "members": { + "Jobs": { + "type": "list", + "members": { + "type": "structure", + "members": { + "JobId": {}, + "CreationDate": { + "type": "timestamp" + }, + "IsCanceled": { + "type": "boolean" + }, + "JobType": {} + } + } + }, + "IsTruncated": { + "type": "boolean" + } + } + } + }, + "updateJob": { + "name": "UpdateJob", + "http": { + "method": "POST", + "uri": "/?Operation=UpdateJob" + }, + "input": { + "type": "structure", + "members": { + "JobId": { + "required": true + }, + "Manifest": { + "required": true + }, + "JobType": { + "required": true + }, + "ValidateOnly": { + "type": "boolean", + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "Success": { + "type": "boolean" + }, + "WarningMessage": {} + } + } + } + }, + "pagination": { + "listJobs": { + "inputToken": "Marker", + "outputToken": "Jobs[-1].JobId", + "moreResults": "IsTruncated", + "limitKey": "MaxJobs", + "resultKey": "Jobs" + } + } +} \ No newline at end of file diff --git a/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/Kinesis-2013-12-02.json b/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/Kinesis-2013-12-02.json new file mode 100644 index 00000000..8ad0c5c3 --- /dev/null +++ b/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/Kinesis-2013-12-02.json @@ -0,0 +1,275 @@ +{ + "format": "json", + "apiVersion": "2013-12-02", + "endpointPrefix": "kinesis", + "jsonVersion": "1.1", + "serviceAbbreviation": "Kinesis", + "serviceFullName": "Amazon Kinesis", + "signatureVersion": "v4", + "targetPrefix": "Kinesis_20131202", + "timestampFormat": "iso8601", + "operations": { + "createStream": { + "name": "CreateStream", + "input": { + "type": "structure", + "members": { + "StreamName": { + "required": true + }, + "ShardCount": { + "type": "integer", + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteStream": { + "name": "DeleteStream", + "input": { + "type": "structure", + "members": { + "StreamName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "describeStream": { + "name": "DescribeStream", + "input": { + "type": "structure", + "members": { + "StreamName": { + "required": true + }, + "Limit": { + "type": "integer" + }, + "ExclusiveStartShardId": {} + } + }, + "output": { + "type": "structure", + "members": { + "StreamDescription": { + "type": "structure", + "members": { + "StreamName": {}, + "StreamARN": {}, + "StreamStatus": {}, + "Shards": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ShardId": {}, + "ParentShardId": {}, + "AdjacentParentShardId": {}, + "HashKeyRange": { + "type": "structure", + "members": { + "StartingHashKey": {}, + "EndingHashKey": {} + } + }, + "SequenceNumberRange": { + "type": "structure", + "members": { + "StartingSequenceNumber": {}, + "EndingSequenceNumber": {} + } + } + } + } + }, + "HasMoreShards": { + "type": "boolean" + } + } + } + } + } + }, + "getRecords": { + "name": "GetRecords", + "input": { + "type": "structure", + "members": { + "ShardIterator": { + "required": true + }, + "Limit": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "Records": { + "type": "list", + "members": { + "type": "structure", + "members": { + "SequenceNumber": {}, + "Data": { + "type": "base64" + }, + "PartitionKey": {} + } + } + }, + "NextShardIterator": {} + } + } + }, + "getShardIterator": { + "name": "GetShardIterator", + "input": { + "type": "structure", + "members": { + "StreamName": { + "required": true + }, + "ShardId": { + "required": true + }, + "ShardIteratorType": { + "required": true + }, + "StartingSequenceNumber": {} + } + }, + "output": { + "type": "structure", + "members": { + "ShardIterator": {} + } + } + }, + "listStreams": { + "name": "ListStreams", + "input": { + "type": "structure", + "members": { + "Limit": { + "type": "integer" + }, + "ExclusiveStartStreamName": {} + } + }, + "output": { + "type": "structure", + "members": { + "StreamNames": { + "type": "list", + "members": {} + }, + "HasMoreStreams": { + "type": "boolean" + } + } + } + }, + "mergeShards": { + "name": "MergeShards", + "input": { + "type": "structure", + "members": { + "StreamName": { + "required": true + }, + "ShardToMerge": { + "required": true + }, + "AdjacentShardToMerge": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "putRecord": { + "name": "PutRecord", + "input": { + "type": "structure", + "members": { + "StreamName": { + "required": true + }, + "Data": { + "type": "base64", + "required": true + }, + "PartitionKey": { + "required": true + }, + "ExplicitHashKey": {}, + "SequenceNumberForOrdering": {} + } + }, + "output": { + "type": "structure", + "members": { + "ShardId": {}, + "SequenceNumber": {} + } + } + }, + "splitShard": { + "name": "SplitShard", + "input": { + "type": "structure", + "members": { + "StreamName": { + "required": true + }, + "ShardToSplit": { + "required": true + }, + "NewStartingHashKey": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + } + }, + "pagination": { + "describeStream": { + "inputToken": "ExclusiveStartShardId", + "limitKey": "Limit", + "moreResults": "StreamDescription.HasMoreShards", + "outputToken": "StreamDescription.Shards[-1].ShardId", + "resultKey": "StreamDescription.Shards" + }, + "getRecords": { + "inputToken": "ShardIterator", + "limitKey": "Limit", + "outputToken": "NextShardIterator", + "resultKey": "Records" + }, + "listStreams": { + "inputToken": "ExclusiveStartStreamName", + "limitKey": "Limit", + "moreResults": "HasMoreStreams", + "outputToken": "StreamNames[-1]", + "resultKey": "StreamNames" + } + } +} \ No newline at end of file diff --git a/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/OpsWorks-2013-02-18.json b/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/OpsWorks-2013-02-18.json new file mode 100644 index 00000000..cf917891 --- /dev/null +++ b/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/OpsWorks-2013-02-18.json @@ -0,0 +1,2178 @@ +{ + "format": "json", + "apiVersion": "2013-02-18", + "endpointPrefix": "opsworks", + "jsonVersion": "1.1", + "serviceFullName": "AWS OpsWorks", + "signatureVersion": "v4", + "targetPrefix": "OpsWorks_20130218", + "timestampFormat": "iso8601", + "operations": { + "assignVolume": { + "name": "AssignVolume", + "input": { + "type": "structure", + "members": { + "VolumeId": { + "required": true + }, + "InstanceId": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "associateElasticIp": { + "name": "AssociateElasticIp", + "input": { + "type": "structure", + "members": { + "ElasticIp": { + "required": true + }, + "InstanceId": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "attachElasticLoadBalancer": { + "name": "AttachElasticLoadBalancer", + "input": { + "type": "structure", + "members": { + "ElasticLoadBalancerName": { + "required": true + }, + "LayerId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "cloneStack": { + "name": "CloneStack", + "input": { + "type": "structure", + "members": { + "SourceStackId": { + "required": true + }, + "Name": {}, + "Region": {}, + "VpcId": {}, + "Attributes": { + "type": "map", + "keys": {}, + "members": {} + }, + "ServiceRoleArn": { + "required": true + }, + "DefaultInstanceProfileArn": {}, + "DefaultOs": {}, + "HostnameTheme": {}, + "DefaultAvailabilityZone": {}, + "DefaultSubnetId": {}, + "CustomJson": {}, + "ConfigurationManager": { + "type": "structure", + "members": { + "Name": {}, + "Version": {} + } + }, + "UseCustomCookbooks": { + "type": "boolean" + }, + "UseOpsworksSecurityGroups": { + "type": "boolean" + }, + "CustomCookbooksSource": { + "type": "structure", + "members": { + "Type": {}, + "Url": {}, + "Username": {}, + "Password": {}, + "SshKey": {}, + "Revision": {} + } + }, + "DefaultSshKeyName": {}, + "ClonePermissions": { + "type": "boolean" + }, + "CloneAppIds": { + "type": "list", + "members": {} + }, + "DefaultRootDeviceType": {} + } + }, + "output": { + "type": "structure", + "members": { + "StackId": {} + } + } + }, + "createApp": { + "name": "CreateApp", + "input": { + "type": "structure", + "members": { + "StackId": { + "required": true + }, + "Shortname": {}, + "Name": { + "required": true + }, + "Description": {}, + "Type": { + "required": true + }, + "AppSource": { + "type": "structure", + "members": { + "Type": {}, + "Url": {}, + "Username": {}, + "Password": {}, + "SshKey": {}, + "Revision": {} + } + }, + "Domains": { + "type": "list", + "members": {} + }, + "EnableSsl": { + "type": "boolean" + }, + "SslConfiguration": { + "type": "structure", + "members": { + "Certificate": { + "required": true + }, + "PrivateKey": { + "required": true + }, + "Chain": {} + } + }, + "Attributes": { + "type": "map", + "keys": {}, + "members": {} + } + } + }, + "output": { + "type": "structure", + "members": { + "AppId": {} + } + } + }, + "createDeployment": { + "name": "CreateDeployment", + "input": { + "type": "structure", + "members": { + "StackId": { + "required": true + }, + "AppId": {}, + "InstanceIds": { + "type": "list", + "members": {} + }, + "Command": { + "type": "structure", + "members": { + "Name": { + "required": true + }, + "Args": { + "type": "map", + "keys": {}, + "members": { + "type": "list", + "members": {} + } + } + }, + "required": true + }, + "Comment": {}, + "CustomJson": {} + } + }, + "output": { + "type": "structure", + "members": { + "DeploymentId": {} + } + } + }, + "createInstance": { + "name": "CreateInstance", + "input": { + "type": "structure", + "members": { + "StackId": { + "required": true + }, + "LayerIds": { + "type": "list", + "members": {}, + "required": true + }, + "InstanceType": { + "required": true + }, + "AutoScalingType": {}, + "Hostname": {}, + "Os": {}, + "AmiId": {}, + "SshKeyName": {}, + "AvailabilityZone": {}, + "SubnetId": {}, + "Architecture": {}, + "RootDeviceType": {}, + "InstallUpdatesOnBoot": { + "type": "boolean" + }, + "EbsOptimized": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "InstanceId": {} + } + } + }, + "createLayer": { + "name": "CreateLayer", + "input": { + "type": "structure", + "members": { + "StackId": { + "required": true + }, + "Type": { + "required": true + }, + "Name": { + "required": true + }, + "Shortname": { + "required": true + }, + "Attributes": { + "type": "map", + "keys": {}, + "members": {} + }, + "CustomInstanceProfileArn": {}, + "CustomSecurityGroupIds": { + "type": "list", + "members": {} + }, + "Packages": { + "type": "list", + "members": {} + }, + "VolumeConfigurations": { + "type": "list", + "members": { + "type": "structure", + "members": { + "MountPoint": { + "required": true + }, + "RaidLevel": { + "type": "integer" + }, + "NumberOfDisks": { + "type": "integer", + "required": true + }, + "Size": { + "type": "integer", + "required": true + }, + "VolumeType": {}, + "Iops": { + "type": "integer" + } + } + } + }, + "EnableAutoHealing": { + "type": "boolean" + }, + "AutoAssignElasticIps": { + "type": "boolean" + }, + "AutoAssignPublicIps": { + "type": "boolean" + }, + "CustomRecipes": { + "type": "structure", + "members": { + "Setup": { + "type": "list", + "members": {} + }, + "Configure": { + "type": "list", + "members": {} + }, + "Deploy": { + "type": "list", + "members": {} + }, + "Undeploy": { + "type": "list", + "members": {} + }, + "Shutdown": { + "type": "list", + "members": {} + } + } + }, + "InstallUpdatesOnBoot": { + "type": "boolean" + }, + "UseEbsOptimizedInstances": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "LayerId": {} + } + } + }, + "createStack": { + "name": "CreateStack", + "input": { + "type": "structure", + "members": { + "Name": { + "required": true + }, + "Region": { + "required": true + }, + "VpcId": {}, + "Attributes": { + "type": "map", + "keys": {}, + "members": {} + }, + "ServiceRoleArn": { + "required": true + }, + "DefaultInstanceProfileArn": { + "required": true + }, + "DefaultOs": {}, + "HostnameTheme": {}, + "DefaultAvailabilityZone": {}, + "DefaultSubnetId": {}, + "CustomJson": {}, + "ConfigurationManager": { + "type": "structure", + "members": { + "Name": {}, + "Version": {} + } + }, + "UseCustomCookbooks": { + "type": "boolean" + }, + "UseOpsworksSecurityGroups": { + "type": "boolean" + }, + "CustomCookbooksSource": { + "type": "structure", + "members": { + "Type": {}, + "Url": {}, + "Username": {}, + "Password": {}, + "SshKey": {}, + "Revision": {} + } + }, + "DefaultSshKeyName": {}, + "DefaultRootDeviceType": {} + } + }, + "output": { + "type": "structure", + "members": { + "StackId": {} + } + } + }, + "createUserProfile": { + "name": "CreateUserProfile", + "input": { + "type": "structure", + "members": { + "IamUserArn": { + "required": true + }, + "SshUsername": {}, + "SshPublicKey": {}, + "AllowSelfManagement": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "IamUserArn": {} + } + } + }, + "deleteApp": { + "name": "DeleteApp", + "input": { + "type": "structure", + "members": { + "AppId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteInstance": { + "name": "DeleteInstance", + "input": { + "type": "structure", + "members": { + "InstanceId": { + "required": true + }, + "DeleteElasticIp": { + "type": "boolean" + }, + "DeleteVolumes": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteLayer": { + "name": "DeleteLayer", + "input": { + "type": "structure", + "members": { + "LayerId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteStack": { + "name": "DeleteStack", + "input": { + "type": "structure", + "members": { + "StackId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteUserProfile": { + "name": "DeleteUserProfile", + "input": { + "type": "structure", + "members": { + "IamUserArn": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deregisterElasticIp": { + "name": "DeregisterElasticIp", + "input": { + "type": "structure", + "members": { + "ElasticIp": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deregisterVolume": { + "name": "DeregisterVolume", + "input": { + "type": "structure", + "members": { + "VolumeId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "describeApps": { + "name": "DescribeApps", + "input": { + "type": "structure", + "members": { + "StackId": {}, + "AppIds": { + "type": "list", + "members": {} + } + } + }, + "output": { + "type": "structure", + "members": { + "Apps": { + "type": "list", + "members": { + "type": "structure", + "members": { + "AppId": {}, + "StackId": {}, + "Shortname": {}, + "Name": {}, + "Description": {}, + "Type": {}, + "AppSource": { + "type": "structure", + "members": { + "Type": {}, + "Url": {}, + "Username": {}, + "Password": {}, + "SshKey": {}, + "Revision": {} + } + }, + "Domains": { + "type": "list", + "members": {} + }, + "EnableSsl": { + "type": "boolean" + }, + "SslConfiguration": { + "type": "structure", + "members": { + "Certificate": {}, + "PrivateKey": {}, + "Chain": {} + } + }, + "Attributes": { + "type": "map", + "keys": {}, + "members": {} + }, + "CreatedAt": {} + } + } + } + } + } + }, + "describeCommands": { + "name": "DescribeCommands", + "input": { + "type": "structure", + "members": { + "DeploymentId": {}, + "InstanceId": {}, + "CommandIds": { + "type": "list", + "members": {} + } + } + }, + "output": { + "type": "structure", + "members": { + "Commands": { + "type": "list", + "members": { + "type": "structure", + "members": { + "CommandId": {}, + "InstanceId": {}, + "DeploymentId": {}, + "CreatedAt": {}, + "AcknowledgedAt": {}, + "CompletedAt": {}, + "Status": {}, + "ExitCode": { + "type": "integer" + }, + "LogUrl": {}, + "Type": {} + } + } + } + } + } + }, + "describeDeployments": { + "name": "DescribeDeployments", + "input": { + "type": "structure", + "members": { + "StackId": {}, + "AppId": {}, + "DeploymentIds": { + "type": "list", + "members": {} + } + } + }, + "output": { + "type": "structure", + "members": { + "Deployments": { + "type": "list", + "members": { + "type": "structure", + "members": { + "DeploymentId": {}, + "StackId": {}, + "AppId": {}, + "CreatedAt": {}, + "CompletedAt": {}, + "Duration": { + "type": "integer" + }, + "IamUserArn": {}, + "Comment": {}, + "Command": { + "type": "structure", + "members": { + "Name": {}, + "Args": { + "type": "map", + "keys": {}, + "members": { + "type": "list", + "members": {} + } + } + } + }, + "Status": {}, + "CustomJson": {}, + "InstanceIds": { + "type": "list", + "members": {} + } + } + } + } + } + } + }, + "describeElasticIps": { + "name": "DescribeElasticIps", + "input": { + "type": "structure", + "members": { + "InstanceId": {}, + "StackId": {}, + "Ips": { + "type": "list", + "members": {} + } + } + }, + "output": { + "type": "structure", + "members": { + "ElasticIps": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Ip": {}, + "Name": {}, + "Domain": {}, + "Region": {}, + "InstanceId": {} + } + } + } + } + } + }, + "describeElasticLoadBalancers": { + "name": "DescribeElasticLoadBalancers", + "input": { + "type": "structure", + "members": { + "StackId": {}, + "LayerIds": { + "type": "list", + "members": {} + } + } + }, + "output": { + "type": "structure", + "members": { + "ElasticLoadBalancers": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ElasticLoadBalancerName": {}, + "Region": {}, + "DnsName": {}, + "StackId": {}, + "LayerId": {}, + "VpcId": {}, + "AvailabilityZones": { + "type": "list", + "members": {} + }, + "SubnetIds": { + "type": "list", + "members": {} + }, + "Ec2InstanceIds": { + "type": "list", + "members": {} + } + } + } + } + } + } + }, + "describeInstances": { + "name": "DescribeInstances", + "input": { + "type": "structure", + "members": { + "StackId": {}, + "LayerId": {}, + "InstanceIds": { + "type": "list", + "members": {} + } + } + }, + "output": { + "type": "structure", + "members": { + "Instances": { + "type": "list", + "members": { + "type": "structure", + "members": { + "InstanceId": {}, + "Ec2InstanceId": {}, + "Hostname": {}, + "StackId": {}, + "LayerIds": { + "type": "list", + "members": {} + }, + "SecurityGroupIds": { + "type": "list", + "members": {} + }, + "InstanceType": {}, + "InstanceProfileArn": {}, + "Status": {}, + "Os": {}, + "AmiId": {}, + "AvailabilityZone": {}, + "SubnetId": {}, + "PublicDns": {}, + "PrivateDns": {}, + "PublicIp": {}, + "PrivateIp": {}, + "ElasticIp": {}, + "AutoScalingType": {}, + "SshKeyName": {}, + "SshHostRsaKeyFingerprint": {}, + "SshHostDsaKeyFingerprint": {}, + "CreatedAt": {}, + "LastServiceErrorId": {}, + "Architecture": {}, + "RootDeviceType": {}, + "RootDeviceVolumeId": {}, + "InstallUpdatesOnBoot": { + "type": "boolean" + }, + "EbsOptimized": { + "type": "boolean" + } + } + } + } + } + } + }, + "describeLayers": { + "name": "DescribeLayers", + "input": { + "type": "structure", + "members": { + "StackId": {}, + "LayerIds": { + "type": "list", + "members": {} + } + } + }, + "output": { + "type": "structure", + "members": { + "Layers": { + "type": "list", + "members": { + "type": "structure", + "members": { + "StackId": {}, + "LayerId": {}, + "Type": {}, + "Name": {}, + "Shortname": {}, + "Attributes": { + "type": "map", + "keys": {}, + "members": {} + }, + "CustomInstanceProfileArn": {}, + "CustomSecurityGroupIds": { + "type": "list", + "members": {} + }, + "DefaultSecurityGroupNames": { + "type": "list", + "members": {} + }, + "Packages": { + "type": "list", + "members": {} + }, + "VolumeConfigurations": { + "type": "list", + "members": { + "type": "structure", + "members": { + "MountPoint": {}, + "RaidLevel": { + "type": "integer" + }, + "NumberOfDisks": { + "type": "integer" + }, + "Size": { + "type": "integer" + }, + "VolumeType": {}, + "Iops": { + "type": "integer" + } + } + } + }, + "EnableAutoHealing": { + "type": "boolean" + }, + "AutoAssignElasticIps": { + "type": "boolean" + }, + "AutoAssignPublicIps": { + "type": "boolean" + }, + "DefaultRecipes": { + "type": "structure", + "members": { + "Setup": { + "type": "list", + "members": {} + }, + "Configure": { + "type": "list", + "members": {} + }, + "Deploy": { + "type": "list", + "members": {} + }, + "Undeploy": { + "type": "list", + "members": {} + }, + "Shutdown": { + "type": "list", + "members": {} + } + } + }, + "CustomRecipes": { + "type": "structure", + "members": { + "Setup": { + "type": "list", + "members": {} + }, + "Configure": { + "type": "list", + "members": {} + }, + "Deploy": { + "type": "list", + "members": {} + }, + "Undeploy": { + "type": "list", + "members": {} + }, + "Shutdown": { + "type": "list", + "members": {} + } + } + }, + "CreatedAt": {}, + "InstallUpdatesOnBoot": { + "type": "boolean" + }, + "UseEbsOptimizedInstances": { + "type": "boolean" + } + } + } + } + } + } + }, + "describeLoadBasedAutoScaling": { + "name": "DescribeLoadBasedAutoScaling", + "input": { + "type": "structure", + "members": { + "LayerIds": { + "type": "list", + "members": {}, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "LoadBasedAutoScalingConfigurations": { + "type": "list", + "members": { + "type": "structure", + "members": { + "LayerId": {}, + "Enable": { + "type": "boolean" + }, + "UpScaling": { + "type": "structure", + "members": { + "InstanceCount": { + "type": "integer" + }, + "ThresholdsWaitTime": { + "type": "integer" + }, + "IgnoreMetricsTime": { + "type": "integer" + }, + "CpuThreshold": { + "type": "float" + }, + "MemoryThreshold": { + "type": "float" + }, + "LoadThreshold": { + "type": "float" + } + } + }, + "DownScaling": { + "type": "structure", + "members": { + "InstanceCount": { + "type": "integer" + }, + "ThresholdsWaitTime": { + "type": "integer" + }, + "IgnoreMetricsTime": { + "type": "integer" + }, + "CpuThreshold": { + "type": "float" + }, + "MemoryThreshold": { + "type": "float" + }, + "LoadThreshold": { + "type": "float" + } + } + } + } + } + } + } + } + }, + "describeMyUserProfile": { + "name": "DescribeMyUserProfile", + "input": { + "type": "structure", + "members": {} + }, + "output": { + "type": "structure", + "members": { + "UserProfile": { + "type": "structure", + "members": { + "IamUserArn": {}, + "Name": {}, + "SshUsername": {}, + "SshPublicKey": {} + } + } + } + } + }, + "describePermissions": { + "name": "DescribePermissions", + "input": { + "type": "structure", + "members": { + "IamUserArn": {}, + "StackId": {} + } + }, + "output": { + "type": "structure", + "members": { + "Permissions": { + "type": "list", + "members": { + "type": "structure", + "members": { + "StackId": {}, + "IamUserArn": {}, + "AllowSsh": { + "type": "boolean" + }, + "AllowSudo": { + "type": "boolean" + }, + "Level": {} + } + } + } + } + } + }, + "describeRaidArrays": { + "name": "DescribeRaidArrays", + "input": { + "type": "structure", + "members": { + "InstanceId": {}, + "RaidArrayIds": { + "type": "list", + "members": {} + } + } + }, + "output": { + "type": "structure", + "members": { + "RaidArrays": { + "type": "list", + "members": { + "type": "structure", + "members": { + "RaidArrayId": {}, + "InstanceId": {}, + "Name": {}, + "RaidLevel": { + "type": "integer" + }, + "NumberOfDisks": { + "type": "integer" + }, + "Size": { + "type": "integer" + }, + "Device": {}, + "MountPoint": {}, + "AvailabilityZone": {}, + "CreatedAt": {}, + "VolumeType": {}, + "Iops": { + "type": "integer" + } + } + } + } + } + } + }, + "describeServiceErrors": { + "name": "DescribeServiceErrors", + "input": { + "type": "structure", + "members": { + "StackId": {}, + "InstanceId": {}, + "ServiceErrorIds": { + "type": "list", + "members": {} + } + } + }, + "output": { + "type": "structure", + "members": { + "ServiceErrors": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ServiceErrorId": {}, + "StackId": {}, + "InstanceId": {}, + "Type": {}, + "Message": {}, + "CreatedAt": {} + } + } + } + } + } + }, + "describeStackSummary": { + "name": "DescribeStackSummary", + "input": { + "type": "structure", + "members": { + "StackId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "StackSummary": { + "type": "structure", + "members": { + "StackId": {}, + "Name": {}, + "Arn": {}, + "LayersCount": { + "type": "integer" + }, + "AppsCount": { + "type": "integer" + }, + "InstancesCount": { + "type": "structure", + "members": { + "Booting": { + "type": "integer" + }, + "ConnectionLost": { + "type": "integer" + }, + "Online": { + "type": "integer" + }, + "Pending": { + "type": "integer" + }, + "Rebooting": { + "type": "integer" + }, + "Requested": { + "type": "integer" + }, + "RunningSetup": { + "type": "integer" + }, + "SetupFailed": { + "type": "integer" + }, + "ShuttingDown": { + "type": "integer" + }, + "StartFailed": { + "type": "integer" + }, + "Stopped": { + "type": "integer" + }, + "Stopping": { + "type": "integer" + }, + "Terminated": { + "type": "integer" + }, + "Terminating": { + "type": "integer" + } + } + } + } + } + } + } + }, + "describeStacks": { + "name": "DescribeStacks", + "input": { + "type": "structure", + "members": { + "StackIds": { + "type": "list", + "members": {} + } + } + }, + "output": { + "type": "structure", + "members": { + "Stacks": { + "type": "list", + "members": { + "type": "structure", + "members": { + "StackId": {}, + "Name": {}, + "Arn": {}, + "Region": {}, + "VpcId": {}, + "Attributes": { + "type": "map", + "keys": {}, + "members": {} + }, + "ServiceRoleArn": {}, + "DefaultInstanceProfileArn": {}, + "DefaultOs": {}, + "HostnameTheme": {}, + "DefaultAvailabilityZone": {}, + "DefaultSubnetId": {}, + "CustomJson": {}, + "ConfigurationManager": { + "type": "structure", + "members": { + "Name": {}, + "Version": {} + } + }, + "UseCustomCookbooks": { + "type": "boolean" + }, + "UseOpsworksSecurityGroups": { + "type": "boolean" + }, + "CustomCookbooksSource": { + "type": "structure", + "members": { + "Type": {}, + "Url": {}, + "Username": {}, + "Password": {}, + "SshKey": {}, + "Revision": {} + } + }, + "DefaultSshKeyName": {}, + "CreatedAt": {}, + "DefaultRootDeviceType": {} + } + } + } + } + } + }, + "describeTimeBasedAutoScaling": { + "name": "DescribeTimeBasedAutoScaling", + "input": { + "type": "structure", + "members": { + "InstanceIds": { + "type": "list", + "members": {}, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "TimeBasedAutoScalingConfigurations": { + "type": "list", + "members": { + "type": "structure", + "members": { + "InstanceId": {}, + "AutoScalingSchedule": { + "type": "structure", + "members": { + "Monday": { + "type": "map", + "keys": {}, + "members": {} + }, + "Tuesday": { + "type": "map", + "keys": {}, + "members": {} + }, + "Wednesday": { + "type": "map", + "keys": {}, + "members": {} + }, + "Thursday": { + "type": "map", + "keys": {}, + "members": {} + }, + "Friday": { + "type": "map", + "keys": {}, + "members": {} + }, + "Saturday": { + "type": "map", + "keys": {}, + "members": {} + }, + "Sunday": { + "type": "map", + "keys": {}, + "members": {} + } + } + } + } + } + } + } + } + }, + "describeUserProfiles": { + "name": "DescribeUserProfiles", + "input": { + "type": "structure", + "members": { + "IamUserArns": { + "type": "list", + "members": {} + } + } + }, + "output": { + "type": "structure", + "members": { + "UserProfiles": { + "type": "list", + "members": { + "type": "structure", + "members": { + "IamUserArn": {}, + "Name": {}, + "SshUsername": {}, + "SshPublicKey": {}, + "AllowSelfManagement": { + "type": "boolean" + } + } + } + } + } + } + }, + "describeVolumes": { + "name": "DescribeVolumes", + "input": { + "type": "structure", + "members": { + "InstanceId": {}, + "StackId": {}, + "RaidArrayId": {}, + "VolumeIds": { + "type": "list", + "members": {} + } + } + }, + "output": { + "type": "structure", + "members": { + "Volumes": { + "type": "list", + "members": { + "type": "structure", + "members": { + "VolumeId": {}, + "Ec2VolumeId": {}, + "Name": {}, + "RaidArrayId": {}, + "InstanceId": {}, + "Status": {}, + "Size": { + "type": "integer" + }, + "Device": {}, + "MountPoint": {}, + "Region": {}, + "AvailabilityZone": {}, + "VolumeType": {}, + "Iops": { + "type": "integer" + } + } + } + } + } + } + }, + "detachElasticLoadBalancer": { + "name": "DetachElasticLoadBalancer", + "input": { + "type": "structure", + "members": { + "ElasticLoadBalancerName": { + "required": true + }, + "LayerId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "disassociateElasticIp": { + "name": "DisassociateElasticIp", + "input": { + "type": "structure", + "members": { + "ElasticIp": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "getHostnameSuggestion": { + "name": "GetHostnameSuggestion", + "input": { + "type": "structure", + "members": { + "LayerId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "LayerId": {}, + "Hostname": {} + } + } + }, + "rebootInstance": { + "name": "RebootInstance", + "input": { + "type": "structure", + "members": { + "InstanceId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "registerElasticIp": { + "name": "RegisterElasticIp", + "input": { + "type": "structure", + "members": { + "ElasticIp": { + "required": true + }, + "StackId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "ElasticIp": {} + } + } + }, + "registerVolume": { + "name": "RegisterVolume", + "input": { + "type": "structure", + "members": { + "Ec2VolumeId": {}, + "StackId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "VolumeId": {} + } + } + }, + "setLoadBasedAutoScaling": { + "name": "SetLoadBasedAutoScaling", + "input": { + "type": "structure", + "members": { + "LayerId": { + "required": true + }, + "Enable": { + "type": "boolean" + }, + "UpScaling": { + "type": "structure", + "members": { + "InstanceCount": { + "type": "integer" + }, + "ThresholdsWaitTime": { + "type": "integer" + }, + "IgnoreMetricsTime": { + "type": "integer" + }, + "CpuThreshold": { + "type": "float" + }, + "MemoryThreshold": { + "type": "float" + }, + "LoadThreshold": { + "type": "float" + } + } + }, + "DownScaling": { + "type": "structure", + "members": { + "InstanceCount": { + "type": "integer" + }, + "ThresholdsWaitTime": { + "type": "integer" + }, + "IgnoreMetricsTime": { + "type": "integer" + }, + "CpuThreshold": { + "type": "float" + }, + "MemoryThreshold": { + "type": "float" + }, + "LoadThreshold": { + "type": "float" + } + } + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "setPermission": { + "name": "SetPermission", + "input": { + "type": "structure", + "members": { + "StackId": { + "required": true + }, + "IamUserArn": { + "required": true + }, + "AllowSsh": { + "type": "boolean" + }, + "AllowSudo": { + "type": "boolean" + }, + "Level": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "setTimeBasedAutoScaling": { + "name": "SetTimeBasedAutoScaling", + "input": { + "type": "structure", + "members": { + "InstanceId": { + "required": true + }, + "AutoScalingSchedule": { + "type": "structure", + "members": { + "Monday": { + "type": "map", + "keys": {}, + "members": {} + }, + "Tuesday": { + "type": "map", + "keys": {}, + "members": {} + }, + "Wednesday": { + "type": "map", + "keys": {}, + "members": {} + }, + "Thursday": { + "type": "map", + "keys": {}, + "members": {} + }, + "Friday": { + "type": "map", + "keys": {}, + "members": {} + }, + "Saturday": { + "type": "map", + "keys": {}, + "members": {} + }, + "Sunday": { + "type": "map", + "keys": {}, + "members": {} + } + } + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "startInstance": { + "name": "StartInstance", + "input": { + "type": "structure", + "members": { + "InstanceId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "startStack": { + "name": "StartStack", + "input": { + "type": "structure", + "members": { + "StackId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "stopInstance": { + "name": "StopInstance", + "input": { + "type": "structure", + "members": { + "InstanceId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "stopStack": { + "name": "StopStack", + "input": { + "type": "structure", + "members": { + "StackId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "unassignVolume": { + "name": "UnassignVolume", + "input": { + "type": "structure", + "members": { + "VolumeId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "updateApp": { + "name": "UpdateApp", + "input": { + "type": "structure", + "members": { + "AppId": { + "required": true + }, + "Name": {}, + "Description": {}, + "Type": {}, + "AppSource": { + "type": "structure", + "members": { + "Type": {}, + "Url": {}, + "Username": {}, + "Password": {}, + "SshKey": {}, + "Revision": {} + } + }, + "Domains": { + "type": "list", + "members": {} + }, + "EnableSsl": { + "type": "boolean" + }, + "SslConfiguration": { + "type": "structure", + "members": { + "Certificate": { + "required": true + }, + "PrivateKey": { + "required": true + }, + "Chain": {} + } + }, + "Attributes": { + "type": "map", + "keys": {}, + "members": {} + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "updateElasticIp": { + "name": "UpdateElasticIp", + "input": { + "type": "structure", + "members": { + "ElasticIp": { + "required": true + }, + "Name": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "updateInstance": { + "name": "UpdateInstance", + "input": { + "type": "structure", + "members": { + "InstanceId": { + "required": true + }, + "LayerIds": { + "type": "list", + "members": {} + }, + "InstanceType": {}, + "AutoScalingType": {}, + "Hostname": {}, + "Os": {}, + "AmiId": {}, + "SshKeyName": {}, + "Architecture": {}, + "InstallUpdatesOnBoot": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "updateLayer": { + "name": "UpdateLayer", + "input": { + "type": "structure", + "members": { + "LayerId": { + "required": true + }, + "Name": {}, + "Shortname": {}, + "Attributes": { + "type": "map", + "keys": {}, + "members": {} + }, + "CustomInstanceProfileArn": {}, + "CustomSecurityGroupIds": { + "type": "list", + "members": {} + }, + "Packages": { + "type": "list", + "members": {} + }, + "VolumeConfigurations": { + "type": "list", + "members": { + "type": "structure", + "members": { + "MountPoint": { + "required": true + }, + "RaidLevel": { + "type": "integer" + }, + "NumberOfDisks": { + "type": "integer", + "required": true + }, + "Size": { + "type": "integer", + "required": true + }, + "VolumeType": {}, + "Iops": { + "type": "integer" + } + } + } + }, + "EnableAutoHealing": { + "type": "boolean" + }, + "AutoAssignElasticIps": { + "type": "boolean" + }, + "AutoAssignPublicIps": { + "type": "boolean" + }, + "CustomRecipes": { + "type": "structure", + "members": { + "Setup": { + "type": "list", + "members": {} + }, + "Configure": { + "type": "list", + "members": {} + }, + "Deploy": { + "type": "list", + "members": {} + }, + "Undeploy": { + "type": "list", + "members": {} + }, + "Shutdown": { + "type": "list", + "members": {} + } + } + }, + "InstallUpdatesOnBoot": { + "type": "boolean" + }, + "UseEbsOptimizedInstances": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "updateMyUserProfile": { + "name": "UpdateMyUserProfile", + "input": { + "type": "structure", + "members": { + "SshPublicKey": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "updateStack": { + "name": "UpdateStack", + "input": { + "type": "structure", + "members": { + "StackId": { + "required": true + }, + "Name": {}, + "Attributes": { + "type": "map", + "keys": {}, + "members": {} + }, + "ServiceRoleArn": {}, + "DefaultInstanceProfileArn": {}, + "DefaultOs": {}, + "HostnameTheme": {}, + "DefaultAvailabilityZone": {}, + "DefaultSubnetId": {}, + "CustomJson": {}, + "ConfigurationManager": { + "type": "structure", + "members": { + "Name": {}, + "Version": {} + } + }, + "UseCustomCookbooks": { + "type": "boolean" + }, + "CustomCookbooksSource": { + "type": "structure", + "members": { + "Type": {}, + "Url": {}, + "Username": {}, + "Password": {}, + "SshKey": {}, + "Revision": {} + } + }, + "DefaultSshKeyName": {}, + "DefaultRootDeviceType": {}, + "UseOpsworksSecurityGroups": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "updateUserProfile": { + "name": "UpdateUserProfile", + "input": { + "type": "structure", + "members": { + "IamUserArn": { + "required": true + }, + "SshUsername": {}, + "SshPublicKey": {}, + "AllowSelfManagement": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "updateVolume": { + "name": "UpdateVolume", + "input": { + "type": "structure", + "members": { + "VolumeId": { + "required": true + }, + "Name": {}, + "MountPoint": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + } + }, + "pagination": { + "describeApps": { + "resultKey": "Apps" + }, + "describeCommands": { + "resultKey": "Commands" + }, + "describeDeployments": { + "resultKey": "Deployments" + }, + "describeElasticIps": { + "resultKey": "ElasticIps" + }, + "describeElasticLoadBalancers": { + "resultKey": "ElasticLoadBalancers" + }, + "describeInstances": { + "resultKey": "Instances" + }, + "describeLayers": { + "resultKey": "Layers" + }, + "describeLoadBasedAutoScaling": { + "resultKey": "LoadBasedAutoScalingConfigurations" + }, + "describePermissions": { + "resultKey": "Permissions" + }, + "describeRaidArrays": { + "resultKey": "RaidArrays" + }, + "describeServiceErrors": { + "resultKey": "ServiceErrors" + }, + "describeStacks": { + "resultKey": "Stacks" + }, + "describeTimeBasedAutoScaling": { + "resultKey": "TimeBasedAutoScalingConfigurations" + }, + "describeUserProfiles": { + "resultKey": "UserProfiles" + }, + "describeVolumes": { + "resultKey": "Volumes" + } + } +} \ No newline at end of file diff --git a/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/RDS-2013-09-09.json b/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/RDS-2013-09-09.json new file mode 100644 index 00000000..f56e6e3c --- /dev/null +++ b/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/RDS-2013-09-09.json @@ -0,0 +1,4457 @@ +{ + "format": "query", + "apiVersion": "2013-09-09", + "endpointPrefix": "rds", + "resultWrapped": true, + "serviceAbbreviation": "Amazon RDS", + "serviceFullName": "Amazon Relational Database Service", + "signatureVersion": "v4", + "timestampFormat": "iso8601", + "operations": { + "addSourceIdentifierToSubscription": { + "name": "AddSourceIdentifierToSubscription", + "input": { + "type": "structure", + "members": { + "SubscriptionName": { + "required": true + }, + "SourceIdentifier": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "EventSubscription": { + "type": "structure", + "members": { + "CustomerAwsId": {}, + "CustSubscriptionId": {}, + "SnsTopicArn": {}, + "Status": {}, + "SubscriptionCreationTime": {}, + "SourceType": {}, + "SourceIdsList": { + "type": "list", + "members": { + "name": "SourceId" + } + }, + "EventCategoriesList": { + "type": "list", + "members": { + "name": "EventCategory" + } + }, + "Enabled": { + "type": "boolean" + } + } + } + } + } + }, + "addTagsToResource": { + "name": "AddTagsToResource", + "input": { + "type": "structure", + "members": { + "ResourceName": { + "required": true + }, + "Tags": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Key": {}, + "Value": {} + }, + "name": "Tag" + }, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "authorizeDBSecurityGroupIngress": { + "name": "AuthorizeDBSecurityGroupIngress", + "input": { + "type": "structure", + "members": { + "DBSecurityGroupName": { + "required": true + }, + "CIDRIP": {}, + "EC2SecurityGroupName": {}, + "EC2SecurityGroupId": {}, + "EC2SecurityGroupOwnerId": {} + } + }, + "output": { + "type": "structure", + "members": { + "DBSecurityGroup": { + "type": "structure", + "members": { + "OwnerId": {}, + "DBSecurityGroupName": {}, + "DBSecurityGroupDescription": {}, + "VpcId": {}, + "EC2SecurityGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Status": {}, + "EC2SecurityGroupName": {}, + "EC2SecurityGroupId": {}, + "EC2SecurityGroupOwnerId": {} + }, + "name": "EC2SecurityGroup" + } + }, + "IPRanges": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Status": {}, + "CIDRIP": {} + }, + "name": "IPRange" + } + } + } + } + } + } + }, + "copyDBSnapshot": { + "name": "CopyDBSnapshot", + "input": { + "type": "structure", + "members": { + "SourceDBSnapshotIdentifier": { + "required": true + }, + "TargetDBSnapshotIdentifier": { + "required": true + }, + "Tags": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Key": {}, + "Value": {} + }, + "name": "Tag" + } + } + } + }, + "output": { + "type": "structure", + "members": { + "DBSnapshot": { + "type": "structure", + "members": { + "DBSnapshotIdentifier": {}, + "DBInstanceIdentifier": {}, + "SnapshotCreateTime": { + "type": "timestamp" + }, + "Engine": {}, + "AllocatedStorage": { + "type": "integer" + }, + "Status": {}, + "Port": { + "type": "integer" + }, + "AvailabilityZone": {}, + "VpcId": {}, + "InstanceCreateTime": { + "type": "timestamp" + }, + "MasterUsername": {}, + "EngineVersion": {}, + "LicenseModel": {}, + "SnapshotType": {}, + "Iops": { + "type": "integer" + }, + "OptionGroupName": {}, + "PercentProgress": { + "type": "integer" + }, + "SourceRegion": {} + } + } + } + } + }, + "createDBInstance": { + "name": "CreateDBInstance", + "input": { + "type": "structure", + "members": { + "DBName": {}, + "DBInstanceIdentifier": { + "required": true + }, + "AllocatedStorage": { + "type": "integer", + "required": true + }, + "DBInstanceClass": { + "required": true + }, + "Engine": { + "required": true + }, + "MasterUsername": { + "required": true + }, + "MasterUserPassword": { + "required": true + }, + "DBSecurityGroups": { + "type": "list", + "members": { + "name": "DBSecurityGroupName" + } + }, + "VpcSecurityGroupIds": { + "type": "list", + "members": { + "name": "VpcSecurityGroupId" + } + }, + "AvailabilityZone": {}, + "DBSubnetGroupName": {}, + "PreferredMaintenanceWindow": {}, + "DBParameterGroupName": {}, + "BackupRetentionPeriod": { + "type": "integer" + }, + "PreferredBackupWindow": {}, + "Port": { + "type": "integer" + }, + "MultiAZ": { + "type": "boolean" + }, + "EngineVersion": {}, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "LicenseModel": {}, + "Iops": { + "type": "integer" + }, + "OptionGroupName": {}, + "CharacterSetName": {}, + "PubliclyAccessible": { + "type": "boolean" + }, + "Tags": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Key": {}, + "Value": {} + }, + "name": "Tag" + } + } + } + }, + "output": { + "type": "structure", + "members": { + "DBInstance": { + "type": "structure", + "members": { + "DBInstanceIdentifier": {}, + "DBInstanceClass": {}, + "Engine": {}, + "DBInstanceStatus": {}, + "MasterUsername": {}, + "DBName": {}, + "Endpoint": { + "type": "structure", + "members": { + "Address": {}, + "Port": { + "type": "integer" + } + } + }, + "AllocatedStorage": { + "type": "integer" + }, + "InstanceCreateTime": { + "type": "timestamp" + }, + "PreferredBackupWindow": {}, + "BackupRetentionPeriod": { + "type": "integer" + }, + "DBSecurityGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "DBSecurityGroupName": {}, + "Status": {} + }, + "name": "DBSecurityGroup" + } + }, + "VpcSecurityGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "VpcSecurityGroupId": {}, + "Status": {} + }, + "name": "VpcSecurityGroupMembership" + } + }, + "DBParameterGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "DBParameterGroupName": {}, + "ParameterApplyStatus": {} + }, + "name": "DBParameterGroup" + } + }, + "AvailabilityZone": {}, + "DBSubnetGroup": { + "type": "structure", + "members": { + "DBSubnetGroupName": {}, + "DBSubnetGroupDescription": {}, + "VpcId": {}, + "SubnetGroupStatus": {}, + "Subnets": { + "type": "list", + "members": { + "type": "structure", + "members": { + "SubnetIdentifier": {}, + "SubnetAvailabilityZone": { + "type": "structure", + "members": { + "Name": {}, + "ProvisionedIopsCapable": { + "type": "boolean" + } + } + }, + "SubnetStatus": {} + }, + "name": "Subnet" + } + } + } + }, + "PreferredMaintenanceWindow": {}, + "PendingModifiedValues": { + "type": "structure", + "members": { + "DBInstanceClass": {}, + "AllocatedStorage": { + "type": "integer" + }, + "MasterUserPassword": {}, + "Port": { + "type": "integer" + }, + "BackupRetentionPeriod": { + "type": "integer" + }, + "MultiAZ": { + "type": "boolean" + }, + "EngineVersion": {}, + "Iops": { + "type": "integer" + }, + "DBInstanceIdentifier": {} + } + }, + "LatestRestorableTime": { + "type": "timestamp" + }, + "MultiAZ": { + "type": "boolean" + }, + "EngineVersion": {}, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "ReadReplicaSourceDBInstanceIdentifier": {}, + "ReadReplicaDBInstanceIdentifiers": { + "type": "list", + "members": { + "name": "ReadReplicaDBInstanceIdentifier" + } + }, + "LicenseModel": {}, + "Iops": { + "type": "integer" + }, + "OptionGroupMemberships": { + "type": "list", + "members": { + "type": "structure", + "members": { + "OptionGroupName": {}, + "Status": {} + }, + "name": "OptionGroupMembership" + } + }, + "CharacterSetName": {}, + "SecondaryAvailabilityZone": {}, + "PubliclyAccessible": { + "type": "boolean" + }, + "StatusInfos": { + "type": "list", + "members": { + "type": "structure", + "members": { + "StatusType": {}, + "Normal": { + "type": "boolean" + }, + "Status": {}, + "Message": {} + }, + "name": "DBInstanceStatusInfo" + } + } + } + } + } + } + }, + "createDBInstanceReadReplica": { + "name": "CreateDBInstanceReadReplica", + "input": { + "type": "structure", + "members": { + "DBInstanceIdentifier": { + "required": true + }, + "SourceDBInstanceIdentifier": { + "required": true + }, + "DBInstanceClass": {}, + "AvailabilityZone": {}, + "Port": { + "type": "integer" + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "OptionGroupName": {}, + "PubliclyAccessible": { + "type": "boolean" + }, + "Tags": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Key": {}, + "Value": {} + }, + "name": "Tag" + } + }, + "DBSubnetGroupName": {} + } + }, + "output": { + "type": "structure", + "members": { + "DBInstance": { + "type": "structure", + "members": { + "DBInstanceIdentifier": {}, + "DBInstanceClass": {}, + "Engine": {}, + "DBInstanceStatus": {}, + "MasterUsername": {}, + "DBName": {}, + "Endpoint": { + "type": "structure", + "members": { + "Address": {}, + "Port": { + "type": "integer" + } + } + }, + "AllocatedStorage": { + "type": "integer" + }, + "InstanceCreateTime": { + "type": "timestamp" + }, + "PreferredBackupWindow": {}, + "BackupRetentionPeriod": { + "type": "integer" + }, + "DBSecurityGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "DBSecurityGroupName": {}, + "Status": {} + }, + "name": "DBSecurityGroup" + } + }, + "VpcSecurityGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "VpcSecurityGroupId": {}, + "Status": {} + }, + "name": "VpcSecurityGroupMembership" + } + }, + "DBParameterGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "DBParameterGroupName": {}, + "ParameterApplyStatus": {} + }, + "name": "DBParameterGroup" + } + }, + "AvailabilityZone": {}, + "DBSubnetGroup": { + "type": "structure", + "members": { + "DBSubnetGroupName": {}, + "DBSubnetGroupDescription": {}, + "VpcId": {}, + "SubnetGroupStatus": {}, + "Subnets": { + "type": "list", + "members": { + "type": "structure", + "members": { + "SubnetIdentifier": {}, + "SubnetAvailabilityZone": { + "type": "structure", + "members": { + "Name": {}, + "ProvisionedIopsCapable": { + "type": "boolean" + } + } + }, + "SubnetStatus": {} + }, + "name": "Subnet" + } + } + } + }, + "PreferredMaintenanceWindow": {}, + "PendingModifiedValues": { + "type": "structure", + "members": { + "DBInstanceClass": {}, + "AllocatedStorage": { + "type": "integer" + }, + "MasterUserPassword": {}, + "Port": { + "type": "integer" + }, + "BackupRetentionPeriod": { + "type": "integer" + }, + "MultiAZ": { + "type": "boolean" + }, + "EngineVersion": {}, + "Iops": { + "type": "integer" + }, + "DBInstanceIdentifier": {} + } + }, + "LatestRestorableTime": { + "type": "timestamp" + }, + "MultiAZ": { + "type": "boolean" + }, + "EngineVersion": {}, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "ReadReplicaSourceDBInstanceIdentifier": {}, + "ReadReplicaDBInstanceIdentifiers": { + "type": "list", + "members": { + "name": "ReadReplicaDBInstanceIdentifier" + } + }, + "LicenseModel": {}, + "Iops": { + "type": "integer" + }, + "OptionGroupMemberships": { + "type": "list", + "members": { + "type": "structure", + "members": { + "OptionGroupName": {}, + "Status": {} + }, + "name": "OptionGroupMembership" + } + }, + "CharacterSetName": {}, + "SecondaryAvailabilityZone": {}, + "PubliclyAccessible": { + "type": "boolean" + }, + "StatusInfos": { + "type": "list", + "members": { + "type": "structure", + "members": { + "StatusType": {}, + "Normal": { + "type": "boolean" + }, + "Status": {}, + "Message": {} + }, + "name": "DBInstanceStatusInfo" + } + } + } + } + } + } + }, + "createDBParameterGroup": { + "name": "CreateDBParameterGroup", + "input": { + "type": "structure", + "members": { + "DBParameterGroupName": { + "required": true + }, + "DBParameterGroupFamily": { + "required": true + }, + "Description": { + "required": true + }, + "Tags": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Key": {}, + "Value": {} + }, + "name": "Tag" + } + } + } + }, + "output": { + "type": "structure", + "members": { + "DBParameterGroup": { + "type": "structure", + "members": { + "DBParameterGroupName": {}, + "DBParameterGroupFamily": {}, + "Description": {} + } + } + } + } + }, + "createDBSecurityGroup": { + "name": "CreateDBSecurityGroup", + "input": { + "type": "structure", + "members": { + "DBSecurityGroupName": { + "required": true + }, + "DBSecurityGroupDescription": { + "required": true + }, + "Tags": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Key": {}, + "Value": {} + }, + "name": "Tag" + } + } + } + }, + "output": { + "type": "structure", + "members": { + "DBSecurityGroup": { + "type": "structure", + "members": { + "OwnerId": {}, + "DBSecurityGroupName": {}, + "DBSecurityGroupDescription": {}, + "VpcId": {}, + "EC2SecurityGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Status": {}, + "EC2SecurityGroupName": {}, + "EC2SecurityGroupId": {}, + "EC2SecurityGroupOwnerId": {} + }, + "name": "EC2SecurityGroup" + } + }, + "IPRanges": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Status": {}, + "CIDRIP": {} + }, + "name": "IPRange" + } + } + } + } + } + } + }, + "createDBSnapshot": { + "name": "CreateDBSnapshot", + "input": { + "type": "structure", + "members": { + "DBSnapshotIdentifier": { + "required": true + }, + "DBInstanceIdentifier": { + "required": true + }, + "Tags": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Key": {}, + "Value": {} + }, + "name": "Tag" + } + } + } + }, + "output": { + "type": "structure", + "members": { + "DBSnapshot": { + "type": "structure", + "members": { + "DBSnapshotIdentifier": {}, + "DBInstanceIdentifier": {}, + "SnapshotCreateTime": { + "type": "timestamp" + }, + "Engine": {}, + "AllocatedStorage": { + "type": "integer" + }, + "Status": {}, + "Port": { + "type": "integer" + }, + "AvailabilityZone": {}, + "VpcId": {}, + "InstanceCreateTime": { + "type": "timestamp" + }, + "MasterUsername": {}, + "EngineVersion": {}, + "LicenseModel": {}, + "SnapshotType": {}, + "Iops": { + "type": "integer" + }, + "OptionGroupName": {}, + "PercentProgress": { + "type": "integer" + }, + "SourceRegion": {} + } + } + } + } + }, + "createDBSubnetGroup": { + "name": "CreateDBSubnetGroup", + "input": { + "type": "structure", + "members": { + "DBSubnetGroupName": { + "required": true + }, + "DBSubnetGroupDescription": { + "required": true + }, + "SubnetIds": { + "type": "list", + "members": { + "name": "SubnetIdentifier" + }, + "required": true + }, + "Tags": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Key": {}, + "Value": {} + }, + "name": "Tag" + } + } + } + }, + "output": { + "type": "structure", + "members": { + "DBSubnetGroup": { + "type": "structure", + "members": { + "DBSubnetGroupName": {}, + "DBSubnetGroupDescription": {}, + "VpcId": {}, + "SubnetGroupStatus": {}, + "Subnets": { + "type": "list", + "members": { + "type": "structure", + "members": { + "SubnetIdentifier": {}, + "SubnetAvailabilityZone": { + "type": "structure", + "members": { + "Name": {}, + "ProvisionedIopsCapable": { + "type": "boolean" + } + } + }, + "SubnetStatus": {} + }, + "name": "Subnet" + } + } + } + } + } + } + }, + "createEventSubscription": { + "name": "CreateEventSubscription", + "input": { + "type": "structure", + "members": { + "SubscriptionName": { + "required": true + }, + "SnsTopicArn": { + "required": true + }, + "SourceType": {}, + "EventCategories": { + "type": "list", + "members": { + "name": "EventCategory" + } + }, + "SourceIds": { + "type": "list", + "members": { + "name": "SourceId" + } + }, + "Enabled": { + "type": "boolean" + }, + "Tags": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Key": {}, + "Value": {} + }, + "name": "Tag" + } + } + } + }, + "output": { + "type": "structure", + "members": { + "EventSubscription": { + "type": "structure", + "members": { + "CustomerAwsId": {}, + "CustSubscriptionId": {}, + "SnsTopicArn": {}, + "Status": {}, + "SubscriptionCreationTime": {}, + "SourceType": {}, + "SourceIdsList": { + "type": "list", + "members": { + "name": "SourceId" + } + }, + "EventCategoriesList": { + "type": "list", + "members": { + "name": "EventCategory" + } + }, + "Enabled": { + "type": "boolean" + } + } + } + } + } + }, + "createOptionGroup": { + "name": "CreateOptionGroup", + "input": { + "type": "structure", + "members": { + "OptionGroupName": { + "required": true + }, + "EngineName": { + "required": true + }, + "MajorEngineVersion": { + "required": true + }, + "OptionGroupDescription": { + "required": true + }, + "Tags": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Key": {}, + "Value": {} + }, + "name": "Tag" + } + } + } + }, + "output": { + "type": "structure", + "members": { + "OptionGroup": { + "type": "structure", + "members": { + "OptionGroupName": {}, + "OptionGroupDescription": {}, + "EngineName": {}, + "MajorEngineVersion": {}, + "Options": { + "type": "list", + "members": { + "type": "structure", + "members": { + "OptionName": {}, + "OptionDescription": {}, + "Persistent": { + "type": "boolean" + }, + "Permanent": { + "type": "boolean" + }, + "Port": { + "type": "integer" + }, + "OptionSettings": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": {}, + "Value": {}, + "DefaultValue": {}, + "Description": {}, + "ApplyType": {}, + "DataType": {}, + "AllowedValues": {}, + "IsModifiable": { + "type": "boolean" + }, + "IsCollection": { + "type": "boolean" + } + }, + "name": "OptionSetting" + } + }, + "DBSecurityGroupMemberships": { + "type": "list", + "members": { + "type": "structure", + "members": { + "DBSecurityGroupName": {}, + "Status": {} + }, + "name": "DBSecurityGroup" + } + }, + "VpcSecurityGroupMemberships": { + "type": "list", + "members": { + "type": "structure", + "members": { + "VpcSecurityGroupId": {}, + "Status": {} + }, + "name": "VpcSecurityGroupMembership" + } + } + }, + "name": "Option" + } + }, + "AllowsVpcAndNonVpcInstanceMemberships": { + "type": "boolean" + }, + "VpcId": {} + } + } + } + } + }, + "deleteDBInstance": { + "name": "DeleteDBInstance", + "input": { + "type": "structure", + "members": { + "DBInstanceIdentifier": { + "required": true + }, + "SkipFinalSnapshot": { + "type": "boolean" + }, + "FinalDBSnapshotIdentifier": {} + } + }, + "output": { + "type": "structure", + "members": { + "DBInstance": { + "type": "structure", + "members": { + "DBInstanceIdentifier": {}, + "DBInstanceClass": {}, + "Engine": {}, + "DBInstanceStatus": {}, + "MasterUsername": {}, + "DBName": {}, + "Endpoint": { + "type": "structure", + "members": { + "Address": {}, + "Port": { + "type": "integer" + } + } + }, + "AllocatedStorage": { + "type": "integer" + }, + "InstanceCreateTime": { + "type": "timestamp" + }, + "PreferredBackupWindow": {}, + "BackupRetentionPeriod": { + "type": "integer" + }, + "DBSecurityGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "DBSecurityGroupName": {}, + "Status": {} + }, + "name": "DBSecurityGroup" + } + }, + "VpcSecurityGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "VpcSecurityGroupId": {}, + "Status": {} + }, + "name": "VpcSecurityGroupMembership" + } + }, + "DBParameterGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "DBParameterGroupName": {}, + "ParameterApplyStatus": {} + }, + "name": "DBParameterGroup" + } + }, + "AvailabilityZone": {}, + "DBSubnetGroup": { + "type": "structure", + "members": { + "DBSubnetGroupName": {}, + "DBSubnetGroupDescription": {}, + "VpcId": {}, + "SubnetGroupStatus": {}, + "Subnets": { + "type": "list", + "members": { + "type": "structure", + "members": { + "SubnetIdentifier": {}, + "SubnetAvailabilityZone": { + "type": "structure", + "members": { + "Name": {}, + "ProvisionedIopsCapable": { + "type": "boolean" + } + } + }, + "SubnetStatus": {} + }, + "name": "Subnet" + } + } + } + }, + "PreferredMaintenanceWindow": {}, + "PendingModifiedValues": { + "type": "structure", + "members": { + "DBInstanceClass": {}, + "AllocatedStorage": { + "type": "integer" + }, + "MasterUserPassword": {}, + "Port": { + "type": "integer" + }, + "BackupRetentionPeriod": { + "type": "integer" + }, + "MultiAZ": { + "type": "boolean" + }, + "EngineVersion": {}, + "Iops": { + "type": "integer" + }, + "DBInstanceIdentifier": {} + } + }, + "LatestRestorableTime": { + "type": "timestamp" + }, + "MultiAZ": { + "type": "boolean" + }, + "EngineVersion": {}, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "ReadReplicaSourceDBInstanceIdentifier": {}, + "ReadReplicaDBInstanceIdentifiers": { + "type": "list", + "members": { + "name": "ReadReplicaDBInstanceIdentifier" + } + }, + "LicenseModel": {}, + "Iops": { + "type": "integer" + }, + "OptionGroupMemberships": { + "type": "list", + "members": { + "type": "structure", + "members": { + "OptionGroupName": {}, + "Status": {} + }, + "name": "OptionGroupMembership" + } + }, + "CharacterSetName": {}, + "SecondaryAvailabilityZone": {}, + "PubliclyAccessible": { + "type": "boolean" + }, + "StatusInfos": { + "type": "list", + "members": { + "type": "structure", + "members": { + "StatusType": {}, + "Normal": { + "type": "boolean" + }, + "Status": {}, + "Message": {} + }, + "name": "DBInstanceStatusInfo" + } + } + } + } + } + } + }, + "deleteDBParameterGroup": { + "name": "DeleteDBParameterGroup", + "input": { + "type": "structure", + "members": { + "DBParameterGroupName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteDBSecurityGroup": { + "name": "DeleteDBSecurityGroup", + "input": { + "type": "structure", + "members": { + "DBSecurityGroupName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteDBSnapshot": { + "name": "DeleteDBSnapshot", + "input": { + "type": "structure", + "members": { + "DBSnapshotIdentifier": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "DBSnapshot": { + "type": "structure", + "members": { + "DBSnapshotIdentifier": {}, + "DBInstanceIdentifier": {}, + "SnapshotCreateTime": { + "type": "timestamp" + }, + "Engine": {}, + "AllocatedStorage": { + "type": "integer" + }, + "Status": {}, + "Port": { + "type": "integer" + }, + "AvailabilityZone": {}, + "VpcId": {}, + "InstanceCreateTime": { + "type": "timestamp" + }, + "MasterUsername": {}, + "EngineVersion": {}, + "LicenseModel": {}, + "SnapshotType": {}, + "Iops": { + "type": "integer" + }, + "OptionGroupName": {}, + "PercentProgress": { + "type": "integer" + }, + "SourceRegion": {} + } + } + } + } + }, + "deleteDBSubnetGroup": { + "name": "DeleteDBSubnetGroup", + "input": { + "type": "structure", + "members": { + "DBSubnetGroupName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteEventSubscription": { + "name": "DeleteEventSubscription", + "input": { + "type": "structure", + "members": { + "SubscriptionName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "EventSubscription": { + "type": "structure", + "members": { + "CustomerAwsId": {}, + "CustSubscriptionId": {}, + "SnsTopicArn": {}, + "Status": {}, + "SubscriptionCreationTime": {}, + "SourceType": {}, + "SourceIdsList": { + "type": "list", + "members": { + "name": "SourceId" + } + }, + "EventCategoriesList": { + "type": "list", + "members": { + "name": "EventCategory" + } + }, + "Enabled": { + "type": "boolean" + } + } + } + } + } + }, + "deleteOptionGroup": { + "name": "DeleteOptionGroup", + "input": { + "type": "structure", + "members": { + "OptionGroupName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "describeDBEngineVersions": { + "name": "DescribeDBEngineVersions", + "input": { + "type": "structure", + "members": { + "Engine": {}, + "EngineVersion": {}, + "DBParameterGroupFamily": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {}, + "DefaultOnly": { + "type": "boolean" + }, + "ListSupportedCharacterSets": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "Marker": {}, + "DBEngineVersions": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Engine": {}, + "EngineVersion": {}, + "DBParameterGroupFamily": {}, + "DBEngineDescription": {}, + "DBEngineVersionDescription": {}, + "DefaultCharacterSet": { + "type": "structure", + "members": { + "CharacterSetName": {}, + "CharacterSetDescription": {} + } + }, + "SupportedCharacterSets": { + "type": "list", + "members": { + "type": "structure", + "members": { + "CharacterSetName": {}, + "CharacterSetDescription": {} + }, + "name": "CharacterSet" + } + } + }, + "name": "DBEngineVersion" + } + } + } + } + }, + "describeDBInstances": { + "name": "DescribeDBInstances", + "input": { + "type": "structure", + "members": { + "DBInstanceIdentifier": {}, + "Filters": { + "type": "list", + "members": { + "type": "structure", + "members": { + "FilterName": { + "required": true + }, + "FilterValue": { + "type": "list", + "members": { + "name": "Value" + }, + "required": true + } + }, + "name": "Filter" + } + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "type": "structure", + "members": { + "Marker": {}, + "DBInstances": { + "type": "list", + "members": { + "type": "structure", + "members": { + "DBInstanceIdentifier": {}, + "DBInstanceClass": {}, + "Engine": {}, + "DBInstanceStatus": {}, + "MasterUsername": {}, + "DBName": {}, + "Endpoint": { + "type": "structure", + "members": { + "Address": {}, + "Port": { + "type": "integer" + } + } + }, + "AllocatedStorage": { + "type": "integer" + }, + "InstanceCreateTime": { + "type": "timestamp" + }, + "PreferredBackupWindow": {}, + "BackupRetentionPeriod": { + "type": "integer" + }, + "DBSecurityGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "DBSecurityGroupName": {}, + "Status": {} + }, + "name": "DBSecurityGroup" + } + }, + "VpcSecurityGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "VpcSecurityGroupId": {}, + "Status": {} + }, + "name": "VpcSecurityGroupMembership" + } + }, + "DBParameterGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "DBParameterGroupName": {}, + "ParameterApplyStatus": {} + }, + "name": "DBParameterGroup" + } + }, + "AvailabilityZone": {}, + "DBSubnetGroup": { + "type": "structure", + "members": { + "DBSubnetGroupName": {}, + "DBSubnetGroupDescription": {}, + "VpcId": {}, + "SubnetGroupStatus": {}, + "Subnets": { + "type": "list", + "members": { + "type": "structure", + "members": { + "SubnetIdentifier": {}, + "SubnetAvailabilityZone": { + "type": "structure", + "members": { + "Name": {}, + "ProvisionedIopsCapable": { + "type": "boolean" + } + } + }, + "SubnetStatus": {} + }, + "name": "Subnet" + } + } + } + }, + "PreferredMaintenanceWindow": {}, + "PendingModifiedValues": { + "type": "structure", + "members": { + "DBInstanceClass": {}, + "AllocatedStorage": { + "type": "integer" + }, + "MasterUserPassword": {}, + "Port": { + "type": "integer" + }, + "BackupRetentionPeriod": { + "type": "integer" + }, + "MultiAZ": { + "type": "boolean" + }, + "EngineVersion": {}, + "Iops": { + "type": "integer" + }, + "DBInstanceIdentifier": {} + } + }, + "LatestRestorableTime": { + "type": "timestamp" + }, + "MultiAZ": { + "type": "boolean" + }, + "EngineVersion": {}, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "ReadReplicaSourceDBInstanceIdentifier": {}, + "ReadReplicaDBInstanceIdentifiers": { + "type": "list", + "members": { + "name": "ReadReplicaDBInstanceIdentifier" + } + }, + "LicenseModel": {}, + "Iops": { + "type": "integer" + }, + "OptionGroupMemberships": { + "type": "list", + "members": { + "type": "structure", + "members": { + "OptionGroupName": {}, + "Status": {} + }, + "name": "OptionGroupMembership" + } + }, + "CharacterSetName": {}, + "SecondaryAvailabilityZone": {}, + "PubliclyAccessible": { + "type": "boolean" + }, + "StatusInfos": { + "type": "list", + "members": { + "type": "structure", + "members": { + "StatusType": {}, + "Normal": { + "type": "boolean" + }, + "Status": {}, + "Message": {} + }, + "name": "DBInstanceStatusInfo" + } + } + }, + "name": "DBInstance" + } + } + } + } + }, + "describeDBLogFiles": { + "name": "DescribeDBLogFiles", + "input": { + "type": "structure", + "members": { + "DBInstanceIdentifier": { + "required": true + }, + "FilenameContains": {}, + "FileLastWritten": { + "type": "integer" + }, + "FileSize": { + "type": "integer" + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "type": "structure", + "members": { + "DescribeDBLogFiles": { + "type": "list", + "members": { + "type": "structure", + "members": { + "LogFileName": {}, + "LastWritten": { + "type": "integer" + }, + "Size": { + "type": "integer" + } + }, + "name": "DescribeDBLogFilesDetails" + } + }, + "Marker": {} + } + } + }, + "describeDBParameterGroups": { + "name": "DescribeDBParameterGroups", + "input": { + "type": "structure", + "members": { + "DBParameterGroupName": {}, + "Filters": { + "type": "list", + "members": { + "type": "structure", + "members": { + "FilterName": { + "required": true + }, + "FilterValue": { + "type": "list", + "members": { + "name": "Value" + }, + "required": true + } + }, + "name": "Filter" + } + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "type": "structure", + "members": { + "Marker": {}, + "DBParameterGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "DBParameterGroupName": {}, + "DBParameterGroupFamily": {}, + "Description": {} + }, + "name": "DBParameterGroup" + } + } + } + } + }, + "describeDBParameters": { + "name": "DescribeDBParameters", + "input": { + "type": "structure", + "members": { + "DBParameterGroupName": { + "required": true + }, + "Source": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "type": "structure", + "members": { + "Parameters": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ParameterName": {}, + "ParameterValue": {}, + "Description": {}, + "Source": {}, + "ApplyType": {}, + "DataType": {}, + "AllowedValues": {}, + "IsModifiable": { + "type": "boolean" + }, + "MinimumEngineVersion": {}, + "ApplyMethod": {} + }, + "name": "Parameter" + } + }, + "Marker": {} + } + } + }, + "describeDBSecurityGroups": { + "name": "DescribeDBSecurityGroups", + "input": { + "type": "structure", + "members": { + "DBSecurityGroupName": {}, + "Filters": { + "type": "list", + "members": { + "type": "structure", + "members": { + "FilterName": { + "required": true + }, + "FilterValue": { + "type": "list", + "members": { + "name": "Value" + }, + "required": true + } + }, + "name": "Filter" + } + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "type": "structure", + "members": { + "Marker": {}, + "DBSecurityGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "OwnerId": {}, + "DBSecurityGroupName": {}, + "DBSecurityGroupDescription": {}, + "VpcId": {}, + "EC2SecurityGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Status": {}, + "EC2SecurityGroupName": {}, + "EC2SecurityGroupId": {}, + "EC2SecurityGroupOwnerId": {} + }, + "name": "EC2SecurityGroup" + } + }, + "IPRanges": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Status": {}, + "CIDRIP": {} + }, + "name": "IPRange" + } + } + }, + "name": "DBSecurityGroup" + } + } + } + } + }, + "describeDBSnapshots": { + "name": "DescribeDBSnapshots", + "input": { + "type": "structure", + "members": { + "DBInstanceIdentifier": {}, + "DBSnapshotIdentifier": {}, + "SnapshotType": {}, + "Filters": { + "type": "list", + "members": { + "type": "structure", + "members": { + "FilterName": { + "required": true + }, + "FilterValue": { + "type": "list", + "members": { + "name": "Value" + }, + "required": true + } + }, + "name": "Filter" + } + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "type": "structure", + "members": { + "Marker": {}, + "DBSnapshots": { + "type": "list", + "members": { + "type": "structure", + "members": { + "DBSnapshotIdentifier": {}, + "DBInstanceIdentifier": {}, + "SnapshotCreateTime": { + "type": "timestamp" + }, + "Engine": {}, + "AllocatedStorage": { + "type": "integer" + }, + "Status": {}, + "Port": { + "type": "integer" + }, + "AvailabilityZone": {}, + "VpcId": {}, + "InstanceCreateTime": { + "type": "timestamp" + }, + "MasterUsername": {}, + "EngineVersion": {}, + "LicenseModel": {}, + "SnapshotType": {}, + "Iops": { + "type": "integer" + }, + "OptionGroupName": {}, + "PercentProgress": { + "type": "integer" + }, + "SourceRegion": {} + }, + "name": "DBSnapshot" + } + } + } + } + }, + "describeDBSubnetGroups": { + "name": "DescribeDBSubnetGroups", + "input": { + "type": "structure", + "members": { + "DBSubnetGroupName": {}, + "Filters": { + "type": "list", + "members": { + "type": "structure", + "members": { + "FilterName": { + "required": true + }, + "FilterValue": { + "type": "list", + "members": { + "name": "Value" + }, + "required": true + } + }, + "name": "Filter" + } + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "type": "structure", + "members": { + "Marker": {}, + "DBSubnetGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "DBSubnetGroupName": {}, + "DBSubnetGroupDescription": {}, + "VpcId": {}, + "SubnetGroupStatus": {}, + "Subnets": { + "type": "list", + "members": { + "type": "structure", + "members": { + "SubnetIdentifier": {}, + "SubnetAvailabilityZone": { + "type": "structure", + "members": { + "Name": {}, + "ProvisionedIopsCapable": { + "type": "boolean" + } + } + }, + "SubnetStatus": {} + }, + "name": "Subnet" + } + } + }, + "name": "DBSubnetGroup" + } + } + } + } + }, + "describeEngineDefaultParameters": { + "name": "DescribeEngineDefaultParameters", + "input": { + "type": "structure", + "members": { + "DBParameterGroupFamily": { + "required": true + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "type": "structure", + "members": { + "EngineDefaults": { + "type": "structure", + "members": { + "DBParameterGroupFamily": {}, + "Marker": {}, + "Parameters": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ParameterName": {}, + "ParameterValue": {}, + "Description": {}, + "Source": {}, + "ApplyType": {}, + "DataType": {}, + "AllowedValues": {}, + "IsModifiable": { + "type": "boolean" + }, + "MinimumEngineVersion": {}, + "ApplyMethod": {} + }, + "name": "Parameter" + } + } + } + } + } + } + }, + "describeEventCategories": { + "name": "DescribeEventCategories", + "input": { + "type": "structure", + "members": { + "SourceType": {} + } + }, + "output": { + "type": "structure", + "members": { + "EventCategoriesMapList": { + "type": "list", + "members": { + "type": "structure", + "members": { + "SourceType": {}, + "EventCategories": { + "type": "list", + "members": { + "name": "EventCategory" + } + } + }, + "name": "EventCategoriesMap" + } + } + } + } + }, + "describeEventSubscriptions": { + "name": "DescribeEventSubscriptions", + "input": { + "type": "structure", + "members": { + "SubscriptionName": {}, + "Filters": { + "type": "list", + "members": { + "type": "structure", + "members": { + "FilterName": { + "required": true + }, + "FilterValue": { + "type": "list", + "members": { + "name": "Value" + }, + "required": true + } + }, + "name": "Filter" + } + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "type": "structure", + "members": { + "Marker": {}, + "EventSubscriptionsList": { + "type": "list", + "members": { + "type": "structure", + "members": { + "CustomerAwsId": {}, + "CustSubscriptionId": {}, + "SnsTopicArn": {}, + "Status": {}, + "SubscriptionCreationTime": {}, + "SourceType": {}, + "SourceIdsList": { + "type": "list", + "members": { + "name": "SourceId" + } + }, + "EventCategoriesList": { + "type": "list", + "members": { + "name": "EventCategory" + } + }, + "Enabled": { + "type": "boolean" + } + }, + "name": "EventSubscription" + } + } + } + } + }, + "describeEvents": { + "name": "DescribeEvents", + "input": { + "type": "structure", + "members": { + "SourceIdentifier": {}, + "SourceType": {}, + "StartTime": { + "type": "timestamp" + }, + "EndTime": { + "type": "timestamp" + }, + "Duration": { + "type": "integer" + }, + "EventCategories": { + "type": "list", + "members": { + "name": "EventCategory" + } + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "type": "structure", + "members": { + "Marker": {}, + "Events": { + "type": "list", + "members": { + "type": "structure", + "members": { + "SourceIdentifier": {}, + "SourceType": {}, + "Message": {}, + "EventCategories": { + "type": "list", + "members": { + "name": "EventCategory" + } + }, + "Date": { + "type": "timestamp" + } + }, + "name": "Event" + } + } + } + } + }, + "describeOptionGroupOptions": { + "name": "DescribeOptionGroupOptions", + "input": { + "type": "structure", + "members": { + "EngineName": { + "required": true + }, + "MajorEngineVersion": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "type": "structure", + "members": { + "OptionGroupOptions": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": {}, + "Description": {}, + "EngineName": {}, + "MajorEngineVersion": {}, + "MinimumRequiredMinorEngineVersion": {}, + "PortRequired": { + "type": "boolean" + }, + "DefaultPort": { + "type": "integer" + }, + "OptionsDependedOn": { + "type": "list", + "members": { + "name": "OptionName" + } + }, + "Persistent": { + "type": "boolean" + }, + "Permanent": { + "type": "boolean" + }, + "OptionGroupOptionSettings": { + "type": "list", + "members": { + "type": "structure", + "members": { + "SettingName": {}, + "SettingDescription": {}, + "DefaultValue": {}, + "ApplyType": {}, + "AllowedValues": {}, + "IsModifiable": { + "type": "boolean" + } + }, + "name": "OptionGroupOptionSetting" + } + } + }, + "name": "OptionGroupOption" + } + }, + "Marker": {} + } + } + }, + "describeOptionGroups": { + "name": "DescribeOptionGroups", + "input": { + "type": "structure", + "members": { + "OptionGroupName": {}, + "Filters": { + "type": "list", + "members": { + "type": "structure", + "members": { + "FilterName": { + "required": true + }, + "FilterValue": { + "type": "list", + "members": { + "name": "Value" + }, + "required": true + } + }, + "name": "Filter" + } + }, + "Marker": {}, + "MaxRecords": { + "type": "integer" + }, + "EngineName": {}, + "MajorEngineVersion": {} + } + }, + "output": { + "type": "structure", + "members": { + "OptionGroupsList": { + "type": "list", + "members": { + "type": "structure", + "members": { + "OptionGroupName": {}, + "OptionGroupDescription": {}, + "EngineName": {}, + "MajorEngineVersion": {}, + "Options": { + "type": "list", + "members": { + "type": "structure", + "members": { + "OptionName": {}, + "OptionDescription": {}, + "Persistent": { + "type": "boolean" + }, + "Permanent": { + "type": "boolean" + }, + "Port": { + "type": "integer" + }, + "OptionSettings": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": {}, + "Value": {}, + "DefaultValue": {}, + "Description": {}, + "ApplyType": {}, + "DataType": {}, + "AllowedValues": {}, + "IsModifiable": { + "type": "boolean" + }, + "IsCollection": { + "type": "boolean" + } + }, + "name": "OptionSetting" + } + }, + "DBSecurityGroupMemberships": { + "type": "list", + "members": { + "type": "structure", + "members": { + "DBSecurityGroupName": {}, + "Status": {} + }, + "name": "DBSecurityGroup" + } + }, + "VpcSecurityGroupMemberships": { + "type": "list", + "members": { + "type": "structure", + "members": { + "VpcSecurityGroupId": {}, + "Status": {} + }, + "name": "VpcSecurityGroupMembership" + } + } + }, + "name": "Option" + } + }, + "AllowsVpcAndNonVpcInstanceMemberships": { + "type": "boolean" + }, + "VpcId": {} + }, + "name": "OptionGroup" + } + }, + "Marker": {} + } + } + }, + "describeOrderableDBInstanceOptions": { + "name": "DescribeOrderableDBInstanceOptions", + "input": { + "type": "structure", + "members": { + "Engine": { + "required": true + }, + "EngineVersion": {}, + "DBInstanceClass": {}, + "LicenseModel": {}, + "Vpc": { + "type": "boolean" + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "type": "structure", + "members": { + "OrderableDBInstanceOptions": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Engine": {}, + "EngineVersion": {}, + "DBInstanceClass": {}, + "LicenseModel": {}, + "AvailabilityZones": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": {}, + "ProvisionedIopsCapable": { + "type": "boolean" + } + }, + "name": "AvailabilityZone" + } + }, + "MultiAZCapable": { + "type": "boolean" + }, + "ReadReplicaCapable": { + "type": "boolean" + }, + "Vpc": { + "type": "boolean" + } + }, + "name": "OrderableDBInstanceOption" + } + }, + "Marker": {} + } + } + }, + "describeReservedDBInstances": { + "name": "DescribeReservedDBInstances", + "input": { + "type": "structure", + "members": { + "ReservedDBInstanceId": {}, + "ReservedDBInstancesOfferingId": {}, + "DBInstanceClass": {}, + "Duration": {}, + "ProductDescription": {}, + "OfferingType": {}, + "MultiAZ": { + "type": "boolean" + }, + "Filters": { + "type": "list", + "members": { + "type": "structure", + "members": { + "FilterName": { + "required": true + }, + "FilterValue": { + "type": "list", + "members": { + "name": "Value" + }, + "required": true + } + }, + "name": "Filter" + } + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "type": "structure", + "members": { + "Marker": {}, + "ReservedDBInstances": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ReservedDBInstanceId": {}, + "ReservedDBInstancesOfferingId": {}, + "DBInstanceClass": {}, + "StartTime": { + "type": "timestamp" + }, + "Duration": { + "type": "integer" + }, + "FixedPrice": { + "type": "float" + }, + "UsagePrice": { + "type": "float" + }, + "CurrencyCode": {}, + "DBInstanceCount": { + "type": "integer" + }, + "ProductDescription": {}, + "OfferingType": {}, + "MultiAZ": { + "type": "boolean" + }, + "State": {}, + "RecurringCharges": { + "type": "list", + "members": { + "type": "structure", + "members": { + "RecurringChargeAmount": { + "type": "float" + }, + "RecurringChargeFrequency": {} + }, + "name": "RecurringCharge" + } + } + }, + "name": "ReservedDBInstance" + } + } + } + } + }, + "describeReservedDBInstancesOfferings": { + "name": "DescribeReservedDBInstancesOfferings", + "input": { + "type": "structure", + "members": { + "ReservedDBInstancesOfferingId": {}, + "DBInstanceClass": {}, + "Duration": {}, + "ProductDescription": {}, + "OfferingType": {}, + "MultiAZ": { + "type": "boolean" + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "type": "structure", + "members": { + "Marker": {}, + "ReservedDBInstancesOfferings": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ReservedDBInstancesOfferingId": {}, + "DBInstanceClass": {}, + "Duration": { + "type": "integer" + }, + "FixedPrice": { + "type": "float" + }, + "UsagePrice": { + "type": "float" + }, + "CurrencyCode": {}, + "ProductDescription": {}, + "OfferingType": {}, + "MultiAZ": { + "type": "boolean" + }, + "RecurringCharges": { + "type": "list", + "members": { + "type": "structure", + "members": { + "RecurringChargeAmount": { + "type": "float" + }, + "RecurringChargeFrequency": {} + }, + "name": "RecurringCharge" + } + } + }, + "name": "ReservedDBInstancesOffering" + } + } + } + } + }, + "downloadDBLogFilePortion": { + "name": "DownloadDBLogFilePortion", + "input": { + "type": "structure", + "members": { + "DBInstanceIdentifier": { + "required": true + }, + "LogFileName": { + "required": true + }, + "Marker": {}, + "NumberOfLines": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "LogFileData": {}, + "Marker": {}, + "AdditionalDataPending": { + "type": "boolean" + } + } + } + }, + "listTagsForResource": { + "name": "ListTagsForResource", + "input": { + "type": "structure", + "members": { + "ResourceName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "TagList": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Key": {}, + "Value": {} + }, + "name": "Tag" + } + } + } + } + }, + "modifyDBInstance": { + "name": "ModifyDBInstance", + "input": { + "type": "structure", + "members": { + "DBInstanceIdentifier": { + "required": true + }, + "AllocatedStorage": { + "type": "integer" + }, + "DBInstanceClass": {}, + "DBSecurityGroups": { + "type": "list", + "members": { + "name": "DBSecurityGroupName" + } + }, + "VpcSecurityGroupIds": { + "type": "list", + "members": { + "name": "VpcSecurityGroupId" + } + }, + "ApplyImmediately": { + "type": "boolean" + }, + "MasterUserPassword": {}, + "DBParameterGroupName": {}, + "BackupRetentionPeriod": { + "type": "integer" + }, + "PreferredBackupWindow": {}, + "PreferredMaintenanceWindow": {}, + "MultiAZ": { + "type": "boolean" + }, + "EngineVersion": {}, + "AllowMajorVersionUpgrade": { + "type": "boolean" + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "OptionGroupName": {}, + "NewDBInstanceIdentifier": {} + } + }, + "output": { + "type": "structure", + "members": { + "DBInstance": { + "type": "structure", + "members": { + "DBInstanceIdentifier": {}, + "DBInstanceClass": {}, + "Engine": {}, + "DBInstanceStatus": {}, + "MasterUsername": {}, + "DBName": {}, + "Endpoint": { + "type": "structure", + "members": { + "Address": {}, + "Port": { + "type": "integer" + } + } + }, + "AllocatedStorage": { + "type": "integer" + }, + "InstanceCreateTime": { + "type": "timestamp" + }, + "PreferredBackupWindow": {}, + "BackupRetentionPeriod": { + "type": "integer" + }, + "DBSecurityGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "DBSecurityGroupName": {}, + "Status": {} + }, + "name": "DBSecurityGroup" + } + }, + "VpcSecurityGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "VpcSecurityGroupId": {}, + "Status": {} + }, + "name": "VpcSecurityGroupMembership" + } + }, + "DBParameterGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "DBParameterGroupName": {}, + "ParameterApplyStatus": {} + }, + "name": "DBParameterGroup" + } + }, + "AvailabilityZone": {}, + "DBSubnetGroup": { + "type": "structure", + "members": { + "DBSubnetGroupName": {}, + "DBSubnetGroupDescription": {}, + "VpcId": {}, + "SubnetGroupStatus": {}, + "Subnets": { + "type": "list", + "members": { + "type": "structure", + "members": { + "SubnetIdentifier": {}, + "SubnetAvailabilityZone": { + "type": "structure", + "members": { + "Name": {}, + "ProvisionedIopsCapable": { + "type": "boolean" + } + } + }, + "SubnetStatus": {} + }, + "name": "Subnet" + } + } + } + }, + "PreferredMaintenanceWindow": {}, + "PendingModifiedValues": { + "type": "structure", + "members": { + "DBInstanceClass": {}, + "AllocatedStorage": { + "type": "integer" + }, + "MasterUserPassword": {}, + "Port": { + "type": "integer" + }, + "BackupRetentionPeriod": { + "type": "integer" + }, + "MultiAZ": { + "type": "boolean" + }, + "EngineVersion": {}, + "Iops": { + "type": "integer" + }, + "DBInstanceIdentifier": {} + } + }, + "LatestRestorableTime": { + "type": "timestamp" + }, + "MultiAZ": { + "type": "boolean" + }, + "EngineVersion": {}, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "ReadReplicaSourceDBInstanceIdentifier": {}, + "ReadReplicaDBInstanceIdentifiers": { + "type": "list", + "members": { + "name": "ReadReplicaDBInstanceIdentifier" + } + }, + "LicenseModel": {}, + "Iops": { + "type": "integer" + }, + "OptionGroupMemberships": { + "type": "list", + "members": { + "type": "structure", + "members": { + "OptionGroupName": {}, + "Status": {} + }, + "name": "OptionGroupMembership" + } + }, + "CharacterSetName": {}, + "SecondaryAvailabilityZone": {}, + "PubliclyAccessible": { + "type": "boolean" + }, + "StatusInfos": { + "type": "list", + "members": { + "type": "structure", + "members": { + "StatusType": {}, + "Normal": { + "type": "boolean" + }, + "Status": {}, + "Message": {} + }, + "name": "DBInstanceStatusInfo" + } + } + } + } + } + } + }, + "modifyDBParameterGroup": { + "name": "ModifyDBParameterGroup", + "input": { + "type": "structure", + "members": { + "DBParameterGroupName": { + "required": true + }, + "Parameters": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ParameterName": {}, + "ParameterValue": {}, + "Description": {}, + "Source": {}, + "ApplyType": {}, + "DataType": {}, + "AllowedValues": {}, + "IsModifiable": { + "type": "boolean" + }, + "MinimumEngineVersion": {}, + "ApplyMethod": {} + }, + "name": "Parameter" + }, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "DBParameterGroupName": {} + } + } + }, + "modifyDBSubnetGroup": { + "name": "ModifyDBSubnetGroup", + "input": { + "type": "structure", + "members": { + "DBSubnetGroupName": { + "required": true + }, + "DBSubnetGroupDescription": {}, + "SubnetIds": { + "type": "list", + "members": { + "name": "SubnetIdentifier" + }, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "DBSubnetGroup": { + "type": "structure", + "members": { + "DBSubnetGroupName": {}, + "DBSubnetGroupDescription": {}, + "VpcId": {}, + "SubnetGroupStatus": {}, + "Subnets": { + "type": "list", + "members": { + "type": "structure", + "members": { + "SubnetIdentifier": {}, + "SubnetAvailabilityZone": { + "type": "structure", + "members": { + "Name": {}, + "ProvisionedIopsCapable": { + "type": "boolean" + } + } + }, + "SubnetStatus": {} + }, + "name": "Subnet" + } + } + } + } + } + } + }, + "modifyEventSubscription": { + "name": "ModifyEventSubscription", + "input": { + "type": "structure", + "members": { + "SubscriptionName": { + "required": true + }, + "SnsTopicArn": {}, + "SourceType": {}, + "EventCategories": { + "type": "list", + "members": { + "name": "EventCategory" + } + }, + "Enabled": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "EventSubscription": { + "type": "structure", + "members": { + "CustomerAwsId": {}, + "CustSubscriptionId": {}, + "SnsTopicArn": {}, + "Status": {}, + "SubscriptionCreationTime": {}, + "SourceType": {}, + "SourceIdsList": { + "type": "list", + "members": { + "name": "SourceId" + } + }, + "EventCategoriesList": { + "type": "list", + "members": { + "name": "EventCategory" + } + }, + "Enabled": { + "type": "boolean" + } + } + } + } + } + }, + "modifyOptionGroup": { + "name": "ModifyOptionGroup", + "input": { + "type": "structure", + "members": { + "OptionGroupName": { + "required": true + }, + "OptionsToInclude": { + "type": "list", + "members": { + "type": "structure", + "members": { + "OptionName": { + "required": true + }, + "Port": { + "type": "integer" + }, + "DBSecurityGroupMemberships": { + "type": "list", + "members": { + "name": "DBSecurityGroupName" + } + }, + "VpcSecurityGroupMemberships": { + "type": "list", + "members": { + "name": "VpcSecurityGroupId" + } + }, + "OptionSettings": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": {}, + "Value": {}, + "DefaultValue": {}, + "Description": {}, + "ApplyType": {}, + "DataType": {}, + "AllowedValues": {}, + "IsModifiable": { + "type": "boolean" + }, + "IsCollection": { + "type": "boolean" + } + }, + "name": "OptionSetting" + } + } + }, + "name": "OptionConfiguration" + } + }, + "OptionsToRemove": { + "type": "list", + "members": {} + }, + "ApplyImmediately": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "OptionGroup": { + "type": "structure", + "members": { + "OptionGroupName": {}, + "OptionGroupDescription": {}, + "EngineName": {}, + "MajorEngineVersion": {}, + "Options": { + "type": "list", + "members": { + "type": "structure", + "members": { + "OptionName": {}, + "OptionDescription": {}, + "Persistent": { + "type": "boolean" + }, + "Permanent": { + "type": "boolean" + }, + "Port": { + "type": "integer" + }, + "OptionSettings": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": {}, + "Value": {}, + "DefaultValue": {}, + "Description": {}, + "ApplyType": {}, + "DataType": {}, + "AllowedValues": {}, + "IsModifiable": { + "type": "boolean" + }, + "IsCollection": { + "type": "boolean" + } + }, + "name": "OptionSetting" + } + }, + "DBSecurityGroupMemberships": { + "type": "list", + "members": { + "type": "structure", + "members": { + "DBSecurityGroupName": {}, + "Status": {} + }, + "name": "DBSecurityGroup" + } + }, + "VpcSecurityGroupMemberships": { + "type": "list", + "members": { + "type": "structure", + "members": { + "VpcSecurityGroupId": {}, + "Status": {} + }, + "name": "VpcSecurityGroupMembership" + } + } + }, + "name": "Option" + } + }, + "AllowsVpcAndNonVpcInstanceMemberships": { + "type": "boolean" + }, + "VpcId": {} + } + } + } + } + }, + "promoteReadReplica": { + "name": "PromoteReadReplica", + "input": { + "type": "structure", + "members": { + "DBInstanceIdentifier": { + "required": true + }, + "BackupRetentionPeriod": { + "type": "integer" + }, + "PreferredBackupWindow": {} + } + }, + "output": { + "type": "structure", + "members": { + "DBInstance": { + "type": "structure", + "members": { + "DBInstanceIdentifier": {}, + "DBInstanceClass": {}, + "Engine": {}, + "DBInstanceStatus": {}, + "MasterUsername": {}, + "DBName": {}, + "Endpoint": { + "type": "structure", + "members": { + "Address": {}, + "Port": { + "type": "integer" + } + } + }, + "AllocatedStorage": { + "type": "integer" + }, + "InstanceCreateTime": { + "type": "timestamp" + }, + "PreferredBackupWindow": {}, + "BackupRetentionPeriod": { + "type": "integer" + }, + "DBSecurityGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "DBSecurityGroupName": {}, + "Status": {} + }, + "name": "DBSecurityGroup" + } + }, + "VpcSecurityGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "VpcSecurityGroupId": {}, + "Status": {} + }, + "name": "VpcSecurityGroupMembership" + } + }, + "DBParameterGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "DBParameterGroupName": {}, + "ParameterApplyStatus": {} + }, + "name": "DBParameterGroup" + } + }, + "AvailabilityZone": {}, + "DBSubnetGroup": { + "type": "structure", + "members": { + "DBSubnetGroupName": {}, + "DBSubnetGroupDescription": {}, + "VpcId": {}, + "SubnetGroupStatus": {}, + "Subnets": { + "type": "list", + "members": { + "type": "structure", + "members": { + "SubnetIdentifier": {}, + "SubnetAvailabilityZone": { + "type": "structure", + "members": { + "Name": {}, + "ProvisionedIopsCapable": { + "type": "boolean" + } + } + }, + "SubnetStatus": {} + }, + "name": "Subnet" + } + } + } + }, + "PreferredMaintenanceWindow": {}, + "PendingModifiedValues": { + "type": "structure", + "members": { + "DBInstanceClass": {}, + "AllocatedStorage": { + "type": "integer" + }, + "MasterUserPassword": {}, + "Port": { + "type": "integer" + }, + "BackupRetentionPeriod": { + "type": "integer" + }, + "MultiAZ": { + "type": "boolean" + }, + "EngineVersion": {}, + "Iops": { + "type": "integer" + }, + "DBInstanceIdentifier": {} + } + }, + "LatestRestorableTime": { + "type": "timestamp" + }, + "MultiAZ": { + "type": "boolean" + }, + "EngineVersion": {}, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "ReadReplicaSourceDBInstanceIdentifier": {}, + "ReadReplicaDBInstanceIdentifiers": { + "type": "list", + "members": { + "name": "ReadReplicaDBInstanceIdentifier" + } + }, + "LicenseModel": {}, + "Iops": { + "type": "integer" + }, + "OptionGroupMemberships": { + "type": "list", + "members": { + "type": "structure", + "members": { + "OptionGroupName": {}, + "Status": {} + }, + "name": "OptionGroupMembership" + } + }, + "CharacterSetName": {}, + "SecondaryAvailabilityZone": {}, + "PubliclyAccessible": { + "type": "boolean" + }, + "StatusInfos": { + "type": "list", + "members": { + "type": "structure", + "members": { + "StatusType": {}, + "Normal": { + "type": "boolean" + }, + "Status": {}, + "Message": {} + }, + "name": "DBInstanceStatusInfo" + } + } + } + } + } + } + }, + "purchaseReservedDBInstancesOffering": { + "name": "PurchaseReservedDBInstancesOffering", + "input": { + "type": "structure", + "members": { + "ReservedDBInstancesOfferingId": { + "required": true + }, + "ReservedDBInstanceId": {}, + "DBInstanceCount": { + "type": "integer" + }, + "Tags": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Key": {}, + "Value": {} + }, + "name": "Tag" + } + } + } + }, + "output": { + "type": "structure", + "members": { + "ReservedDBInstance": { + "type": "structure", + "members": { + "ReservedDBInstanceId": {}, + "ReservedDBInstancesOfferingId": {}, + "DBInstanceClass": {}, + "StartTime": { + "type": "timestamp" + }, + "Duration": { + "type": "integer" + }, + "FixedPrice": { + "type": "float" + }, + "UsagePrice": { + "type": "float" + }, + "CurrencyCode": {}, + "DBInstanceCount": { + "type": "integer" + }, + "ProductDescription": {}, + "OfferingType": {}, + "MultiAZ": { + "type": "boolean" + }, + "State": {}, + "RecurringCharges": { + "type": "list", + "members": { + "type": "structure", + "members": { + "RecurringChargeAmount": { + "type": "float" + }, + "RecurringChargeFrequency": {} + }, + "name": "RecurringCharge" + } + } + } + } + } + } + }, + "rebootDBInstance": { + "name": "RebootDBInstance", + "input": { + "type": "structure", + "members": { + "DBInstanceIdentifier": { + "required": true + }, + "ForceFailover": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "DBInstance": { + "type": "structure", + "members": { + "DBInstanceIdentifier": {}, + "DBInstanceClass": {}, + "Engine": {}, + "DBInstanceStatus": {}, + "MasterUsername": {}, + "DBName": {}, + "Endpoint": { + "type": "structure", + "members": { + "Address": {}, + "Port": { + "type": "integer" + } + } + }, + "AllocatedStorage": { + "type": "integer" + }, + "InstanceCreateTime": { + "type": "timestamp" + }, + "PreferredBackupWindow": {}, + "BackupRetentionPeriod": { + "type": "integer" + }, + "DBSecurityGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "DBSecurityGroupName": {}, + "Status": {} + }, + "name": "DBSecurityGroup" + } + }, + "VpcSecurityGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "VpcSecurityGroupId": {}, + "Status": {} + }, + "name": "VpcSecurityGroupMembership" + } + }, + "DBParameterGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "DBParameterGroupName": {}, + "ParameterApplyStatus": {} + }, + "name": "DBParameterGroup" + } + }, + "AvailabilityZone": {}, + "DBSubnetGroup": { + "type": "structure", + "members": { + "DBSubnetGroupName": {}, + "DBSubnetGroupDescription": {}, + "VpcId": {}, + "SubnetGroupStatus": {}, + "Subnets": { + "type": "list", + "members": { + "type": "structure", + "members": { + "SubnetIdentifier": {}, + "SubnetAvailabilityZone": { + "type": "structure", + "members": { + "Name": {}, + "ProvisionedIopsCapable": { + "type": "boolean" + } + } + }, + "SubnetStatus": {} + }, + "name": "Subnet" + } + } + } + }, + "PreferredMaintenanceWindow": {}, + "PendingModifiedValues": { + "type": "structure", + "members": { + "DBInstanceClass": {}, + "AllocatedStorage": { + "type": "integer" + }, + "MasterUserPassword": {}, + "Port": { + "type": "integer" + }, + "BackupRetentionPeriod": { + "type": "integer" + }, + "MultiAZ": { + "type": "boolean" + }, + "EngineVersion": {}, + "Iops": { + "type": "integer" + }, + "DBInstanceIdentifier": {} + } + }, + "LatestRestorableTime": { + "type": "timestamp" + }, + "MultiAZ": { + "type": "boolean" + }, + "EngineVersion": {}, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "ReadReplicaSourceDBInstanceIdentifier": {}, + "ReadReplicaDBInstanceIdentifiers": { + "type": "list", + "members": { + "name": "ReadReplicaDBInstanceIdentifier" + } + }, + "LicenseModel": {}, + "Iops": { + "type": "integer" + }, + "OptionGroupMemberships": { + "type": "list", + "members": { + "type": "structure", + "members": { + "OptionGroupName": {}, + "Status": {} + }, + "name": "OptionGroupMembership" + } + }, + "CharacterSetName": {}, + "SecondaryAvailabilityZone": {}, + "PubliclyAccessible": { + "type": "boolean" + }, + "StatusInfos": { + "type": "list", + "members": { + "type": "structure", + "members": { + "StatusType": {}, + "Normal": { + "type": "boolean" + }, + "Status": {}, + "Message": {} + }, + "name": "DBInstanceStatusInfo" + } + } + } + } + } + } + }, + "removeSourceIdentifierFromSubscription": { + "name": "RemoveSourceIdentifierFromSubscription", + "input": { + "type": "structure", + "members": { + "SubscriptionName": { + "required": true + }, + "SourceIdentifier": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "EventSubscription": { + "type": "structure", + "members": { + "CustomerAwsId": {}, + "CustSubscriptionId": {}, + "SnsTopicArn": {}, + "Status": {}, + "SubscriptionCreationTime": {}, + "SourceType": {}, + "SourceIdsList": { + "type": "list", + "members": { + "name": "SourceId" + } + }, + "EventCategoriesList": { + "type": "list", + "members": { + "name": "EventCategory" + } + }, + "Enabled": { + "type": "boolean" + } + } + } + } + } + }, + "removeTagsFromResource": { + "name": "RemoveTagsFromResource", + "input": { + "type": "structure", + "members": { + "ResourceName": { + "required": true + }, + "TagKeys": { + "type": "list", + "members": {}, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "resetDBParameterGroup": { + "name": "ResetDBParameterGroup", + "input": { + "type": "structure", + "members": { + "DBParameterGroupName": { + "required": true + }, + "ResetAllParameters": { + "type": "boolean" + }, + "Parameters": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ParameterName": {}, + "ParameterValue": {}, + "Description": {}, + "Source": {}, + "ApplyType": {}, + "DataType": {}, + "AllowedValues": {}, + "IsModifiable": { + "type": "boolean" + }, + "MinimumEngineVersion": {}, + "ApplyMethod": {} + }, + "name": "Parameter" + } + } + } + }, + "output": { + "type": "structure", + "members": { + "DBParameterGroupName": {} + } + } + }, + "restoreDBInstanceFromDBSnapshot": { + "name": "RestoreDBInstanceFromDBSnapshot", + "input": { + "type": "structure", + "members": { + "DBInstanceIdentifier": { + "required": true + }, + "DBSnapshotIdentifier": { + "required": true + }, + "DBInstanceClass": {}, + "Port": { + "type": "integer" + }, + "AvailabilityZone": {}, + "DBSubnetGroupName": {}, + "MultiAZ": { + "type": "boolean" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "LicenseModel": {}, + "DBName": {}, + "Engine": {}, + "Iops": { + "type": "integer" + }, + "OptionGroupName": {}, + "Tags": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Key": {}, + "Value": {} + }, + "name": "Tag" + } + } + } + }, + "output": { + "type": "structure", + "members": { + "DBInstance": { + "type": "structure", + "members": { + "DBInstanceIdentifier": {}, + "DBInstanceClass": {}, + "Engine": {}, + "DBInstanceStatus": {}, + "MasterUsername": {}, + "DBName": {}, + "Endpoint": { + "type": "structure", + "members": { + "Address": {}, + "Port": { + "type": "integer" + } + } + }, + "AllocatedStorage": { + "type": "integer" + }, + "InstanceCreateTime": { + "type": "timestamp" + }, + "PreferredBackupWindow": {}, + "BackupRetentionPeriod": { + "type": "integer" + }, + "DBSecurityGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "DBSecurityGroupName": {}, + "Status": {} + }, + "name": "DBSecurityGroup" + } + }, + "VpcSecurityGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "VpcSecurityGroupId": {}, + "Status": {} + }, + "name": "VpcSecurityGroupMembership" + } + }, + "DBParameterGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "DBParameterGroupName": {}, + "ParameterApplyStatus": {} + }, + "name": "DBParameterGroup" + } + }, + "AvailabilityZone": {}, + "DBSubnetGroup": { + "type": "structure", + "members": { + "DBSubnetGroupName": {}, + "DBSubnetGroupDescription": {}, + "VpcId": {}, + "SubnetGroupStatus": {}, + "Subnets": { + "type": "list", + "members": { + "type": "structure", + "members": { + "SubnetIdentifier": {}, + "SubnetAvailabilityZone": { + "type": "structure", + "members": { + "Name": {}, + "ProvisionedIopsCapable": { + "type": "boolean" + } + } + }, + "SubnetStatus": {} + }, + "name": "Subnet" + } + } + } + }, + "PreferredMaintenanceWindow": {}, + "PendingModifiedValues": { + "type": "structure", + "members": { + "DBInstanceClass": {}, + "AllocatedStorage": { + "type": "integer" + }, + "MasterUserPassword": {}, + "Port": { + "type": "integer" + }, + "BackupRetentionPeriod": { + "type": "integer" + }, + "MultiAZ": { + "type": "boolean" + }, + "EngineVersion": {}, + "Iops": { + "type": "integer" + }, + "DBInstanceIdentifier": {} + } + }, + "LatestRestorableTime": { + "type": "timestamp" + }, + "MultiAZ": { + "type": "boolean" + }, + "EngineVersion": {}, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "ReadReplicaSourceDBInstanceIdentifier": {}, + "ReadReplicaDBInstanceIdentifiers": { + "type": "list", + "members": { + "name": "ReadReplicaDBInstanceIdentifier" + } + }, + "LicenseModel": {}, + "Iops": { + "type": "integer" + }, + "OptionGroupMemberships": { + "type": "list", + "members": { + "type": "structure", + "members": { + "OptionGroupName": {}, + "Status": {} + }, + "name": "OptionGroupMembership" + } + }, + "CharacterSetName": {}, + "SecondaryAvailabilityZone": {}, + "PubliclyAccessible": { + "type": "boolean" + }, + "StatusInfos": { + "type": "list", + "members": { + "type": "structure", + "members": { + "StatusType": {}, + "Normal": { + "type": "boolean" + }, + "Status": {}, + "Message": {} + }, + "name": "DBInstanceStatusInfo" + } + } + } + } + } + } + }, + "restoreDBInstanceToPointInTime": { + "name": "RestoreDBInstanceToPointInTime", + "input": { + "type": "structure", + "members": { + "SourceDBInstanceIdentifier": { + "required": true + }, + "TargetDBInstanceIdentifier": { + "required": true + }, + "RestoreTime": { + "type": "timestamp" + }, + "UseLatestRestorableTime": { + "type": "boolean" + }, + "DBInstanceClass": {}, + "Port": { + "type": "integer" + }, + "AvailabilityZone": {}, + "DBSubnetGroupName": {}, + "MultiAZ": { + "type": "boolean" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "LicenseModel": {}, + "DBName": {}, + "Engine": {}, + "Iops": { + "type": "integer" + }, + "OptionGroupName": {}, + "Tags": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Key": {}, + "Value": {} + }, + "name": "Tag" + } + } + } + }, + "output": { + "type": "structure", + "members": { + "DBInstance": { + "type": "structure", + "members": { + "DBInstanceIdentifier": {}, + "DBInstanceClass": {}, + "Engine": {}, + "DBInstanceStatus": {}, + "MasterUsername": {}, + "DBName": {}, + "Endpoint": { + "type": "structure", + "members": { + "Address": {}, + "Port": { + "type": "integer" + } + } + }, + "AllocatedStorage": { + "type": "integer" + }, + "InstanceCreateTime": { + "type": "timestamp" + }, + "PreferredBackupWindow": {}, + "BackupRetentionPeriod": { + "type": "integer" + }, + "DBSecurityGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "DBSecurityGroupName": {}, + "Status": {} + }, + "name": "DBSecurityGroup" + } + }, + "VpcSecurityGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "VpcSecurityGroupId": {}, + "Status": {} + }, + "name": "VpcSecurityGroupMembership" + } + }, + "DBParameterGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "DBParameterGroupName": {}, + "ParameterApplyStatus": {} + }, + "name": "DBParameterGroup" + } + }, + "AvailabilityZone": {}, + "DBSubnetGroup": { + "type": "structure", + "members": { + "DBSubnetGroupName": {}, + "DBSubnetGroupDescription": {}, + "VpcId": {}, + "SubnetGroupStatus": {}, + "Subnets": { + "type": "list", + "members": { + "type": "structure", + "members": { + "SubnetIdentifier": {}, + "SubnetAvailabilityZone": { + "type": "structure", + "members": { + "Name": {}, + "ProvisionedIopsCapable": { + "type": "boolean" + } + } + }, + "SubnetStatus": {} + }, + "name": "Subnet" + } + } + } + }, + "PreferredMaintenanceWindow": {}, + "PendingModifiedValues": { + "type": "structure", + "members": { + "DBInstanceClass": {}, + "AllocatedStorage": { + "type": "integer" + }, + "MasterUserPassword": {}, + "Port": { + "type": "integer" + }, + "BackupRetentionPeriod": { + "type": "integer" + }, + "MultiAZ": { + "type": "boolean" + }, + "EngineVersion": {}, + "Iops": { + "type": "integer" + }, + "DBInstanceIdentifier": {} + } + }, + "LatestRestorableTime": { + "type": "timestamp" + }, + "MultiAZ": { + "type": "boolean" + }, + "EngineVersion": {}, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "ReadReplicaSourceDBInstanceIdentifier": {}, + "ReadReplicaDBInstanceIdentifiers": { + "type": "list", + "members": { + "name": "ReadReplicaDBInstanceIdentifier" + } + }, + "LicenseModel": {}, + "Iops": { + "type": "integer" + }, + "OptionGroupMemberships": { + "type": "list", + "members": { + "type": "structure", + "members": { + "OptionGroupName": {}, + "Status": {} + }, + "name": "OptionGroupMembership" + } + }, + "CharacterSetName": {}, + "SecondaryAvailabilityZone": {}, + "PubliclyAccessible": { + "type": "boolean" + }, + "StatusInfos": { + "type": "list", + "members": { + "type": "structure", + "members": { + "StatusType": {}, + "Normal": { + "type": "boolean" + }, + "Status": {}, + "Message": {} + }, + "name": "DBInstanceStatusInfo" + } + } + } + } + } + } + }, + "revokeDBSecurityGroupIngress": { + "name": "RevokeDBSecurityGroupIngress", + "input": { + "type": "structure", + "members": { + "DBSecurityGroupName": { + "required": true + }, + "CIDRIP": {}, + "EC2SecurityGroupName": {}, + "EC2SecurityGroupId": {}, + "EC2SecurityGroupOwnerId": {} + } + }, + "output": { + "type": "structure", + "members": { + "DBSecurityGroup": { + "type": "structure", + "members": { + "OwnerId": {}, + "DBSecurityGroupName": {}, + "DBSecurityGroupDescription": {}, + "VpcId": {}, + "EC2SecurityGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Status": {}, + "EC2SecurityGroupName": {}, + "EC2SecurityGroupId": {}, + "EC2SecurityGroupOwnerId": {} + }, + "name": "EC2SecurityGroup" + } + }, + "IPRanges": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Status": {}, + "CIDRIP": {} + }, + "name": "IPRange" + } + } + } + } + } + } + } + }, + "pagination": { + "describeDBEngineVersions": { + "inputToken": "Marker", + "outputToken": "Marker", + "limitKey": "MaxRecords", + "resultKey": "DBEngineVersions" + }, + "describeDBInstances": { + "inputToken": "Marker", + "outputToken": "Marker", + "limitKey": "MaxRecords", + "resultKey": "DBInstances" + }, + "describeDBLogFiles": { + "inputToken": "Marker", + "outputToken": "Marker", + "limitKey": "MaxRecords", + "resultKey": "DescribeDBLogFiles" + }, + "describeDBParameterGroups": { + "inputToken": "Marker", + "outputToken": "Marker", + "limitKey": "MaxRecords", + "resultKey": "DBParameterGroups" + }, + "describeDBParameters": { + "inputToken": "Marker", + "outputToken": "Marker", + "limitKey": "MaxRecords", + "resultKey": "Parameters" + }, + "describeDBSecurityGroups": { + "inputToken": "Marker", + "outputToken": "Marker", + "limitKey": "MaxRecords", + "resultKey": "DBSecurityGroups" + }, + "describeDBSnapshots": { + "inputToken": "Marker", + "outputToken": "Marker", + "limitKey": "MaxRecords", + "resultKey": "DBSnapshots" + }, + "describeDBSubnetGroups": { + "inputToken": "Marker", + "outputToken": "Marker", + "limitKey": "MaxRecords", + "resultKey": "DBSubnetGroups" + }, + "describeEngineDefaultParameters": { + "inputToken": "Marker", + "outputToken": "EngineDefaults.Marker", + "limitKey": "MaxRecords" + }, + "describeEventSubscriptions": { + "inputToken": "Marker", + "outputToken": "Marker", + "limitKey": "MaxRecords", + "resultKey": "EventSubscriptionsList" + }, + "describeEvents": { + "inputToken": "Marker", + "outputToken": "Marker", + "limitKey": "MaxRecords", + "resultKey": "Events" + }, + "describeOptionGroupOptions": { + "inputToken": "Marker", + "outputToken": "Marker", + "limitKey": "MaxRecords", + "resultKey": "OptionGroupOptions" + }, + "describeOptionGroups": { + "inputToken": "Marker", + "outputToken": "Marker", + "limitKey": "MaxRecords", + "resultKey": "OptionGroupsList" + }, + "describeOrderableDBInstanceOptions": { + "inputToken": "Marker", + "outputToken": "Marker", + "limitKey": "MaxRecords", + "resultKey": "OrderableDBInstanceOptions" + }, + "describeReservedDBInstances": { + "inputToken": "Marker", + "outputToken": "Marker", + "limitKey": "MaxRecords", + "resultKey": "ReservedDBInstances" + }, + "describeReservedDBInstancesOfferings": { + "inputToken": "Marker", + "outputToken": "Marker", + "limitKey": "MaxRecords", + "resultKey": "ReservedDBInstancesOfferings" + }, + "downloadDBLogFilePortion": { + "inputToken": "Marker", + "outputToken": "Marker" + }, + "listTagsForResource": { + "resultKey": "TagList" + } + }, + "waiters": { + "__default__": { + "interval": 30, + "maxAttempts": 60 + }, + "__DBInstanceState": { + "operation": "DescribeDBInstances", + "acceptorPath": "DBInstances[].DBInstanceStatus", + "acceptorType": "output" + }, + "dBInstanceAvailable": { + "extends": "__DBInstanceState", + "successValue": "available", + "failureValue": [ + "deleted", + "deleting", + "failed", + "incompatible-restore", + "incompatible-parameters", + "incompatible-parameters", + "incompatible-restore" + ] + }, + "dBInstanceDeleted": { + "extends": "__DBInstanceState", + "successValue": "deleted", + "failureValue": [ + "creating", + "modifying", + "rebooting", + "resetting-master-credentials" + ] + } + } +} \ No newline at end of file diff --git a/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/Redshift-2012-12-01.json b/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/Redshift-2012-12-01.json new file mode 100644 index 00000000..7ad62509 --- /dev/null +++ b/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/Redshift-2012-12-01.json @@ -0,0 +1,3869 @@ +{ + "format": "query", + "apiVersion": "2012-12-01", + "endpointPrefix": "redshift", + "resultWrapped": true, + "serviceFullName": "Amazon Redshift", + "signatureVersion": "v4", + "timestampFormat": "iso8601", + "operations": { + "authorizeClusterSecurityGroupIngress": { + "name": "AuthorizeClusterSecurityGroupIngress", + "input": { + "type": "structure", + "members": { + "ClusterSecurityGroupName": { + "required": true + }, + "CIDRIP": {}, + "EC2SecurityGroupName": {}, + "EC2SecurityGroupOwnerId": {} + } + }, + "output": { + "type": "structure", + "members": { + "ClusterSecurityGroup": { + "type": "structure", + "members": { + "ClusterSecurityGroupName": {}, + "Description": {}, + "EC2SecurityGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Status": {}, + "EC2SecurityGroupName": {}, + "EC2SecurityGroupOwnerId": {} + }, + "name": "EC2SecurityGroup" + } + }, + "IPRanges": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Status": {}, + "CIDRIP": {} + }, + "name": "IPRange" + } + } + } + } + } + } + }, + "authorizeSnapshotAccess": { + "name": "AuthorizeSnapshotAccess", + "input": { + "type": "structure", + "members": { + "SnapshotIdentifier": { + "required": true + }, + "SnapshotClusterIdentifier": {}, + "AccountWithRestoreAccess": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "Snapshot": { + "type": "structure", + "members": { + "SnapshotIdentifier": {}, + "ClusterIdentifier": {}, + "SnapshotCreateTime": { + "type": "timestamp" + }, + "Status": {}, + "Port": { + "type": "integer" + }, + "AvailabilityZone": {}, + "ClusterCreateTime": { + "type": "timestamp" + }, + "MasterUsername": {}, + "ClusterVersion": {}, + "SnapshotType": {}, + "NodeType": {}, + "NumberOfNodes": { + "type": "integer" + }, + "DBName": {}, + "VpcId": {}, + "Encrypted": { + "type": "boolean" + }, + "EncryptedWithHSM": { + "type": "boolean" + }, + "AccountsWithRestoreAccess": { + "type": "list", + "members": { + "type": "structure", + "members": { + "AccountId": {} + }, + "name": "AccountWithRestoreAccess" + } + }, + "OwnerAccount": {}, + "TotalBackupSizeInMegaBytes": { + "type": "float" + }, + "ActualIncrementalBackupSizeInMegaBytes": { + "type": "float" + }, + "BackupProgressInMegaBytes": { + "type": "float" + }, + "CurrentBackupRateInMegaBytesPerSecond": { + "type": "float" + }, + "EstimatedSecondsToCompletion": { + "type": "integer" + }, + "ElapsedTimeInSeconds": { + "type": "integer" + }, + "SourceRegion": {} + } + } + } + } + }, + "copyClusterSnapshot": { + "name": "CopyClusterSnapshot", + "input": { + "type": "structure", + "members": { + "SourceSnapshotIdentifier": { + "required": true + }, + "SourceSnapshotClusterIdentifier": {}, + "TargetSnapshotIdentifier": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "Snapshot": { + "type": "structure", + "members": { + "SnapshotIdentifier": {}, + "ClusterIdentifier": {}, + "SnapshotCreateTime": { + "type": "timestamp" + }, + "Status": {}, + "Port": { + "type": "integer" + }, + "AvailabilityZone": {}, + "ClusterCreateTime": { + "type": "timestamp" + }, + "MasterUsername": {}, + "ClusterVersion": {}, + "SnapshotType": {}, + "NodeType": {}, + "NumberOfNodes": { + "type": "integer" + }, + "DBName": {}, + "VpcId": {}, + "Encrypted": { + "type": "boolean" + }, + "EncryptedWithHSM": { + "type": "boolean" + }, + "AccountsWithRestoreAccess": { + "type": "list", + "members": { + "type": "structure", + "members": { + "AccountId": {} + }, + "name": "AccountWithRestoreAccess" + } + }, + "OwnerAccount": {}, + "TotalBackupSizeInMegaBytes": { + "type": "float" + }, + "ActualIncrementalBackupSizeInMegaBytes": { + "type": "float" + }, + "BackupProgressInMegaBytes": { + "type": "float" + }, + "CurrentBackupRateInMegaBytesPerSecond": { + "type": "float" + }, + "EstimatedSecondsToCompletion": { + "type": "integer" + }, + "ElapsedTimeInSeconds": { + "type": "integer" + }, + "SourceRegion": {} + } + } + } + } + }, + "createCluster": { + "name": "CreateCluster", + "input": { + "type": "structure", + "members": { + "DBName": {}, + "ClusterIdentifier": { + "required": true + }, + "ClusterType": {}, + "NodeType": { + "required": true + }, + "MasterUsername": { + "required": true + }, + "MasterUserPassword": { + "required": true + }, + "ClusterSecurityGroups": { + "type": "list", + "members": { + "name": "ClusterSecurityGroupName" + } + }, + "VpcSecurityGroupIds": { + "type": "list", + "members": { + "name": "VpcSecurityGroupId" + } + }, + "ClusterSubnetGroupName": {}, + "AvailabilityZone": {}, + "PreferredMaintenanceWindow": {}, + "ClusterParameterGroupName": {}, + "AutomatedSnapshotRetentionPeriod": { + "type": "integer" + }, + "Port": { + "type": "integer" + }, + "ClusterVersion": {}, + "AllowVersionUpgrade": { + "type": "boolean" + }, + "NumberOfNodes": { + "type": "integer" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "Encrypted": { + "type": "boolean" + }, + "HsmClientCertificateIdentifier": {}, + "HsmConfigurationIdentifier": {}, + "ElasticIp": {} + } + }, + "output": { + "type": "structure", + "members": { + "Cluster": { + "type": "structure", + "members": { + "ClusterIdentifier": {}, + "NodeType": {}, + "ClusterStatus": {}, + "ModifyStatus": {}, + "MasterUsername": {}, + "DBName": {}, + "Endpoint": { + "type": "structure", + "members": { + "Address": {}, + "Port": { + "type": "integer" + } + } + }, + "ClusterCreateTime": { + "type": "timestamp" + }, + "AutomatedSnapshotRetentionPeriod": { + "type": "integer" + }, + "ClusterSecurityGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ClusterSecurityGroupName": {}, + "Status": {} + }, + "name": "ClusterSecurityGroup" + } + }, + "VpcSecurityGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "VpcSecurityGroupId": {}, + "Status": {} + }, + "name": "VpcSecurityGroup" + } + }, + "ClusterParameterGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ParameterGroupName": {}, + "ParameterApplyStatus": {} + }, + "name": "ClusterParameterGroup" + } + }, + "ClusterSubnetGroupName": {}, + "VpcId": {}, + "AvailabilityZone": {}, + "PreferredMaintenanceWindow": {}, + "PendingModifiedValues": { + "type": "structure", + "members": { + "MasterUserPassword": {}, + "NodeType": {}, + "NumberOfNodes": { + "type": "integer" + }, + "ClusterType": {}, + "ClusterVersion": {}, + "AutomatedSnapshotRetentionPeriod": { + "type": "integer" + } + } + }, + "ClusterVersion": {}, + "AllowVersionUpgrade": { + "type": "boolean" + }, + "NumberOfNodes": { + "type": "integer" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "Encrypted": { + "type": "boolean" + }, + "RestoreStatus": { + "type": "structure", + "members": { + "Status": {}, + "CurrentRestoreRateInMegaBytesPerSecond": { + "type": "float" + }, + "SnapshotSizeInMegaBytes": { + "type": "integer" + }, + "ProgressInMegaBytes": { + "type": "integer" + }, + "ElapsedTimeInSeconds": { + "type": "integer" + }, + "EstimatedTimeToCompletionInSeconds": { + "type": "integer" + } + } + }, + "HsmStatus": { + "type": "structure", + "members": { + "HsmClientCertificateIdentifier": {}, + "HsmConfigurationIdentifier": {}, + "Status": {} + } + }, + "ClusterSnapshotCopyStatus": { + "type": "structure", + "members": { + "DestinationRegion": {}, + "RetentionPeriod": { + "type": "integer" + } + } + }, + "ClusterPublicKey": {}, + "ClusterNodes": { + "type": "list", + "members": { + "type": "structure", + "members": { + "NodeRole": {}, + "PrivateIPAddress": {}, + "PublicIPAddress": {} + } + } + }, + "ElasticIpStatus": { + "type": "structure", + "members": { + "ElasticIp": {}, + "Status": {} + } + }, + "ClusterRevisionNumber": {} + } + } + } + } + }, + "createClusterParameterGroup": { + "name": "CreateClusterParameterGroup", + "input": { + "type": "structure", + "members": { + "ParameterGroupName": { + "required": true + }, + "ParameterGroupFamily": { + "required": true + }, + "Description": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "ClusterParameterGroup": { + "type": "structure", + "members": { + "ParameterGroupName": {}, + "ParameterGroupFamily": {}, + "Description": {} + } + } + } + } + }, + "createClusterSecurityGroup": { + "name": "CreateClusterSecurityGroup", + "input": { + "type": "structure", + "members": { + "ClusterSecurityGroupName": { + "required": true + }, + "Description": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "ClusterSecurityGroup": { + "type": "structure", + "members": { + "ClusterSecurityGroupName": {}, + "Description": {}, + "EC2SecurityGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Status": {}, + "EC2SecurityGroupName": {}, + "EC2SecurityGroupOwnerId": {} + }, + "name": "EC2SecurityGroup" + } + }, + "IPRanges": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Status": {}, + "CIDRIP": {} + }, + "name": "IPRange" + } + } + } + } + } + } + }, + "createClusterSnapshot": { + "name": "CreateClusterSnapshot", + "input": { + "type": "structure", + "members": { + "SnapshotIdentifier": { + "required": true + }, + "ClusterIdentifier": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "Snapshot": { + "type": "structure", + "members": { + "SnapshotIdentifier": {}, + "ClusterIdentifier": {}, + "SnapshotCreateTime": { + "type": "timestamp" + }, + "Status": {}, + "Port": { + "type": "integer" + }, + "AvailabilityZone": {}, + "ClusterCreateTime": { + "type": "timestamp" + }, + "MasterUsername": {}, + "ClusterVersion": {}, + "SnapshotType": {}, + "NodeType": {}, + "NumberOfNodes": { + "type": "integer" + }, + "DBName": {}, + "VpcId": {}, + "Encrypted": { + "type": "boolean" + }, + "EncryptedWithHSM": { + "type": "boolean" + }, + "AccountsWithRestoreAccess": { + "type": "list", + "members": { + "type": "structure", + "members": { + "AccountId": {} + }, + "name": "AccountWithRestoreAccess" + } + }, + "OwnerAccount": {}, + "TotalBackupSizeInMegaBytes": { + "type": "float" + }, + "ActualIncrementalBackupSizeInMegaBytes": { + "type": "float" + }, + "BackupProgressInMegaBytes": { + "type": "float" + }, + "CurrentBackupRateInMegaBytesPerSecond": { + "type": "float" + }, + "EstimatedSecondsToCompletion": { + "type": "integer" + }, + "ElapsedTimeInSeconds": { + "type": "integer" + }, + "SourceRegion": {} + } + } + } + } + }, + "createClusterSubnetGroup": { + "name": "CreateClusterSubnetGroup", + "input": { + "type": "structure", + "members": { + "ClusterSubnetGroupName": { + "required": true + }, + "Description": { + "required": true + }, + "SubnetIds": { + "type": "list", + "members": { + "name": "SubnetIdentifier" + }, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "ClusterSubnetGroup": { + "type": "structure", + "members": { + "ClusterSubnetGroupName": {}, + "Description": {}, + "VpcId": {}, + "SubnetGroupStatus": {}, + "Subnets": { + "type": "list", + "members": { + "type": "structure", + "members": { + "SubnetIdentifier": {}, + "SubnetAvailabilityZone": { + "type": "structure", + "members": { + "Name": {} + } + }, + "SubnetStatus": {} + }, + "name": "Subnet" + } + } + } + } + } + } + }, + "createEventSubscription": { + "name": "CreateEventSubscription", + "input": { + "type": "structure", + "members": { + "SubscriptionName": { + "required": true + }, + "SnsTopicArn": { + "required": true + }, + "SourceType": {}, + "SourceIds": { + "type": "list", + "members": { + "name": "SourceId" + } + }, + "EventCategories": { + "type": "list", + "members": { + "name": "EventCategory" + } + }, + "Severity": {}, + "Enabled": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "EventSubscription": { + "type": "structure", + "members": { + "CustomerAwsId": {}, + "CustSubscriptionId": {}, + "SnsTopicArn": {}, + "Status": {}, + "SubscriptionCreationTime": { + "type": "timestamp" + }, + "SourceType": {}, + "SourceIdsList": { + "type": "list", + "members": { + "name": "SourceId" + } + }, + "EventCategoriesList": { + "type": "list", + "members": { + "name": "EventCategory" + } + }, + "Severity": {}, + "Enabled": { + "type": "boolean" + } + } + } + } + } + }, + "createHsmClientCertificate": { + "name": "CreateHsmClientCertificate", + "input": { + "type": "structure", + "members": { + "HsmClientCertificateIdentifier": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "HsmClientCertificate": { + "type": "structure", + "members": { + "HsmClientCertificateIdentifier": {}, + "HsmClientCertificatePublicKey": {} + } + } + } + } + }, + "createHsmConfiguration": { + "name": "CreateHsmConfiguration", + "input": { + "type": "structure", + "members": { + "HsmConfigurationIdentifier": { + "required": true + }, + "Description": { + "required": true + }, + "HsmIpAddress": { + "required": true + }, + "HsmPartitionName": { + "required": true + }, + "HsmPartitionPassword": { + "required": true + }, + "HsmServerPublicCertificate": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "HsmConfiguration": { + "type": "structure", + "members": { + "HsmConfigurationIdentifier": {}, + "Description": {}, + "HsmIpAddress": {}, + "HsmPartitionName": {} + } + } + } + } + }, + "deleteCluster": { + "name": "DeleteCluster", + "input": { + "type": "structure", + "members": { + "ClusterIdentifier": { + "required": true + }, + "SkipFinalClusterSnapshot": { + "type": "boolean" + }, + "FinalClusterSnapshotIdentifier": {} + } + }, + "output": { + "type": "structure", + "members": { + "Cluster": { + "type": "structure", + "members": { + "ClusterIdentifier": {}, + "NodeType": {}, + "ClusterStatus": {}, + "ModifyStatus": {}, + "MasterUsername": {}, + "DBName": {}, + "Endpoint": { + "type": "structure", + "members": { + "Address": {}, + "Port": { + "type": "integer" + } + } + }, + "ClusterCreateTime": { + "type": "timestamp" + }, + "AutomatedSnapshotRetentionPeriod": { + "type": "integer" + }, + "ClusterSecurityGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ClusterSecurityGroupName": {}, + "Status": {} + }, + "name": "ClusterSecurityGroup" + } + }, + "VpcSecurityGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "VpcSecurityGroupId": {}, + "Status": {} + }, + "name": "VpcSecurityGroup" + } + }, + "ClusterParameterGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ParameterGroupName": {}, + "ParameterApplyStatus": {} + }, + "name": "ClusterParameterGroup" + } + }, + "ClusterSubnetGroupName": {}, + "VpcId": {}, + "AvailabilityZone": {}, + "PreferredMaintenanceWindow": {}, + "PendingModifiedValues": { + "type": "structure", + "members": { + "MasterUserPassword": {}, + "NodeType": {}, + "NumberOfNodes": { + "type": "integer" + }, + "ClusterType": {}, + "ClusterVersion": {}, + "AutomatedSnapshotRetentionPeriod": { + "type": "integer" + } + } + }, + "ClusterVersion": {}, + "AllowVersionUpgrade": { + "type": "boolean" + }, + "NumberOfNodes": { + "type": "integer" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "Encrypted": { + "type": "boolean" + }, + "RestoreStatus": { + "type": "structure", + "members": { + "Status": {}, + "CurrentRestoreRateInMegaBytesPerSecond": { + "type": "float" + }, + "SnapshotSizeInMegaBytes": { + "type": "integer" + }, + "ProgressInMegaBytes": { + "type": "integer" + }, + "ElapsedTimeInSeconds": { + "type": "integer" + }, + "EstimatedTimeToCompletionInSeconds": { + "type": "integer" + } + } + }, + "HsmStatus": { + "type": "structure", + "members": { + "HsmClientCertificateIdentifier": {}, + "HsmConfigurationIdentifier": {}, + "Status": {} + } + }, + "ClusterSnapshotCopyStatus": { + "type": "structure", + "members": { + "DestinationRegion": {}, + "RetentionPeriod": { + "type": "integer" + } + } + }, + "ClusterPublicKey": {}, + "ClusterNodes": { + "type": "list", + "members": { + "type": "structure", + "members": { + "NodeRole": {}, + "PrivateIPAddress": {}, + "PublicIPAddress": {} + } + } + }, + "ElasticIpStatus": { + "type": "structure", + "members": { + "ElasticIp": {}, + "Status": {} + } + }, + "ClusterRevisionNumber": {} + } + } + } + } + }, + "deleteClusterParameterGroup": { + "name": "DeleteClusterParameterGroup", + "input": { + "type": "structure", + "members": { + "ParameterGroupName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteClusterSecurityGroup": { + "name": "DeleteClusterSecurityGroup", + "input": { + "type": "structure", + "members": { + "ClusterSecurityGroupName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteClusterSnapshot": { + "name": "DeleteClusterSnapshot", + "input": { + "type": "structure", + "members": { + "SnapshotIdentifier": { + "required": true + }, + "SnapshotClusterIdentifier": {} + } + }, + "output": { + "type": "structure", + "members": { + "Snapshot": { + "type": "structure", + "members": { + "SnapshotIdentifier": {}, + "ClusterIdentifier": {}, + "SnapshotCreateTime": { + "type": "timestamp" + }, + "Status": {}, + "Port": { + "type": "integer" + }, + "AvailabilityZone": {}, + "ClusterCreateTime": { + "type": "timestamp" + }, + "MasterUsername": {}, + "ClusterVersion": {}, + "SnapshotType": {}, + "NodeType": {}, + "NumberOfNodes": { + "type": "integer" + }, + "DBName": {}, + "VpcId": {}, + "Encrypted": { + "type": "boolean" + }, + "EncryptedWithHSM": { + "type": "boolean" + }, + "AccountsWithRestoreAccess": { + "type": "list", + "members": { + "type": "structure", + "members": { + "AccountId": {} + }, + "name": "AccountWithRestoreAccess" + } + }, + "OwnerAccount": {}, + "TotalBackupSizeInMegaBytes": { + "type": "float" + }, + "ActualIncrementalBackupSizeInMegaBytes": { + "type": "float" + }, + "BackupProgressInMegaBytes": { + "type": "float" + }, + "CurrentBackupRateInMegaBytesPerSecond": { + "type": "float" + }, + "EstimatedSecondsToCompletion": { + "type": "integer" + }, + "ElapsedTimeInSeconds": { + "type": "integer" + }, + "SourceRegion": {} + } + } + } + } + }, + "deleteClusterSubnetGroup": { + "name": "DeleteClusterSubnetGroup", + "input": { + "type": "structure", + "members": { + "ClusterSubnetGroupName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteEventSubscription": { + "name": "DeleteEventSubscription", + "input": { + "type": "structure", + "members": { + "SubscriptionName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteHsmClientCertificate": { + "name": "DeleteHsmClientCertificate", + "input": { + "type": "structure", + "members": { + "HsmClientCertificateIdentifier": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteHsmConfiguration": { + "name": "DeleteHsmConfiguration", + "input": { + "type": "structure", + "members": { + "HsmConfigurationIdentifier": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "describeClusterParameterGroups": { + "name": "DescribeClusterParameterGroups", + "input": { + "type": "structure", + "members": { + "ParameterGroupName": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "type": "structure", + "members": { + "Marker": {}, + "ParameterGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ParameterGroupName": {}, + "ParameterGroupFamily": {}, + "Description": {} + }, + "name": "ClusterParameterGroup" + } + } + } + } + }, + "describeClusterParameters": { + "name": "DescribeClusterParameters", + "input": { + "type": "structure", + "members": { + "ParameterGroupName": { + "required": true + }, + "Source": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "type": "structure", + "members": { + "Parameters": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ParameterName": {}, + "ParameterValue": {}, + "Description": {}, + "Source": {}, + "DataType": {}, + "AllowedValues": {}, + "IsModifiable": { + "type": "boolean" + }, + "MinimumEngineVersion": {} + }, + "name": "Parameter" + } + }, + "Marker": {} + } + } + }, + "describeClusterSecurityGroups": { + "name": "DescribeClusterSecurityGroups", + "input": { + "type": "structure", + "members": { + "ClusterSecurityGroupName": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "type": "structure", + "members": { + "Marker": {}, + "ClusterSecurityGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ClusterSecurityGroupName": {}, + "Description": {}, + "EC2SecurityGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Status": {}, + "EC2SecurityGroupName": {}, + "EC2SecurityGroupOwnerId": {} + }, + "name": "EC2SecurityGroup" + } + }, + "IPRanges": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Status": {}, + "CIDRIP": {} + }, + "name": "IPRange" + } + } + }, + "name": "ClusterSecurityGroup" + } + } + } + } + }, + "describeClusterSnapshots": { + "name": "DescribeClusterSnapshots", + "input": { + "type": "structure", + "members": { + "ClusterIdentifier": {}, + "SnapshotIdentifier": {}, + "SnapshotType": {}, + "StartTime": { + "type": "timestamp" + }, + "EndTime": { + "type": "timestamp" + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {}, + "OwnerAccount": {} + } + }, + "output": { + "type": "structure", + "members": { + "Marker": {}, + "Snapshots": { + "type": "list", + "members": { + "type": "structure", + "members": { + "SnapshotIdentifier": {}, + "ClusterIdentifier": {}, + "SnapshotCreateTime": { + "type": "timestamp" + }, + "Status": {}, + "Port": { + "type": "integer" + }, + "AvailabilityZone": {}, + "ClusterCreateTime": { + "type": "timestamp" + }, + "MasterUsername": {}, + "ClusterVersion": {}, + "SnapshotType": {}, + "NodeType": {}, + "NumberOfNodes": { + "type": "integer" + }, + "DBName": {}, + "VpcId": {}, + "Encrypted": { + "type": "boolean" + }, + "EncryptedWithHSM": { + "type": "boolean" + }, + "AccountsWithRestoreAccess": { + "type": "list", + "members": { + "type": "structure", + "members": { + "AccountId": {} + }, + "name": "AccountWithRestoreAccess" + } + }, + "OwnerAccount": {}, + "TotalBackupSizeInMegaBytes": { + "type": "float" + }, + "ActualIncrementalBackupSizeInMegaBytes": { + "type": "float" + }, + "BackupProgressInMegaBytes": { + "type": "float" + }, + "CurrentBackupRateInMegaBytesPerSecond": { + "type": "float" + }, + "EstimatedSecondsToCompletion": { + "type": "integer" + }, + "ElapsedTimeInSeconds": { + "type": "integer" + }, + "SourceRegion": {} + }, + "name": "Snapshot" + } + } + } + } + }, + "describeClusterSubnetGroups": { + "name": "DescribeClusterSubnetGroups", + "input": { + "type": "structure", + "members": { + "ClusterSubnetGroupName": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "type": "structure", + "members": { + "Marker": {}, + "ClusterSubnetGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ClusterSubnetGroupName": {}, + "Description": {}, + "VpcId": {}, + "SubnetGroupStatus": {}, + "Subnets": { + "type": "list", + "members": { + "type": "structure", + "members": { + "SubnetIdentifier": {}, + "SubnetAvailabilityZone": { + "type": "structure", + "members": { + "Name": {} + } + }, + "SubnetStatus": {} + }, + "name": "Subnet" + } + } + }, + "name": "ClusterSubnetGroup" + } + } + } + } + }, + "describeClusterVersions": { + "name": "DescribeClusterVersions", + "input": { + "type": "structure", + "members": { + "ClusterVersion": {}, + "ClusterParameterGroupFamily": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "type": "structure", + "members": { + "Marker": {}, + "ClusterVersions": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ClusterVersion": {}, + "ClusterParameterGroupFamily": {}, + "Description": {} + }, + "name": "ClusterVersion" + } + } + } + } + }, + "describeClusters": { + "name": "DescribeClusters", + "input": { + "type": "structure", + "members": { + "ClusterIdentifier": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "type": "structure", + "members": { + "Marker": {}, + "Clusters": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ClusterIdentifier": {}, + "NodeType": {}, + "ClusterStatus": {}, + "ModifyStatus": {}, + "MasterUsername": {}, + "DBName": {}, + "Endpoint": { + "type": "structure", + "members": { + "Address": {}, + "Port": { + "type": "integer" + } + } + }, + "ClusterCreateTime": { + "type": "timestamp" + }, + "AutomatedSnapshotRetentionPeriod": { + "type": "integer" + }, + "ClusterSecurityGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ClusterSecurityGroupName": {}, + "Status": {} + }, + "name": "ClusterSecurityGroup" + } + }, + "VpcSecurityGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "VpcSecurityGroupId": {}, + "Status": {} + }, + "name": "VpcSecurityGroup" + } + }, + "ClusterParameterGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ParameterGroupName": {}, + "ParameterApplyStatus": {} + }, + "name": "ClusterParameterGroup" + } + }, + "ClusterSubnetGroupName": {}, + "VpcId": {}, + "AvailabilityZone": {}, + "PreferredMaintenanceWindow": {}, + "PendingModifiedValues": { + "type": "structure", + "members": { + "MasterUserPassword": {}, + "NodeType": {}, + "NumberOfNodes": { + "type": "integer" + }, + "ClusterType": {}, + "ClusterVersion": {}, + "AutomatedSnapshotRetentionPeriod": { + "type": "integer" + } + } + }, + "ClusterVersion": {}, + "AllowVersionUpgrade": { + "type": "boolean" + }, + "NumberOfNodes": { + "type": "integer" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "Encrypted": { + "type": "boolean" + }, + "RestoreStatus": { + "type": "structure", + "members": { + "Status": {}, + "CurrentRestoreRateInMegaBytesPerSecond": { + "type": "float" + }, + "SnapshotSizeInMegaBytes": { + "type": "integer" + }, + "ProgressInMegaBytes": { + "type": "integer" + }, + "ElapsedTimeInSeconds": { + "type": "integer" + }, + "EstimatedTimeToCompletionInSeconds": { + "type": "integer" + } + } + }, + "HsmStatus": { + "type": "structure", + "members": { + "HsmClientCertificateIdentifier": {}, + "HsmConfigurationIdentifier": {}, + "Status": {} + } + }, + "ClusterSnapshotCopyStatus": { + "type": "structure", + "members": { + "DestinationRegion": {}, + "RetentionPeriod": { + "type": "integer" + } + } + }, + "ClusterPublicKey": {}, + "ClusterNodes": { + "type": "list", + "members": { + "type": "structure", + "members": { + "NodeRole": {}, + "PrivateIPAddress": {}, + "PublicIPAddress": {} + } + } + }, + "ElasticIpStatus": { + "type": "structure", + "members": { + "ElasticIp": {}, + "Status": {} + } + }, + "ClusterRevisionNumber": {} + }, + "name": "Cluster" + } + } + } + } + }, + "describeDefaultClusterParameters": { + "name": "DescribeDefaultClusterParameters", + "input": { + "type": "structure", + "members": { + "ParameterGroupFamily": { + "required": true + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "type": "structure", + "members": { + "DefaultClusterParameters": { + "type": "structure", + "members": { + "ParameterGroupFamily": {}, + "Marker": {}, + "Parameters": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ParameterName": {}, + "ParameterValue": {}, + "Description": {}, + "Source": {}, + "DataType": {}, + "AllowedValues": {}, + "IsModifiable": { + "type": "boolean" + }, + "MinimumEngineVersion": {} + }, + "name": "Parameter" + } + } + } + } + } + } + }, + "describeEventCategories": { + "name": "DescribeEventCategories", + "input": { + "type": "structure", + "members": { + "SourceType": {} + } + }, + "output": { + "type": "structure", + "members": { + "EventCategoriesMapList": { + "type": "list", + "members": { + "type": "structure", + "members": { + "SourceType": {}, + "Events": { + "type": "list", + "members": { + "type": "structure", + "members": { + "EventId": {}, + "EventCategories": { + "type": "list", + "members": { + "name": "EventCategory" + } + }, + "EventDescription": {}, + "Severity": {} + }, + "name": "EventInfoMap" + } + } + }, + "name": "EventCategoriesMap" + } + } + } + } + }, + "describeEventSubscriptions": { + "name": "DescribeEventSubscriptions", + "input": { + "type": "structure", + "members": { + "SubscriptionName": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "type": "structure", + "members": { + "Marker": {}, + "EventSubscriptionsList": { + "type": "list", + "members": { + "type": "structure", + "members": { + "CustomerAwsId": {}, + "CustSubscriptionId": {}, + "SnsTopicArn": {}, + "Status": {}, + "SubscriptionCreationTime": { + "type": "timestamp" + }, + "SourceType": {}, + "SourceIdsList": { + "type": "list", + "members": { + "name": "SourceId" + } + }, + "EventCategoriesList": { + "type": "list", + "members": { + "name": "EventCategory" + } + }, + "Severity": {}, + "Enabled": { + "type": "boolean" + } + }, + "name": "EventSubscription" + } + } + } + } + }, + "describeEvents": { + "name": "DescribeEvents", + "input": { + "type": "structure", + "members": { + "SourceIdentifier": {}, + "SourceType": {}, + "StartTime": { + "type": "timestamp" + }, + "EndTime": { + "type": "timestamp" + }, + "Duration": { + "type": "integer" + }, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "type": "structure", + "members": { + "Marker": {}, + "Events": { + "type": "list", + "members": { + "type": "structure", + "members": { + "SourceIdentifier": {}, + "SourceType": {}, + "Message": {}, + "EventCategories": { + "type": "list", + "members": { + "name": "EventCategory" + } + }, + "Severity": {}, + "Date": { + "type": "timestamp" + }, + "EventId": {} + }, + "name": "Event" + } + } + } + } + }, + "describeHsmClientCertificates": { + "name": "DescribeHsmClientCertificates", + "input": { + "type": "structure", + "members": { + "HsmClientCertificateIdentifier": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "type": "structure", + "members": { + "Marker": {}, + "HsmClientCertificates": { + "type": "list", + "members": { + "type": "structure", + "members": { + "HsmClientCertificateIdentifier": {}, + "HsmClientCertificatePublicKey": {} + }, + "name": "HsmClientCertificate" + } + } + } + } + }, + "describeHsmConfigurations": { + "name": "DescribeHsmConfigurations", + "input": { + "type": "structure", + "members": { + "HsmConfigurationIdentifier": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "type": "structure", + "members": { + "Marker": {}, + "HsmConfigurations": { + "type": "list", + "members": { + "type": "structure", + "members": { + "HsmConfigurationIdentifier": {}, + "Description": {}, + "HsmIpAddress": {}, + "HsmPartitionName": {} + }, + "name": "HsmConfiguration" + } + } + } + } + }, + "describeLoggingStatus": { + "name": "DescribeLoggingStatus", + "input": { + "type": "structure", + "members": { + "ClusterIdentifier": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "LoggingEnabled": { + "type": "boolean" + }, + "BucketName": {}, + "S3KeyPrefix": {}, + "LastSuccessfulDeliveryTime": { + "type": "timestamp" + }, + "LastFailureTime": { + "type": "timestamp" + }, + "LastFailureMessage": {} + } + } + }, + "describeOrderableClusterOptions": { + "name": "DescribeOrderableClusterOptions", + "input": { + "type": "structure", + "members": { + "ClusterVersion": {}, + "NodeType": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "type": "structure", + "members": { + "OrderableClusterOptions": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ClusterVersion": {}, + "ClusterType": {}, + "NodeType": {}, + "AvailabilityZones": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": {} + }, + "name": "AvailabilityZone" + } + } + }, + "name": "OrderableClusterOption" + } + }, + "Marker": {} + } + } + }, + "describeReservedNodeOfferings": { + "name": "DescribeReservedNodeOfferings", + "input": { + "type": "structure", + "members": { + "ReservedNodeOfferingId": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "type": "structure", + "members": { + "Marker": {}, + "ReservedNodeOfferings": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ReservedNodeOfferingId": {}, + "NodeType": {}, + "Duration": { + "type": "integer" + }, + "FixedPrice": { + "type": "float" + }, + "UsagePrice": { + "type": "float" + }, + "CurrencyCode": {}, + "OfferingType": {}, + "RecurringCharges": { + "type": "list", + "members": { + "type": "structure", + "members": { + "RecurringChargeAmount": { + "type": "float" + }, + "RecurringChargeFrequency": {} + }, + "name": "RecurringCharge" + } + } + }, + "name": "ReservedNodeOffering" + } + } + } + } + }, + "describeReservedNodes": { + "name": "DescribeReservedNodes", + "input": { + "type": "structure", + "members": { + "ReservedNodeId": {}, + "MaxRecords": { + "type": "integer" + }, + "Marker": {} + } + }, + "output": { + "type": "structure", + "members": { + "Marker": {}, + "ReservedNodes": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ReservedNodeId": {}, + "ReservedNodeOfferingId": {}, + "NodeType": {}, + "StartTime": { + "type": "timestamp" + }, + "Duration": { + "type": "integer" + }, + "FixedPrice": { + "type": "float" + }, + "UsagePrice": { + "type": "float" + }, + "CurrencyCode": {}, + "NodeCount": { + "type": "integer" + }, + "State": {}, + "OfferingType": {}, + "RecurringCharges": { + "type": "list", + "members": { + "type": "structure", + "members": { + "RecurringChargeAmount": { + "type": "float" + }, + "RecurringChargeFrequency": {} + }, + "name": "RecurringCharge" + } + } + }, + "name": "ReservedNode" + } + } + } + } + }, + "describeResize": { + "name": "DescribeResize", + "input": { + "type": "structure", + "members": { + "ClusterIdentifier": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "TargetNodeType": {}, + "TargetNumberOfNodes": { + "type": "integer" + }, + "TargetClusterType": {}, + "Status": {}, + "ImportTablesCompleted": { + "type": "list", + "members": {} + }, + "ImportTablesInProgress": { + "type": "list", + "members": {} + }, + "ImportTablesNotStarted": { + "type": "list", + "members": {} + }, + "AvgResizeRateInMegaBytesPerSecond": { + "type": "float" + }, + "TotalResizeDataInMegaBytes": { + "type": "integer" + }, + "ProgressInMegaBytes": { + "type": "integer" + }, + "ElapsedTimeInSeconds": { + "type": "integer" + }, + "EstimatedTimeToCompletionInSeconds": { + "type": "integer" + } + } + } + }, + "disableLogging": { + "name": "DisableLogging", + "input": { + "type": "structure", + "members": { + "ClusterIdentifier": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "LoggingEnabled": { + "type": "boolean" + }, + "BucketName": {}, + "S3KeyPrefix": {}, + "LastSuccessfulDeliveryTime": { + "type": "timestamp" + }, + "LastFailureTime": { + "type": "timestamp" + }, + "LastFailureMessage": {} + } + } + }, + "disableSnapshotCopy": { + "name": "DisableSnapshotCopy", + "input": { + "type": "structure", + "members": { + "ClusterIdentifier": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "Cluster": { + "type": "structure", + "members": { + "ClusterIdentifier": {}, + "NodeType": {}, + "ClusterStatus": {}, + "ModifyStatus": {}, + "MasterUsername": {}, + "DBName": {}, + "Endpoint": { + "type": "structure", + "members": { + "Address": {}, + "Port": { + "type": "integer" + } + } + }, + "ClusterCreateTime": { + "type": "timestamp" + }, + "AutomatedSnapshotRetentionPeriod": { + "type": "integer" + }, + "ClusterSecurityGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ClusterSecurityGroupName": {}, + "Status": {} + }, + "name": "ClusterSecurityGroup" + } + }, + "VpcSecurityGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "VpcSecurityGroupId": {}, + "Status": {} + }, + "name": "VpcSecurityGroup" + } + }, + "ClusterParameterGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ParameterGroupName": {}, + "ParameterApplyStatus": {} + }, + "name": "ClusterParameterGroup" + } + }, + "ClusterSubnetGroupName": {}, + "VpcId": {}, + "AvailabilityZone": {}, + "PreferredMaintenanceWindow": {}, + "PendingModifiedValues": { + "type": "structure", + "members": { + "MasterUserPassword": {}, + "NodeType": {}, + "NumberOfNodes": { + "type": "integer" + }, + "ClusterType": {}, + "ClusterVersion": {}, + "AutomatedSnapshotRetentionPeriod": { + "type": "integer" + } + } + }, + "ClusterVersion": {}, + "AllowVersionUpgrade": { + "type": "boolean" + }, + "NumberOfNodes": { + "type": "integer" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "Encrypted": { + "type": "boolean" + }, + "RestoreStatus": { + "type": "structure", + "members": { + "Status": {}, + "CurrentRestoreRateInMegaBytesPerSecond": { + "type": "float" + }, + "SnapshotSizeInMegaBytes": { + "type": "integer" + }, + "ProgressInMegaBytes": { + "type": "integer" + }, + "ElapsedTimeInSeconds": { + "type": "integer" + }, + "EstimatedTimeToCompletionInSeconds": { + "type": "integer" + } + } + }, + "HsmStatus": { + "type": "structure", + "members": { + "HsmClientCertificateIdentifier": {}, + "HsmConfigurationIdentifier": {}, + "Status": {} + } + }, + "ClusterSnapshotCopyStatus": { + "type": "structure", + "members": { + "DestinationRegion": {}, + "RetentionPeriod": { + "type": "integer" + } + } + }, + "ClusterPublicKey": {}, + "ClusterNodes": { + "type": "list", + "members": { + "type": "structure", + "members": { + "NodeRole": {}, + "PrivateIPAddress": {}, + "PublicIPAddress": {} + } + } + }, + "ElasticIpStatus": { + "type": "structure", + "members": { + "ElasticIp": {}, + "Status": {} + } + }, + "ClusterRevisionNumber": {} + } + } + } + } + }, + "enableLogging": { + "name": "EnableLogging", + "input": { + "type": "structure", + "members": { + "ClusterIdentifier": { + "required": true + }, + "BucketName": { + "required": true + }, + "S3KeyPrefix": {} + } + }, + "output": { + "type": "structure", + "members": { + "LoggingEnabled": { + "type": "boolean" + }, + "BucketName": {}, + "S3KeyPrefix": {}, + "LastSuccessfulDeliveryTime": { + "type": "timestamp" + }, + "LastFailureTime": { + "type": "timestamp" + }, + "LastFailureMessage": {} + } + } + }, + "enableSnapshotCopy": { + "name": "EnableSnapshotCopy", + "input": { + "type": "structure", + "members": { + "ClusterIdentifier": { + "required": true + }, + "DestinationRegion": { + "required": true + }, + "RetentionPeriod": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "Cluster": { + "type": "structure", + "members": { + "ClusterIdentifier": {}, + "NodeType": {}, + "ClusterStatus": {}, + "ModifyStatus": {}, + "MasterUsername": {}, + "DBName": {}, + "Endpoint": { + "type": "structure", + "members": { + "Address": {}, + "Port": { + "type": "integer" + } + } + }, + "ClusterCreateTime": { + "type": "timestamp" + }, + "AutomatedSnapshotRetentionPeriod": { + "type": "integer" + }, + "ClusterSecurityGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ClusterSecurityGroupName": {}, + "Status": {} + }, + "name": "ClusterSecurityGroup" + } + }, + "VpcSecurityGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "VpcSecurityGroupId": {}, + "Status": {} + }, + "name": "VpcSecurityGroup" + } + }, + "ClusterParameterGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ParameterGroupName": {}, + "ParameterApplyStatus": {} + }, + "name": "ClusterParameterGroup" + } + }, + "ClusterSubnetGroupName": {}, + "VpcId": {}, + "AvailabilityZone": {}, + "PreferredMaintenanceWindow": {}, + "PendingModifiedValues": { + "type": "structure", + "members": { + "MasterUserPassword": {}, + "NodeType": {}, + "NumberOfNodes": { + "type": "integer" + }, + "ClusterType": {}, + "ClusterVersion": {}, + "AutomatedSnapshotRetentionPeriod": { + "type": "integer" + } + } + }, + "ClusterVersion": {}, + "AllowVersionUpgrade": { + "type": "boolean" + }, + "NumberOfNodes": { + "type": "integer" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "Encrypted": { + "type": "boolean" + }, + "RestoreStatus": { + "type": "structure", + "members": { + "Status": {}, + "CurrentRestoreRateInMegaBytesPerSecond": { + "type": "float" + }, + "SnapshotSizeInMegaBytes": { + "type": "integer" + }, + "ProgressInMegaBytes": { + "type": "integer" + }, + "ElapsedTimeInSeconds": { + "type": "integer" + }, + "EstimatedTimeToCompletionInSeconds": { + "type": "integer" + } + } + }, + "HsmStatus": { + "type": "structure", + "members": { + "HsmClientCertificateIdentifier": {}, + "HsmConfigurationIdentifier": {}, + "Status": {} + } + }, + "ClusterSnapshotCopyStatus": { + "type": "structure", + "members": { + "DestinationRegion": {}, + "RetentionPeriod": { + "type": "integer" + } + } + }, + "ClusterPublicKey": {}, + "ClusterNodes": { + "type": "list", + "members": { + "type": "structure", + "members": { + "NodeRole": {}, + "PrivateIPAddress": {}, + "PublicIPAddress": {} + } + } + }, + "ElasticIpStatus": { + "type": "structure", + "members": { + "ElasticIp": {}, + "Status": {} + } + }, + "ClusterRevisionNumber": {} + } + } + } + } + }, + "modifyCluster": { + "name": "ModifyCluster", + "input": { + "type": "structure", + "members": { + "ClusterIdentifier": { + "required": true + }, + "ClusterType": {}, + "NodeType": {}, + "NumberOfNodes": { + "type": "integer" + }, + "ClusterSecurityGroups": { + "type": "list", + "members": { + "name": "ClusterSecurityGroupName" + } + }, + "VpcSecurityGroupIds": { + "type": "list", + "members": { + "name": "VpcSecurityGroupId" + } + }, + "MasterUserPassword": {}, + "ClusterParameterGroupName": {}, + "AutomatedSnapshotRetentionPeriod": { + "type": "integer" + }, + "PreferredMaintenanceWindow": {}, + "ClusterVersion": {}, + "AllowVersionUpgrade": { + "type": "boolean" + }, + "HsmClientCertificateIdentifier": {}, + "HsmConfigurationIdentifier": {} + } + }, + "output": { + "type": "structure", + "members": { + "Cluster": { + "type": "structure", + "members": { + "ClusterIdentifier": {}, + "NodeType": {}, + "ClusterStatus": {}, + "ModifyStatus": {}, + "MasterUsername": {}, + "DBName": {}, + "Endpoint": { + "type": "structure", + "members": { + "Address": {}, + "Port": { + "type": "integer" + } + } + }, + "ClusterCreateTime": { + "type": "timestamp" + }, + "AutomatedSnapshotRetentionPeriod": { + "type": "integer" + }, + "ClusterSecurityGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ClusterSecurityGroupName": {}, + "Status": {} + }, + "name": "ClusterSecurityGroup" + } + }, + "VpcSecurityGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "VpcSecurityGroupId": {}, + "Status": {} + }, + "name": "VpcSecurityGroup" + } + }, + "ClusterParameterGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ParameterGroupName": {}, + "ParameterApplyStatus": {} + }, + "name": "ClusterParameterGroup" + } + }, + "ClusterSubnetGroupName": {}, + "VpcId": {}, + "AvailabilityZone": {}, + "PreferredMaintenanceWindow": {}, + "PendingModifiedValues": { + "type": "structure", + "members": { + "MasterUserPassword": {}, + "NodeType": {}, + "NumberOfNodes": { + "type": "integer" + }, + "ClusterType": {}, + "ClusterVersion": {}, + "AutomatedSnapshotRetentionPeriod": { + "type": "integer" + } + } + }, + "ClusterVersion": {}, + "AllowVersionUpgrade": { + "type": "boolean" + }, + "NumberOfNodes": { + "type": "integer" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "Encrypted": { + "type": "boolean" + }, + "RestoreStatus": { + "type": "structure", + "members": { + "Status": {}, + "CurrentRestoreRateInMegaBytesPerSecond": { + "type": "float" + }, + "SnapshotSizeInMegaBytes": { + "type": "integer" + }, + "ProgressInMegaBytes": { + "type": "integer" + }, + "ElapsedTimeInSeconds": { + "type": "integer" + }, + "EstimatedTimeToCompletionInSeconds": { + "type": "integer" + } + } + }, + "HsmStatus": { + "type": "structure", + "members": { + "HsmClientCertificateIdentifier": {}, + "HsmConfigurationIdentifier": {}, + "Status": {} + } + }, + "ClusterSnapshotCopyStatus": { + "type": "structure", + "members": { + "DestinationRegion": {}, + "RetentionPeriod": { + "type": "integer" + } + } + }, + "ClusterPublicKey": {}, + "ClusterNodes": { + "type": "list", + "members": { + "type": "structure", + "members": { + "NodeRole": {}, + "PrivateIPAddress": {}, + "PublicIPAddress": {} + } + } + }, + "ElasticIpStatus": { + "type": "structure", + "members": { + "ElasticIp": {}, + "Status": {} + } + }, + "ClusterRevisionNumber": {} + } + } + } + } + }, + "modifyClusterParameterGroup": { + "name": "ModifyClusterParameterGroup", + "input": { + "type": "structure", + "members": { + "ParameterGroupName": { + "required": true + }, + "Parameters": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ParameterName": {}, + "ParameterValue": {}, + "Description": {}, + "Source": {}, + "DataType": {}, + "AllowedValues": {}, + "IsModifiable": { + "type": "boolean" + }, + "MinimumEngineVersion": {} + }, + "name": "Parameter" + }, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "ParameterGroupName": {}, + "ParameterGroupStatus": {} + } + } + }, + "modifyClusterSubnetGroup": { + "name": "ModifyClusterSubnetGroup", + "input": { + "type": "structure", + "members": { + "ClusterSubnetGroupName": { + "required": true + }, + "Description": {}, + "SubnetIds": { + "type": "list", + "members": { + "name": "SubnetIdentifier" + }, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "ClusterSubnetGroup": { + "type": "structure", + "members": { + "ClusterSubnetGroupName": {}, + "Description": {}, + "VpcId": {}, + "SubnetGroupStatus": {}, + "Subnets": { + "type": "list", + "members": { + "type": "structure", + "members": { + "SubnetIdentifier": {}, + "SubnetAvailabilityZone": { + "type": "structure", + "members": { + "Name": {} + } + }, + "SubnetStatus": {} + }, + "name": "Subnet" + } + } + } + } + } + } + }, + "modifyEventSubscription": { + "name": "ModifyEventSubscription", + "input": { + "type": "structure", + "members": { + "SubscriptionName": { + "required": true + }, + "SnsTopicArn": {}, + "SourceType": {}, + "SourceIds": { + "type": "list", + "members": { + "name": "SourceId" + } + }, + "EventCategories": { + "type": "list", + "members": { + "name": "EventCategory" + } + }, + "Severity": {}, + "Enabled": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "EventSubscription": { + "type": "structure", + "members": { + "CustomerAwsId": {}, + "CustSubscriptionId": {}, + "SnsTopicArn": {}, + "Status": {}, + "SubscriptionCreationTime": { + "type": "timestamp" + }, + "SourceType": {}, + "SourceIdsList": { + "type": "list", + "members": { + "name": "SourceId" + } + }, + "EventCategoriesList": { + "type": "list", + "members": { + "name": "EventCategory" + } + }, + "Severity": {}, + "Enabled": { + "type": "boolean" + } + } + } + } + } + }, + "modifySnapshotCopyRetentionPeriod": { + "name": "ModifySnapshotCopyRetentionPeriod", + "input": { + "type": "structure", + "members": { + "ClusterIdentifier": { + "required": true + }, + "RetentionPeriod": { + "type": "integer", + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "Cluster": { + "type": "structure", + "members": { + "ClusterIdentifier": {}, + "NodeType": {}, + "ClusterStatus": {}, + "ModifyStatus": {}, + "MasterUsername": {}, + "DBName": {}, + "Endpoint": { + "type": "structure", + "members": { + "Address": {}, + "Port": { + "type": "integer" + } + } + }, + "ClusterCreateTime": { + "type": "timestamp" + }, + "AutomatedSnapshotRetentionPeriod": { + "type": "integer" + }, + "ClusterSecurityGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ClusterSecurityGroupName": {}, + "Status": {} + }, + "name": "ClusterSecurityGroup" + } + }, + "VpcSecurityGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "VpcSecurityGroupId": {}, + "Status": {} + }, + "name": "VpcSecurityGroup" + } + }, + "ClusterParameterGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ParameterGroupName": {}, + "ParameterApplyStatus": {} + }, + "name": "ClusterParameterGroup" + } + }, + "ClusterSubnetGroupName": {}, + "VpcId": {}, + "AvailabilityZone": {}, + "PreferredMaintenanceWindow": {}, + "PendingModifiedValues": { + "type": "structure", + "members": { + "MasterUserPassword": {}, + "NodeType": {}, + "NumberOfNodes": { + "type": "integer" + }, + "ClusterType": {}, + "ClusterVersion": {}, + "AutomatedSnapshotRetentionPeriod": { + "type": "integer" + } + } + }, + "ClusterVersion": {}, + "AllowVersionUpgrade": { + "type": "boolean" + }, + "NumberOfNodes": { + "type": "integer" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "Encrypted": { + "type": "boolean" + }, + "RestoreStatus": { + "type": "structure", + "members": { + "Status": {}, + "CurrentRestoreRateInMegaBytesPerSecond": { + "type": "float" + }, + "SnapshotSizeInMegaBytes": { + "type": "integer" + }, + "ProgressInMegaBytes": { + "type": "integer" + }, + "ElapsedTimeInSeconds": { + "type": "integer" + }, + "EstimatedTimeToCompletionInSeconds": { + "type": "integer" + } + } + }, + "HsmStatus": { + "type": "structure", + "members": { + "HsmClientCertificateIdentifier": {}, + "HsmConfigurationIdentifier": {}, + "Status": {} + } + }, + "ClusterSnapshotCopyStatus": { + "type": "structure", + "members": { + "DestinationRegion": {}, + "RetentionPeriod": { + "type": "integer" + } + } + }, + "ClusterPublicKey": {}, + "ClusterNodes": { + "type": "list", + "members": { + "type": "structure", + "members": { + "NodeRole": {}, + "PrivateIPAddress": {}, + "PublicIPAddress": {} + } + } + }, + "ElasticIpStatus": { + "type": "structure", + "members": { + "ElasticIp": {}, + "Status": {} + } + }, + "ClusterRevisionNumber": {} + } + } + } + } + }, + "purchaseReservedNodeOffering": { + "name": "PurchaseReservedNodeOffering", + "input": { + "type": "structure", + "members": { + "ReservedNodeOfferingId": { + "required": true + }, + "NodeCount": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "ReservedNode": { + "type": "structure", + "members": { + "ReservedNodeId": {}, + "ReservedNodeOfferingId": {}, + "NodeType": {}, + "StartTime": { + "type": "timestamp" + }, + "Duration": { + "type": "integer" + }, + "FixedPrice": { + "type": "float" + }, + "UsagePrice": { + "type": "float" + }, + "CurrencyCode": {}, + "NodeCount": { + "type": "integer" + }, + "State": {}, + "OfferingType": {}, + "RecurringCharges": { + "type": "list", + "members": { + "type": "structure", + "members": { + "RecurringChargeAmount": { + "type": "float" + }, + "RecurringChargeFrequency": {} + }, + "name": "RecurringCharge" + } + } + } + } + } + } + }, + "rebootCluster": { + "name": "RebootCluster", + "input": { + "type": "structure", + "members": { + "ClusterIdentifier": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "Cluster": { + "type": "structure", + "members": { + "ClusterIdentifier": {}, + "NodeType": {}, + "ClusterStatus": {}, + "ModifyStatus": {}, + "MasterUsername": {}, + "DBName": {}, + "Endpoint": { + "type": "structure", + "members": { + "Address": {}, + "Port": { + "type": "integer" + } + } + }, + "ClusterCreateTime": { + "type": "timestamp" + }, + "AutomatedSnapshotRetentionPeriod": { + "type": "integer" + }, + "ClusterSecurityGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ClusterSecurityGroupName": {}, + "Status": {} + }, + "name": "ClusterSecurityGroup" + } + }, + "VpcSecurityGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "VpcSecurityGroupId": {}, + "Status": {} + }, + "name": "VpcSecurityGroup" + } + }, + "ClusterParameterGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ParameterGroupName": {}, + "ParameterApplyStatus": {} + }, + "name": "ClusterParameterGroup" + } + }, + "ClusterSubnetGroupName": {}, + "VpcId": {}, + "AvailabilityZone": {}, + "PreferredMaintenanceWindow": {}, + "PendingModifiedValues": { + "type": "structure", + "members": { + "MasterUserPassword": {}, + "NodeType": {}, + "NumberOfNodes": { + "type": "integer" + }, + "ClusterType": {}, + "ClusterVersion": {}, + "AutomatedSnapshotRetentionPeriod": { + "type": "integer" + } + } + }, + "ClusterVersion": {}, + "AllowVersionUpgrade": { + "type": "boolean" + }, + "NumberOfNodes": { + "type": "integer" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "Encrypted": { + "type": "boolean" + }, + "RestoreStatus": { + "type": "structure", + "members": { + "Status": {}, + "CurrentRestoreRateInMegaBytesPerSecond": { + "type": "float" + }, + "SnapshotSizeInMegaBytes": { + "type": "integer" + }, + "ProgressInMegaBytes": { + "type": "integer" + }, + "ElapsedTimeInSeconds": { + "type": "integer" + }, + "EstimatedTimeToCompletionInSeconds": { + "type": "integer" + } + } + }, + "HsmStatus": { + "type": "structure", + "members": { + "HsmClientCertificateIdentifier": {}, + "HsmConfigurationIdentifier": {}, + "Status": {} + } + }, + "ClusterSnapshotCopyStatus": { + "type": "structure", + "members": { + "DestinationRegion": {}, + "RetentionPeriod": { + "type": "integer" + } + } + }, + "ClusterPublicKey": {}, + "ClusterNodes": { + "type": "list", + "members": { + "type": "structure", + "members": { + "NodeRole": {}, + "PrivateIPAddress": {}, + "PublicIPAddress": {} + } + } + }, + "ElasticIpStatus": { + "type": "structure", + "members": { + "ElasticIp": {}, + "Status": {} + } + }, + "ClusterRevisionNumber": {} + } + } + } + } + }, + "resetClusterParameterGroup": { + "name": "ResetClusterParameterGroup", + "input": { + "type": "structure", + "members": { + "ParameterGroupName": { + "required": true + }, + "ResetAllParameters": { + "type": "boolean" + }, + "Parameters": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ParameterName": {}, + "ParameterValue": {}, + "Description": {}, + "Source": {}, + "DataType": {}, + "AllowedValues": {}, + "IsModifiable": { + "type": "boolean" + }, + "MinimumEngineVersion": {} + }, + "name": "Parameter" + } + } + } + }, + "output": { + "type": "structure", + "members": { + "ParameterGroupName": {}, + "ParameterGroupStatus": {} + } + } + }, + "restoreFromClusterSnapshot": { + "name": "RestoreFromClusterSnapshot", + "input": { + "type": "structure", + "members": { + "ClusterIdentifier": { + "required": true + }, + "SnapshotIdentifier": { + "required": true + }, + "SnapshotClusterIdentifier": {}, + "Port": { + "type": "integer" + }, + "AvailabilityZone": {}, + "AllowVersionUpgrade": { + "type": "boolean" + }, + "ClusterSubnetGroupName": {}, + "PubliclyAccessible": { + "type": "boolean" + }, + "OwnerAccount": {}, + "HsmClientCertificateIdentifier": {}, + "HsmConfigurationIdentifier": {}, + "ElasticIp": {} + } + }, + "output": { + "type": "structure", + "members": { + "Cluster": { + "type": "structure", + "members": { + "ClusterIdentifier": {}, + "NodeType": {}, + "ClusterStatus": {}, + "ModifyStatus": {}, + "MasterUsername": {}, + "DBName": {}, + "Endpoint": { + "type": "structure", + "members": { + "Address": {}, + "Port": { + "type": "integer" + } + } + }, + "ClusterCreateTime": { + "type": "timestamp" + }, + "AutomatedSnapshotRetentionPeriod": { + "type": "integer" + }, + "ClusterSecurityGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ClusterSecurityGroupName": {}, + "Status": {} + }, + "name": "ClusterSecurityGroup" + } + }, + "VpcSecurityGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "VpcSecurityGroupId": {}, + "Status": {} + }, + "name": "VpcSecurityGroup" + } + }, + "ClusterParameterGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ParameterGroupName": {}, + "ParameterApplyStatus": {} + }, + "name": "ClusterParameterGroup" + } + }, + "ClusterSubnetGroupName": {}, + "VpcId": {}, + "AvailabilityZone": {}, + "PreferredMaintenanceWindow": {}, + "PendingModifiedValues": { + "type": "structure", + "members": { + "MasterUserPassword": {}, + "NodeType": {}, + "NumberOfNodes": { + "type": "integer" + }, + "ClusterType": {}, + "ClusterVersion": {}, + "AutomatedSnapshotRetentionPeriod": { + "type": "integer" + } + } + }, + "ClusterVersion": {}, + "AllowVersionUpgrade": { + "type": "boolean" + }, + "NumberOfNodes": { + "type": "integer" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "Encrypted": { + "type": "boolean" + }, + "RestoreStatus": { + "type": "structure", + "members": { + "Status": {}, + "CurrentRestoreRateInMegaBytesPerSecond": { + "type": "float" + }, + "SnapshotSizeInMegaBytes": { + "type": "integer" + }, + "ProgressInMegaBytes": { + "type": "integer" + }, + "ElapsedTimeInSeconds": { + "type": "integer" + }, + "EstimatedTimeToCompletionInSeconds": { + "type": "integer" + } + } + }, + "HsmStatus": { + "type": "structure", + "members": { + "HsmClientCertificateIdentifier": {}, + "HsmConfigurationIdentifier": {}, + "Status": {} + } + }, + "ClusterSnapshotCopyStatus": { + "type": "structure", + "members": { + "DestinationRegion": {}, + "RetentionPeriod": { + "type": "integer" + } + } + }, + "ClusterPublicKey": {}, + "ClusterNodes": { + "type": "list", + "members": { + "type": "structure", + "members": { + "NodeRole": {}, + "PrivateIPAddress": {}, + "PublicIPAddress": {} + } + } + }, + "ElasticIpStatus": { + "type": "structure", + "members": { + "ElasticIp": {}, + "Status": {} + } + }, + "ClusterRevisionNumber": {} + } + } + } + } + }, + "revokeClusterSecurityGroupIngress": { + "name": "RevokeClusterSecurityGroupIngress", + "input": { + "type": "structure", + "members": { + "ClusterSecurityGroupName": { + "required": true + }, + "CIDRIP": {}, + "EC2SecurityGroupName": {}, + "EC2SecurityGroupOwnerId": {} + } + }, + "output": { + "type": "structure", + "members": { + "ClusterSecurityGroup": { + "type": "structure", + "members": { + "ClusterSecurityGroupName": {}, + "Description": {}, + "EC2SecurityGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Status": {}, + "EC2SecurityGroupName": {}, + "EC2SecurityGroupOwnerId": {} + }, + "name": "EC2SecurityGroup" + } + }, + "IPRanges": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Status": {}, + "CIDRIP": {} + }, + "name": "IPRange" + } + } + } + } + } + } + }, + "revokeSnapshotAccess": { + "name": "RevokeSnapshotAccess", + "input": { + "type": "structure", + "members": { + "SnapshotIdentifier": { + "required": true + }, + "SnapshotClusterIdentifier": {}, + "AccountWithRestoreAccess": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "Snapshot": { + "type": "structure", + "members": { + "SnapshotIdentifier": {}, + "ClusterIdentifier": {}, + "SnapshotCreateTime": { + "type": "timestamp" + }, + "Status": {}, + "Port": { + "type": "integer" + }, + "AvailabilityZone": {}, + "ClusterCreateTime": { + "type": "timestamp" + }, + "MasterUsername": {}, + "ClusterVersion": {}, + "SnapshotType": {}, + "NodeType": {}, + "NumberOfNodes": { + "type": "integer" + }, + "DBName": {}, + "VpcId": {}, + "Encrypted": { + "type": "boolean" + }, + "EncryptedWithHSM": { + "type": "boolean" + }, + "AccountsWithRestoreAccess": { + "type": "list", + "members": { + "type": "structure", + "members": { + "AccountId": {} + }, + "name": "AccountWithRestoreAccess" + } + }, + "OwnerAccount": {}, + "TotalBackupSizeInMegaBytes": { + "type": "float" + }, + "ActualIncrementalBackupSizeInMegaBytes": { + "type": "float" + }, + "BackupProgressInMegaBytes": { + "type": "float" + }, + "CurrentBackupRateInMegaBytesPerSecond": { + "type": "float" + }, + "EstimatedSecondsToCompletion": { + "type": "integer" + }, + "ElapsedTimeInSeconds": { + "type": "integer" + }, + "SourceRegion": {} + } + } + } + } + }, + "rotateEncryptionKey": { + "name": "RotateEncryptionKey", + "input": { + "type": "structure", + "members": { + "ClusterIdentifier": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "Cluster": { + "type": "structure", + "members": { + "ClusterIdentifier": {}, + "NodeType": {}, + "ClusterStatus": {}, + "ModifyStatus": {}, + "MasterUsername": {}, + "DBName": {}, + "Endpoint": { + "type": "structure", + "members": { + "Address": {}, + "Port": { + "type": "integer" + } + } + }, + "ClusterCreateTime": { + "type": "timestamp" + }, + "AutomatedSnapshotRetentionPeriod": { + "type": "integer" + }, + "ClusterSecurityGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ClusterSecurityGroupName": {}, + "Status": {} + }, + "name": "ClusterSecurityGroup" + } + }, + "VpcSecurityGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "VpcSecurityGroupId": {}, + "Status": {} + }, + "name": "VpcSecurityGroup" + } + }, + "ClusterParameterGroups": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ParameterGroupName": {}, + "ParameterApplyStatus": {} + }, + "name": "ClusterParameterGroup" + } + }, + "ClusterSubnetGroupName": {}, + "VpcId": {}, + "AvailabilityZone": {}, + "PreferredMaintenanceWindow": {}, + "PendingModifiedValues": { + "type": "structure", + "members": { + "MasterUserPassword": {}, + "NodeType": {}, + "NumberOfNodes": { + "type": "integer" + }, + "ClusterType": {}, + "ClusterVersion": {}, + "AutomatedSnapshotRetentionPeriod": { + "type": "integer" + } + } + }, + "ClusterVersion": {}, + "AllowVersionUpgrade": { + "type": "boolean" + }, + "NumberOfNodes": { + "type": "integer" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "Encrypted": { + "type": "boolean" + }, + "RestoreStatus": { + "type": "structure", + "members": { + "Status": {}, + "CurrentRestoreRateInMegaBytesPerSecond": { + "type": "float" + }, + "SnapshotSizeInMegaBytes": { + "type": "integer" + }, + "ProgressInMegaBytes": { + "type": "integer" + }, + "ElapsedTimeInSeconds": { + "type": "integer" + }, + "EstimatedTimeToCompletionInSeconds": { + "type": "integer" + } + } + }, + "HsmStatus": { + "type": "structure", + "members": { + "HsmClientCertificateIdentifier": {}, + "HsmConfigurationIdentifier": {}, + "Status": {} + } + }, + "ClusterSnapshotCopyStatus": { + "type": "structure", + "members": { + "DestinationRegion": {}, + "RetentionPeriod": { + "type": "integer" + } + } + }, + "ClusterPublicKey": {}, + "ClusterNodes": { + "type": "list", + "members": { + "type": "structure", + "members": { + "NodeRole": {}, + "PrivateIPAddress": {}, + "PublicIPAddress": {} + } + } + }, + "ElasticIpStatus": { + "type": "structure", + "members": { + "ElasticIp": {}, + "Status": {} + } + }, + "ClusterRevisionNumber": {} + } + } + } + } + } + }, + "pagination": { + "describeClusterParameterGroups": { + "inputToken": "Marker", + "outputToken": "Marker", + "limitKey": "MaxRecords", + "resultKey": "ParameterGroups" + }, + "describeClusterParameters": { + "inputToken": "Marker", + "outputToken": "Marker", + "limitKey": "MaxRecords", + "resultKey": "Parameters" + }, + "describeClusterSecurityGroups": { + "inputToken": "Marker", + "outputToken": "Marker", + "limitKey": "MaxRecords", + "resultKey": "ClusterSecurityGroups" + }, + "describeClusterSnapshots": { + "inputToken": "Marker", + "outputToken": "Marker", + "limitKey": "MaxRecords", + "resultKey": "Snapshots" + }, + "describeClusterSubnetGroups": { + "inputToken": "Marker", + "outputToken": "Marker", + "limitKey": "MaxRecords", + "resultKey": "ClusterSubnetGroups" + }, + "describeClusterVersions": { + "inputToken": "Marker", + "outputToken": "Marker", + "limitKey": "MaxRecords", + "resultKey": "ClusterVersions" + }, + "describeClusters": { + "inputToken": "Marker", + "outputToken": "Marker", + "limitKey": "MaxRecords", + "resultKey": "Clusters" + }, + "describeDefaultClusterParameters": { + "inputToken": "Marker", + "outputToken": "DefaultClusterParameters.Marker", + "limitKey": "MaxRecords", + "resultKey": "DefaultClusterParameters.Parameters" + }, + "describeEventSubscriptions": { + "inputToken": "Marker", + "outputToken": "Marker", + "limitKey": "MaxRecords", + "resultKey": "EventSubscriptionsList" + }, + "describeEvents": { + "inputToken": "Marker", + "outputToken": "Marker", + "limitKey": "MaxRecords", + "resultKey": "Events" + }, + "describeHsmClientCertificates": { + "inputToken": "Marker", + "outputToken": "Marker", + "limitKey": "MaxRecords", + "resultKey": "HsmClientCertificates" + }, + "describeHsmConfigurations": { + "inputToken": "Marker", + "outputToken": "Marker", + "limitKey": "MaxRecords", + "resultKey": "HsmConfigurations" + }, + "describeOrderableClusterOptions": { + "inputToken": "Marker", + "outputToken": "Marker", + "limitKey": "MaxRecords", + "resultKey": "OrderableClusterOptions" + }, + "describeReservedNodeOfferings": { + "inputToken": "Marker", + "outputToken": "Marker", + "limitKey": "MaxRecords", + "resultKey": "ReservedNodeOfferings" + }, + "describeReservedNodes": { + "inputToken": "Marker", + "outputToken": "Marker", + "limitKey": "MaxRecords", + "resultKey": "ReservedNodes" + } + }, + "waiters": { + "__default__": { + "acceptorType": "output" + }, + "__ClusterState": { + "interval": 60, + "maxAttempts": 30, + "operation": "DescribeClusters", + "acceptorPath": "Clusters[].ClusterStatus" + }, + "clusterAvailable": { + "extends": "__ClusterState", + "ignoreErrors": [ + "ClusterNotFound" + ], + "successValue": "available", + "failureValue": [ + "deleting" + ] + }, + "clusterDeleted": { + "extends": "__ClusterState", + "successType": "error", + "successValue": "ClusterNotFound", + "failureValue": [ + "creating", + "rebooting" + ] + }, + "snapshotAvailable": { + "interval": 15, + "maxAttempts": 20, + "operation": "DescribeClusterSnapshots", + "acceptorPath": "Snapshots[].Status", + "successValue": "available", + "failureValue": [ + "failed", + "deleted" + ] + } + } +} \ No newline at end of file diff --git a/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/Route53-2013-04-01.json b/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/Route53-2013-04-01.json new file mode 100644 index 00000000..0121416d --- /dev/null +++ b/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/Route53-2013-04-01.json @@ -0,0 +1,760 @@ +{ + "format": "rest-xml", + "apiVersion": "2013-04-01", + "endpointPrefix": "route53", + "globalEndpoint": "route53.amazonaws.com", + "serviceAbbreviation": "Route 53", + "serviceFullName": "Amazon Route 53", + "signatureVersion": "v3https", + "timestampFormat": "iso8601", + "xmlnamespace": "https://route53.amazonaws.com/doc/2013-04-01/", + "operations": { + "changeResourceRecordSets": { + "name": "ChangeResourceRecordSets", + "http": { + "method": "POST", + "uri": "/2013-04-01/hostedzone/{HostedZoneId}/rrset/" + }, + "input": { + "payload": [ + "ChangeBatch" + ], + "wrapper": "ChangeResourceRecordSetsRequest", + "type": "structure", + "members": { + "HostedZoneId": { + "required": true, + "location": "uri" + }, + "ChangeBatch": { + "type": "structure", + "members": { + "Comment": {}, + "Changes": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Action": { + "required": true + }, + "ResourceRecordSet": { + "type": "structure", + "members": { + "Name": { + "required": true + }, + "Type": { + "required": true + }, + "SetIdentifier": {}, + "Weight": { + "type": "integer" + }, + "Region": {}, + "Failover": {}, + "TTL": { + "type": "integer" + }, + "ResourceRecords": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Value": { + "required": true + } + }, + "order": [ + "Value" + ], + "name": "ResourceRecord" + } + }, + "AliasTarget": { + "type": "structure", + "members": { + "HostedZoneId": { + "required": true + }, + "DNSName": { + "required": true + }, + "EvaluateTargetHealth": { + "type": "boolean", + "required": true + } + }, + "order": [ + "HostedZoneId", + "DNSName", + "EvaluateTargetHealth" + ] + }, + "HealthCheckId": {} + }, + "order": [ + "Name", + "Type", + "SetIdentifier", + "Weight", + "Region", + "Failover", + "TTL", + "ResourceRecords", + "AliasTarget", + "HealthCheckId" + ], + "required": true + } + }, + "order": [ + "Action", + "ResourceRecordSet" + ], + "name": "Change" + }, + "required": true + } + }, + "order": [ + "Comment", + "Changes" + ], + "required": true + } + }, + "order": [ + "HostedZoneId", + "ChangeBatch" + ] + }, + "output": { + "type": "structure", + "members": { + "ChangeInfo": { + "type": "structure", + "members": { + "Id": {}, + "Status": {}, + "SubmittedAt": { + "type": "timestamp" + }, + "Comment": {} + } + } + } + } + }, + "createHealthCheck": { + "name": "CreateHealthCheck", + "http": { + "method": "POST", + "uri": "/2013-04-01/healthcheck" + }, + "input": { + "payload": [ + "CallerReference", + "HealthCheckConfig" + ], + "wrapper": "CreateHealthCheckRequest", + "type": "structure", + "members": { + "CallerReference": { + "required": true + }, + "HealthCheckConfig": { + "type": "structure", + "members": { + "IPAddress": { + "required": true + }, + "Port": { + "type": "integer" + }, + "Type": { + "required": true + }, + "ResourcePath": {}, + "FullyQualifiedDomainName": {}, + "SearchString": {}, + "RequestInterval": { + "type": "integer" + }, + "FailureThreshold": { + "type": "integer" + } + }, + "order": [ + "IPAddress", + "Port", + "Type", + "ResourcePath", + "FullyQualifiedDomainName", + "SearchString", + "RequestInterval", + "FailureThreshold" + ], + "required": true + } + }, + "order": [ + "CallerReference", + "HealthCheckConfig" + ] + }, + "output": { + "type": "structure", + "members": { + "HealthCheck": { + "type": "structure", + "members": { + "Id": {}, + "CallerReference": {}, + "HealthCheckConfig": { + "type": "structure", + "members": { + "IPAddress": {}, + "Port": { + "type": "integer" + }, + "Type": {}, + "ResourcePath": {}, + "FullyQualifiedDomainName": {}, + "SearchString": {}, + "RequestInterval": { + "type": "integer" + }, + "FailureThreshold": { + "type": "integer" + } + } + } + } + }, + "Location": { + "location": "header", + "name": "Location" + } + } + } + }, + "createHostedZone": { + "name": "CreateHostedZone", + "http": { + "method": "POST", + "uri": "/2013-04-01/hostedzone" + }, + "input": { + "payload": [ + "Name", + "CallerReference", + "HostedZoneConfig" + ], + "wrapper": "CreateHostedZoneRequest", + "type": "structure", + "members": { + "Name": { + "required": true + }, + "CallerReference": { + "required": true + }, + "HostedZoneConfig": { + "type": "structure", + "members": { + "Comment": {} + }, + "order": [ + "Comment" + ] + } + }, + "order": [ + "Name", + "CallerReference", + "HostedZoneConfig" + ] + }, + "output": { + "type": "structure", + "members": { + "HostedZone": { + "type": "structure", + "members": { + "Id": {}, + "Name": {}, + "CallerReference": {}, + "Config": { + "type": "structure", + "members": { + "Comment": {} + } + }, + "ResourceRecordSetCount": { + "type": "integer" + } + } + }, + "ChangeInfo": { + "type": "structure", + "members": { + "Id": {}, + "Status": {}, + "SubmittedAt": { + "type": "timestamp" + }, + "Comment": {} + } + }, + "DelegationSet": { + "type": "structure", + "members": { + "NameServers": { + "type": "list", + "members": { + "name": "NameServer" + } + } + } + }, + "Location": { + "location": "header", + "name": "Location" + } + } + } + }, + "deleteHealthCheck": { + "name": "DeleteHealthCheck", + "http": { + "method": "DELETE", + "uri": "/2013-04-01/healthcheck/{HealthCheckId}" + }, + "input": { + "type": "structure", + "members": { + "HealthCheckId": { + "required": true, + "location": "uri" + } + }, + "order": [ + "HealthCheckId" + ] + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteHostedZone": { + "name": "DeleteHostedZone", + "http": { + "method": "DELETE", + "uri": "/2013-04-01/hostedzone/{Id}" + }, + "input": { + "type": "structure", + "members": { + "Id": { + "required": true, + "location": "uri" + } + }, + "order": [ + "Id" + ] + }, + "output": { + "type": "structure", + "members": { + "ChangeInfo": { + "type": "structure", + "members": { + "Id": {}, + "Status": {}, + "SubmittedAt": { + "type": "timestamp" + }, + "Comment": {} + } + } + } + } + }, + "getChange": { + "name": "GetChange", + "http": { + "method": "GET", + "uri": "/2013-04-01/change/{Id}" + }, + "input": { + "type": "structure", + "members": { + "Id": { + "required": true, + "location": "uri" + } + }, + "order": [ + "Id" + ] + }, + "output": { + "type": "structure", + "members": { + "ChangeInfo": { + "type": "structure", + "members": { + "Id": {}, + "Status": {}, + "SubmittedAt": { + "type": "timestamp" + }, + "Comment": {} + } + } + } + } + }, + "getHealthCheck": { + "name": "GetHealthCheck", + "http": { + "method": "GET", + "uri": "/2013-04-01/healthcheck/{HealthCheckId}" + }, + "input": { + "type": "structure", + "members": { + "HealthCheckId": { + "required": true, + "location": "uri" + } + }, + "order": [ + "HealthCheckId" + ] + }, + "output": { + "type": "structure", + "members": { + "HealthCheck": { + "type": "structure", + "members": { + "Id": {}, + "CallerReference": {}, + "HealthCheckConfig": { + "type": "structure", + "members": { + "IPAddress": {}, + "Port": { + "type": "integer" + }, + "Type": {}, + "ResourcePath": {}, + "FullyQualifiedDomainName": {}, + "SearchString": {}, + "RequestInterval": { + "type": "integer" + }, + "FailureThreshold": { + "type": "integer" + } + } + } + } + } + } + } + }, + "getHostedZone": { + "name": "GetHostedZone", + "http": { + "method": "GET", + "uri": "/2013-04-01/hostedzone/{Id}" + }, + "input": { + "type": "structure", + "members": { + "Id": { + "required": true, + "location": "uri" + } + }, + "order": [ + "Id" + ] + }, + "output": { + "type": "structure", + "members": { + "HostedZone": { + "type": "structure", + "members": { + "Id": {}, + "Name": {}, + "CallerReference": {}, + "Config": { + "type": "structure", + "members": { + "Comment": {} + } + }, + "ResourceRecordSetCount": { + "type": "integer" + } + } + }, + "DelegationSet": { + "type": "structure", + "members": { + "NameServers": { + "type": "list", + "members": { + "name": "NameServer" + } + } + } + } + } + } + }, + "listHealthChecks": { + "name": "ListHealthChecks", + "http": { + "method": "GET", + "uri": "/2013-04-01/healthcheck?marker={Marker}&maxitems={MaxItems}" + }, + "input": { + "type": "structure", + "members": { + "Marker": { + "location": "uri" + }, + "MaxItems": { + "location": "uri" + } + }, + "order": [ + "Marker", + "MaxItems" + ] + }, + "output": { + "type": "structure", + "members": { + "HealthChecks": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Id": {}, + "CallerReference": {}, + "HealthCheckConfig": { + "type": "structure", + "members": { + "IPAddress": {}, + "Port": { + "type": "integer" + }, + "Type": {}, + "ResourcePath": {}, + "FullyQualifiedDomainName": {}, + "SearchString": {}, + "RequestInterval": { + "type": "integer" + }, + "FailureThreshold": { + "type": "integer" + } + } + } + }, + "name": "HealthCheck" + } + }, + "Marker": {}, + "IsTruncated": { + "type": "boolean" + }, + "NextMarker": {}, + "MaxItems": {} + } + } + }, + "listHostedZones": { + "name": "ListHostedZones", + "http": { + "method": "GET", + "uri": "/2013-04-01/hostedzone?marker={Marker}&maxitems={MaxItems}" + }, + "input": { + "type": "structure", + "members": { + "Marker": { + "location": "uri" + }, + "MaxItems": { + "location": "uri" + } + }, + "order": [ + "Marker", + "MaxItems" + ] + }, + "output": { + "type": "structure", + "members": { + "HostedZones": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Id": {}, + "Name": {}, + "CallerReference": {}, + "Config": { + "type": "structure", + "members": { + "Comment": {} + } + }, + "ResourceRecordSetCount": { + "type": "integer" + } + }, + "name": "HostedZone" + } + }, + "Marker": {}, + "IsTruncated": { + "type": "boolean" + }, + "NextMarker": {}, + "MaxItems": {} + } + } + }, + "listResourceRecordSets": { + "name": "ListResourceRecordSets", + "http": { + "method": "GET", + "uri": "/2013-04-01/hostedzone/{HostedZoneId}/rrset?type={StartRecordType}&name={StartRecordName}&identifier={StartRecordIdentifier}&maxitems={MaxItems}" + }, + "input": { + "type": "structure", + "members": { + "HostedZoneId": { + "required": true, + "location": "uri" + }, + "StartRecordName": { + "location": "uri" + }, + "StartRecordType": { + "location": "uri" + }, + "StartRecordIdentifier": { + "location": "uri" + }, + "MaxItems": { + "location": "uri" + } + }, + "order": [ + "HostedZoneId", + "StartRecordName", + "StartRecordType", + "StartRecordIdentifier", + "MaxItems" + ] + }, + "output": { + "type": "structure", + "members": { + "ResourceRecordSets": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": {}, + "Type": {}, + "SetIdentifier": {}, + "Weight": { + "type": "integer" + }, + "Region": {}, + "Failover": {}, + "TTL": { + "type": "integer" + }, + "ResourceRecords": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Value": {} + }, + "name": "ResourceRecord" + } + }, + "AliasTarget": { + "type": "structure", + "members": { + "HostedZoneId": {}, + "DNSName": {}, + "EvaluateTargetHealth": { + "type": "boolean" + } + } + }, + "HealthCheckId": {} + }, + "name": "ResourceRecordSet" + } + }, + "IsTruncated": { + "type": "boolean" + }, + "NextRecordName": {}, + "NextRecordType": {}, + "NextRecordIdentifier": {}, + "MaxItems": {} + } + } + } + }, + "pagination": { + "listHealthChecks": { + "inputToken": "Marker", + "outputToken": "NextMarker", + "moreResults": "IsTruncated", + "limitKey": "MaxItems", + "resultKey": "HealthChecks" + }, + "listHostedZones": { + "inputToken": "Marker", + "outputToken": "NextMarker", + "moreResults": "IsTruncated", + "limitKey": "MaxItems", + "resultKey": "HostedZones" + }, + "listResourceRecordSets": { + "moreResults": "IsTruncated", + "limitKey": "MaxItems", + "resultKey": "ResourceRecordSets", + "inputToken": [ + "StartRecordName", + "StartRecordType", + "StartRecordIdentifier" + ], + "outputToken": [ + "NextRecordName", + "NextRecordType", + "NextRecordIdentifier" + ] + } + } +} \ No newline at end of file diff --git a/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/S3-2006-03-01.json b/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/S3-2006-03-01.json new file mode 100644 index 00000000..3fba0bdf --- /dev/null +++ b/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/S3-2006-03-01.json @@ -0,0 +1,2927 @@ +{ + "format": "rest-xml", + "apiVersion": "2006-03-01", + "checksumFormat": "md5", + "endpointPrefix": "s3", + "globalEndpoint": "s3.amazonaws.com", + "serviceAbbreviation": "Amazon S3", + "serviceFullName": "Amazon Simple Storage Service", + "signatureVersion": "s3", + "timestampFormat": "rfc822", + "xmlnamespace": "http://s3.amazonaws.com/doc/2006-03-01/", + "operations": { + "abortMultipartUpload": { + "name": "AbortMultipartUpload", + "http": { + "method": "DELETE", + "uri": "/{Bucket}/{Key}?uploadId={UploadId}" + }, + "input": { + "type": "structure", + "members": { + "Bucket": { + "required": true, + "location": "uri" + }, + "Key": { + "required": true, + "location": "uri" + }, + "UploadId": { + "required": true, + "location": "uri" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "completeMultipartUpload": { + "name": "CompleteMultipartUpload", + "http": { + "method": "POST", + "uri": "/{Bucket}/{Key}?uploadId={UploadId}" + }, + "input": { + "payload": "MultipartUpload", + "type": "structure", + "members": { + "Bucket": { + "required": true, + "location": "uri" + }, + "Key": { + "required": true, + "location": "uri" + }, + "MultipartUpload": { + "type": "structure", + "name": "CompleteMultipartUpload", + "members": { + "Parts": { + "type": "list", + "name": "Part", + "members": { + "type": "structure", + "members": { + "ETag": {}, + "PartNumber": { + "type": "integer" + } + } + }, + "flattened": true + } + } + }, + "UploadId": { + "required": true, + "location": "uri" + } + } + }, + "output": { + "type": "structure", + "members": { + "Bucket": {}, + "ETag": {}, + "Expiration": { + "type": "timestamp", + "location": "header", + "name": "x-amz-expiration" + }, + "Key": {}, + "Location": {}, + "ServerSideEncryption": { + "location": "header", + "name": "x-amz-server-side-encryption" + }, + "VersionId": { + "location": "header", + "name": "x-amz-version-id" + } + } + } + }, + "copyObject": { + "name": "CopyObject", + "alias": "PutObjectCopy", + "http": { + "method": "PUT", + "uri": "/{Bucket}/{Key}" + }, + "input": { + "type": "structure", + "members": { + "ACL": { + "location": "header", + "name": "x-amz-acl" + }, + "Bucket": { + "required": true, + "location": "uri" + }, + "CacheControl": { + "location": "header", + "name": "Cache-Control" + }, + "ContentDisposition": { + "location": "header", + "name": "Content-Disposition" + }, + "ContentEncoding": { + "location": "header", + "name": "Content-Encoding" + }, + "ContentLanguage": { + "location": "header", + "name": "Content-Language" + }, + "ContentType": { + "location": "header", + "name": "Content-Type" + }, + "CopySource": { + "required": true, + "location": "header", + "name": "x-amz-copy-source" + }, + "CopySourceIfMatch": { + "type": "timestamp", + "location": "header", + "name": "x-amz-copy-source-if-match" + }, + "CopySourceIfModifiedSince": { + "type": "timestamp", + "location": "header", + "name": "x-amz-copy-source-if-modified-since" + }, + "CopySourceIfNoneMatch": { + "type": "timestamp", + "location": "header", + "name": "x-amz-copy-source-if-none-match" + }, + "CopySourceIfUnmodifiedSince": { + "type": "timestamp", + "location": "header", + "name": "x-amz-copy-source-if-unmodified-since" + }, + "Expires": { + "type": "timestamp", + "location": "header", + "name": "Expires" + }, + "GrantFullControl": { + "location": "header", + "name": "x-amz-grant-full-control" + }, + "GrantRead": { + "location": "header", + "name": "x-amz-grant-read" + }, + "GrantReadACP": { + "location": "header", + "name": "x-amz-grant-read-acp" + }, + "GrantWriteACP": { + "location": "header", + "name": "x-amz-grant-write-acp" + }, + "Key": { + "required": true, + "location": "uri" + }, + "Metadata": { + "type": "map", + "location": "header", + "name": "x-amz-meta-", + "members": {}, + "keys": {} + }, + "MetadataDirective": { + "location": "header", + "name": "x-amz-metadata-directive" + }, + "ServerSideEncryption": { + "location": "header", + "name": "x-amz-server-side-encryption" + }, + "StorageClass": { + "location": "header", + "name": "x-amz-storage-class" + }, + "WebsiteRedirectLocation": { + "location": "header", + "name": "x-amz-website-redirect-location" + } + } + }, + "output": { + "type": "structure", + "members": { + "CopySourceVersionId": { + "location": "header", + "name": "x-amz-copy-source-version-id" + }, + "Expiration": { + "location": "header", + "name": "x-amz-expiration" + }, + "ServerSideEncryption": { + "location": "header", + "name": "x-amz-server-side-encryption" + }, + "ETag": {}, + "LastModified": {} + } + } + }, + "createBucket": { + "name": "CreateBucket", + "alias": "PutBucket", + "http": { + "method": "PUT", + "uri": "/{Bucket}" + }, + "input": { + "payload": "CreateBucketConfiguration", + "type": "structure", + "members": { + "ACL": { + "location": "header", + "name": "x-amz-acl" + }, + "Bucket": { + "required": true, + "location": "uri" + }, + "CreateBucketConfiguration": { + "type": "structure", + "members": { + "LocationConstraint": {} + } + }, + "GrantFullControl": { + "location": "header", + "name": "x-amz-grant-full-control" + }, + "GrantRead": { + "location": "header", + "name": "x-amz-grant-read" + }, + "GrantReadACP": { + "location": "header", + "name": "x-amz-grant-read-acp" + }, + "GrantWrite": { + "location": "header", + "name": "x-amz-grant-write" + }, + "GrantWriteACP": { + "location": "header", + "name": "x-amz-grant-write-acp" + } + } + }, + "output": { + "type": "structure", + "members": { + "Location": { + "location": "header", + "name": "Location" + } + } + } + }, + "createMultipartUpload": { + "name": "CreateMultipartUpload", + "alias": "InitiateMultipartUpload", + "http": { + "method": "POST", + "uri": "/{Bucket}/{Key}?uploads" + }, + "input": { + "type": "structure", + "members": { + "ACL": { + "location": "header", + "name": "x-amz-acl" + }, + "Bucket": { + "required": true, + "location": "uri" + }, + "CacheControl": { + "location": "header", + "name": "Cache-Control" + }, + "ContentDisposition": { + "location": "header", + "name": "Content-Disposition" + }, + "ContentEncoding": { + "location": "header", + "name": "Content-Encoding" + }, + "ContentLanguage": { + "location": "header", + "name": "Content-Language" + }, + "ContentType": { + "location": "header", + "name": "Content-Type" + }, + "Expires": { + "type": "timestamp", + "location": "header", + "name": "Expires" + }, + "GrantFullControl": { + "location": "header", + "name": "x-amz-grant-full-control" + }, + "GrantRead": { + "location": "header", + "name": "x-amz-grant-read" + }, + "GrantReadACP": { + "location": "header", + "name": "x-amz-grant-read-acp" + }, + "GrantWriteACP": { + "location": "header", + "name": "x-amz-grant-write-acp" + }, + "Key": { + "required": true, + "location": "uri" + }, + "Metadata": { + "type": "map", + "location": "header", + "name": "x-amz-meta-", + "members": {}, + "keys": {} + }, + "ServerSideEncryption": { + "location": "header", + "name": "x-amz-server-side-encryption" + }, + "StorageClass": { + "location": "header", + "name": "x-amz-storage-class" + }, + "WebsiteRedirectLocation": { + "location": "header", + "name": "x-amz-website-redirect-location" + } + } + }, + "output": { + "type": "structure", + "members": { + "Bucket": { + "name": "Bucket" + }, + "Key": {}, + "ServerSideEncryption": { + "location": "header", + "name": "x-amz-server-side-encryption" + }, + "UploadId": {} + } + } + }, + "deleteBucket": { + "name": "DeleteBucket", + "http": { + "method": "DELETE", + "uri": "/{Bucket}" + }, + "input": { + "type": "structure", + "members": { + "Bucket": { + "required": true, + "location": "uri" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteBucketCors": { + "name": "DeleteBucketCors", + "http": { + "method": "DELETE", + "uri": "/{Bucket}?cors" + }, + "input": { + "type": "structure", + "members": { + "Bucket": { + "required": true, + "location": "uri" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteBucketLifecycle": { + "name": "DeleteBucketLifecycle", + "http": { + "method": "DELETE", + "uri": "/{Bucket}?lifecycle" + }, + "input": { + "type": "structure", + "members": { + "Bucket": { + "required": true, + "location": "uri" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteBucketPolicy": { + "name": "DeleteBucketPolicy", + "http": { + "method": "DELETE", + "uri": "/{Bucket}?policy" + }, + "input": { + "type": "structure", + "members": { + "Bucket": { + "required": true, + "location": "uri" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteBucketTagging": { + "name": "DeleteBucketTagging", + "http": { + "method": "DELETE", + "uri": "/{Bucket}?tagging" + }, + "input": { + "type": "structure", + "members": { + "Bucket": { + "required": true, + "location": "uri" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteBucketWebsite": { + "name": "DeleteBucketWebsite", + "http": { + "method": "DELETE", + "uri": "/{Bucket}?website" + }, + "input": { + "type": "structure", + "members": { + "Bucket": { + "required": true, + "location": "uri" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteObject": { + "name": "DeleteObject", + "http": { + "method": "DELETE", + "uri": "/{Bucket}/{Key}?versionId={VersionId}" + }, + "input": { + "type": "structure", + "members": { + "Bucket": { + "required": true, + "location": "uri" + }, + "Key": { + "required": true, + "location": "uri" + }, + "MFA": { + "location": "header", + "name": "x-amz-mfa" + }, + "VersionId": { + "location": "uri" + } + } + }, + "output": { + "type": "structure", + "members": { + "DeleteMarker": { + "type": "boolean", + "location": "header", + "name": "x-amz-delete-marker" + }, + "VersionId": { + "location": "header", + "name": "x-amz-version-id" + } + } + } + }, + "deleteObjects": { + "name": "DeleteObjects", + "alias": "DeleteMultipleObjects", + "http": { + "method": "POST", + "uri": "/{Bucket}?delete" + }, + "input": { + "payload": "Delete", + "type": "structure", + "members": { + "Bucket": { + "required": true, + "location": "uri" + }, + "Delete": { + "type": "structure", + "required": true, + "members": { + "Objects": { + "type": "list", + "required": true, + "name": "Object", + "members": { + "type": "structure", + "members": { + "Key": { + "required": true + }, + "VersionId": {} + } + }, + "flattened": true + }, + "Quiet": { + "type": "boolean" + } + } + }, + "MFA": { + "location": "header", + "name": "x-amz-mfa" + } + } + }, + "output": { + "type": "structure", + "members": { + "Deleted": { + "type": "list", + "members": { + "type": "structure", + "members": { + "DeleteMarker": { + "type": "boolean" + }, + "DeleteMarkerVersionId": {}, + "Key": {}, + "VersionId": {} + } + }, + "flattened": true + }, + "Error": { + "type": "list", + "name": "Errors", + "members": { + "type": "structure", + "members": { + "Code": {}, + "Key": {}, + "Message": {}, + "VersionId": {} + } + }, + "flattened": true + } + } + } + }, + "getBucketAcl": { + "name": "GetBucketAcl", + "http": { + "method": "GET", + "uri": "/{Bucket}?acl" + }, + "input": { + "type": "structure", + "members": { + "Bucket": { + "required": true, + "location": "uri" + } + } + }, + "output": { + "type": "structure", + "members": { + "AccessControlList": { + "type": "list", + "name": "Grants", + "members": { + "type": "structure", + "name": "Grant", + "members": { + "Grantee": { + "type": "structure", + "xmlns": { + "uri": "http://www.w3.org/2001/XMLSchema-instance", + "prefix": "xsi" + }, + "members": { + "DisplayName": {}, + "EmailAddress": {}, + "ID": {}, + "xsi:type": { + "name": "Type", + "attribute": true + }, + "URI": {} + } + }, + "Permission": {} + } + } + }, + "Owner": { + "type": "structure", + "members": { + "DisplayName": {}, + "ID": {} + } + } + } + } + }, + "getBucketCors": { + "name": "GetBucketCors", + "http": { + "method": "GET", + "uri": "/{Bucket}?cors" + }, + "input": { + "type": "structure", + "members": { + "Bucket": { + "required": true, + "location": "uri" + } + } + }, + "output": { + "type": "structure", + "members": { + "CORSRule": { + "type": "list", + "name": "CORSRules", + "members": { + "type": "structure", + "members": { + "AllowedHeader": { + "type": "list", + "name": "AllowedHeaders", + "members": {}, + "flattened": true + }, + "AllowedMethod": { + "type": "list", + "name": "AllowedMethods", + "members": {}, + "flattened": true + }, + "AllowedOrigin": { + "type": "list", + "name": "AllowedOrigins", + "members": {}, + "flattened": true + }, + "ExposeHeader": { + "type": "list", + "name": "ExposeHeaders", + "members": {}, + "flattened": true + }, + "MaxAgeSeconds": { + "type": "integer" + } + } + }, + "flattened": true + } + } + } + }, + "getBucketLifecycle": { + "name": "GetBucketLifecycle", + "http": { + "method": "GET", + "uri": "/{Bucket}?lifecycle" + }, + "input": { + "type": "structure", + "members": { + "Bucket": { + "required": true, + "location": "uri" + } + } + }, + "output": { + "type": "structure", + "members": { + "Rule": { + "type": "list", + "name": "Rules", + "members": { + "type": "structure", + "members": { + "Expiration": { + "type": "structure", + "members": { + "Date": { + "type": "timestamp", + "format": "iso8601" + }, + "Days": { + "type": "integer" + } + } + }, + "ID": {}, + "Prefix": {}, + "Status": {}, + "Transition": { + "type": "structure", + "members": { + "Date": { + "type": "timestamp", + "format": "iso8601" + }, + "Days": { + "type": "integer" + }, + "StorageClass": {} + } + } + } + }, + "flattened": true + } + } + } + }, + "getBucketLocation": { + "name": "GetBucketLocation", + "http": { + "method": "GET", + "uri": "/{Bucket}?location" + }, + "input": { + "type": "structure", + "members": { + "Bucket": { + "required": true, + "location": "uri" + } + } + }, + "output": { + "type": "structure", + "members": { + "LocationConstraint": {} + } + } + }, + "getBucketLogging": { + "name": "GetBucketLogging", + "http": { + "method": "GET", + "uri": "/{Bucket}?logging" + }, + "input": { + "type": "structure", + "members": { + "Bucket": { + "required": true, + "location": "uri" + } + } + }, + "output": { + "type": "structure", + "members": { + "LoggingEnabled": { + "type": "structure", + "members": { + "TargetBucket": {}, + "TargetGrants": { + "type": "list", + "members": { + "type": "structure", + "name": "Grant", + "members": { + "Grantee": { + "type": "structure", + "xmlns": { + "uri": "http://www.w3.org/2001/XMLSchema-instance", + "prefix": "xsi" + }, + "members": { + "DisplayName": {}, + "EmailAddress": {}, + "ID": {}, + "xsi:type": { + "name": "Type", + "attribute": true + }, + "URI": {} + } + }, + "Permission": {} + } + } + }, + "TargetPrefix": {} + } + } + } + } + }, + "getBucketNotification": { + "name": "GetBucketNotification", + "http": { + "method": "GET", + "uri": "/{Bucket}?notification" + }, + "input": { + "type": "structure", + "members": { + "Bucket": { + "required": true, + "location": "uri" + } + } + }, + "output": { + "type": "structure", + "members": { + "TopicConfiguration": { + "type": "structure", + "members": { + "Event": {}, + "Topic": {} + } + } + } + } + }, + "getBucketPolicy": { + "name": "GetBucketPolicy", + "http": { + "method": "GET", + "uri": "/{Bucket}?policy" + }, + "input": { + "type": "structure", + "members": { + "Bucket": { + "required": true, + "location": "uri" + } + } + }, + "output": { + "type": "structure", + "members": { + "Policy": {} + }, + "payload": "Policy" + } + }, + "getBucketRequestPayment": { + "name": "GetBucketRequestPayment", + "http": { + "method": "GET", + "uri": "/{Bucket}?requestPayment" + }, + "input": { + "type": "structure", + "members": { + "Bucket": { + "required": true, + "location": "uri" + } + } + }, + "output": { + "type": "structure", + "members": { + "Payer": {} + } + } + }, + "getBucketTagging": { + "name": "GetBucketTagging", + "http": { + "method": "GET", + "uri": "/{Bucket}?tagging" + }, + "input": { + "type": "structure", + "members": { + "Bucket": { + "required": true, + "location": "uri" + } + } + }, + "output": { + "type": "structure", + "members": { + "TagSet": { + "type": "list", + "members": { + "type": "structure", + "name": "Tag", + "members": { + "Key": {}, + "Value": {} + } + } + } + } + } + }, + "getBucketVersioning": { + "name": "GetBucketVersioning", + "http": { + "method": "GET", + "uri": "/{Bucket}?versioning" + }, + "input": { + "type": "structure", + "members": { + "Bucket": { + "required": true, + "location": "uri" + } + } + }, + "output": { + "type": "structure", + "members": { + "MFADelete": {}, + "Status": {} + } + } + }, + "getBucketWebsite": { + "name": "GetBucketWebsite", + "http": { + "method": "GET", + "uri": "/{Bucket}?website" + }, + "input": { + "type": "structure", + "members": { + "Bucket": { + "required": true, + "location": "uri" + } + } + }, + "output": { + "type": "structure", + "members": { + "ErrorDocument": { + "type": "structure", + "members": { + "Key": {} + } + }, + "IndexDocument": { + "type": "structure", + "members": { + "Suffix": {} + } + }, + "RedirectAllRequestsTo": { + "type": "structure", + "members": { + "HostName": {}, + "Protocol": {} + } + }, + "RoutingRules": { + "type": "list", + "members": { + "type": "structure", + "name": "RoutingRule", + "members": { + "Condition": { + "type": "structure", + "members": { + "HttpErrorCodeReturnedEquals": {}, + "KeyPrefixEquals": {} + } + }, + "Redirect": { + "type": "structure", + "members": { + "HostName": {}, + "HttpRedirectCode": {}, + "Protocol": {}, + "ReplaceKeyPrefixWith": {}, + "ReplaceKeyWith": {} + } + } + } + } + } + } + } + }, + "getObject": { + "name": "GetObject", + "http": { + "method": "GET", + "uri": "/{Bucket}/{Key}?versionId={VersionId}&response-content-type={ResponseContentType}&response-content-language={ResponseContentLanguage}&response-expires={ResponseExpires}&response-cache-control={ResponseCacheControl}&response-content-disposition={ResponseContentDisposition}&response-content-encoding={ResponseContentEncoding}" + }, + "input": { + "type": "structure", + "members": { + "Bucket": { + "required": true, + "location": "uri" + }, + "IfMatch": { + "location": "header", + "name": "If-Match" + }, + "IfModifiedSince": { + "type": "timestamp", + "location": "header", + "name": "If-Modified-Since" + }, + "IfNoneMatch": { + "location": "header", + "name": "If-None-Match" + }, + "IfUnmodifiedSince": { + "type": "timestamp", + "location": "header", + "name": "If-Unmodified-Since" + }, + "Key": { + "required": true, + "location": "uri" + }, + "Range": { + "location": "header", + "name": "Range" + }, + "ResponseCacheControl": { + "location": "uri" + }, + "ResponseContentDisposition": { + "location": "uri" + }, + "ResponseContentEncoding": { + "location": "uri" + }, + "ResponseContentLanguage": { + "location": "uri" + }, + "ResponseContentType": { + "location": "uri" + }, + "ResponseExpires": { + "type": "timestamp", + "location": "uri" + }, + "VersionId": { + "location": "uri" + } + } + }, + "output": { + "type": "structure", + "members": { + "AcceptRanges": { + "location": "header", + "name": "accept-ranges" + }, + "Body": { + "type": "binary", + "streaming": true + }, + "CacheControl": { + "location": "header", + "name": "Cache-Control" + }, + "ContentDisposition": { + "location": "header", + "name": "Content-Disposition" + }, + "ContentEncoding": { + "location": "header", + "name": "Content-Encoding" + }, + "ContentLanguage": { + "location": "header", + "name": "Content-Language" + }, + "ContentLength": { + "type": "integer", + "location": "header", + "name": "Content-Length" + }, + "ContentType": { + "location": "header", + "name": "Content-Type" + }, + "DeleteMarker": { + "type": "boolean", + "location": "header", + "name": "x-amz-delete-marker" + }, + "ETag": { + "location": "header", + "name": "ETag" + }, + "Expiration": { + "location": "header", + "name": "x-amz-expiration" + }, + "Expires": { + "type": "timestamp", + "location": "header", + "name": "Expires" + }, + "LastModified": { + "type": "timestamp", + "location": "header", + "name": "Last-Modified" + }, + "Metadata": { + "type": "map", + "location": "header", + "name": "x-amz-meta-", + "members": {}, + "keys": {} + }, + "MissingMeta": { + "type": "integer", + "location": "header", + "name": "x-amz-missing-meta" + }, + "Restore": { + "location": "header", + "name": "x-amz-restore" + }, + "ServerSideEncryption": { + "location": "header", + "name": "x-amz-server-side-encryption" + }, + "VersionId": { + "location": "header", + "name": "x-amz-version-id" + }, + "WebsiteRedirectLocation": { + "location": "header", + "name": "x-amz-website-redirect-location" + } + }, + "payload": "Body" + } + }, + "getObjectAcl": { + "name": "GetObjectAcl", + "http": { + "method": "GET", + "uri": "/{Bucket}/{Key}?acl&versionId={VersionId}" + }, + "input": { + "type": "structure", + "members": { + "Bucket": { + "required": true, + "location": "uri" + }, + "Key": { + "required": true, + "location": "uri" + }, + "VersionId": { + "location": "uri" + } + } + }, + "output": { + "type": "structure", + "members": { + "AccessControlList": { + "type": "list", + "name": "Grants", + "members": { + "type": "structure", + "name": "Grant", + "members": { + "Grantee": { + "type": "structure", + "xmlns": { + "uri": "http://www.w3.org/2001/XMLSchema-instance", + "prefix": "xsi" + }, + "members": { + "DisplayName": {}, + "EmailAddress": {}, + "ID": {}, + "xsi:type": { + "name": "Type", + "attribute": true + }, + "URI": {} + } + }, + "Permission": {} + } + } + }, + "Owner": { + "type": "structure", + "members": { + "DisplayName": {}, + "ID": {} + } + } + } + } + }, + "getObjectTorrent": { + "name": "GetObjectTorrent", + "http": { + "method": "GET", + "uri": "/{Bucket}/{Key}?torrent" + }, + "input": { + "type": "structure", + "members": { + "Bucket": { + "required": true, + "location": "uri" + }, + "Key": { + "required": true, + "location": "uri" + } + } + }, + "output": { + "type": "structure", + "members": { + "Body": { + "type": "binary", + "streaming": true + } + }, + "payload": "Body" + } + }, + "headBucket": { + "name": "HeadBucket", + "http": { + "method": "HEAD", + "uri": "/{Bucket}" + }, + "input": { + "type": "structure", + "members": { + "Bucket": { + "required": true, + "location": "uri" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "headObject": { + "name": "HeadObject", + "http": { + "method": "HEAD", + "uri": "/{Bucket}/{Key}?versionId={VersionId}" + }, + "input": { + "type": "structure", + "members": { + "Bucket": { + "required": true, + "location": "uri" + }, + "IfMatch": { + "location": "header", + "name": "If-Match" + }, + "IfModifiedSince": { + "type": "timestamp", + "location": "header", + "name": "If-Modified-Since" + }, + "IfNoneMatch": { + "location": "header", + "name": "If-None-Match" + }, + "IfUnmodifiedSince": { + "type": "timestamp", + "location": "header", + "name": "If-Unmodified-Since" + }, + "Key": { + "required": true, + "location": "uri" + }, + "Range": { + "location": "header", + "name": "Range" + }, + "VersionId": { + "location": "uri" + } + } + }, + "output": { + "type": "structure", + "members": { + "AcceptRanges": { + "location": "header", + "name": "accept-ranges" + }, + "CacheControl": { + "location": "header", + "name": "Cache-Control" + }, + "ContentDisposition": { + "location": "header", + "name": "Content-Disposition" + }, + "ContentEncoding": { + "location": "header", + "name": "Content-Encoding" + }, + "ContentLanguage": { + "location": "header", + "name": "Content-Language" + }, + "ContentLength": { + "type": "integer", + "location": "header", + "name": "Content-Length" + }, + "ContentType": { + "location": "header", + "name": "Content-Type" + }, + "DeleteMarker": { + "type": "boolean", + "location": "header", + "name": "x-amz-delete-marker" + }, + "ETag": { + "location": "header", + "name": "ETag" + }, + "Expiration": { + "location": "header", + "name": "x-amz-expiration" + }, + "Expires": { + "type": "timestamp", + "location": "header", + "name": "Expires" + }, + "LastModified": { + "type": "timestamp", + "location": "header", + "name": "Last-Modified" + }, + "Metadata": { + "type": "map", + "location": "header", + "name": "x-amz-meta-", + "members": {}, + "keys": {} + }, + "MissingMeta": { + "type": "integer", + "location": "header", + "name": "x-amz-missing-meta" + }, + "Restore": { + "location": "header", + "name": "x-amz-restore" + }, + "ServerSideEncryption": { + "location": "header", + "name": "x-amz-server-side-encryption" + }, + "VersionId": { + "location": "header", + "name": "x-amz-version-id" + }, + "WebsiteRedirectLocation": { + "location": "header", + "name": "x-amz-website-redirect-location" + } + } + } + }, + "listBuckets": { + "name": "ListBuckets", + "alias": "GetService", + "http": { + "method": "GET", + "uri": "/" + }, + "input": { + "type": "structure", + "members": {} + }, + "output": { + "type": "structure", + "members": { + "Buckets": { + "type": "list", + "members": { + "type": "structure", + "name": "Bucket", + "members": { + "CreationDate": { + "type": "timestamp" + }, + "Name": {} + } + } + }, + "Owner": { + "type": "structure", + "members": { + "DisplayName": {}, + "ID": {} + } + } + } + } + }, + "listMultipartUploads": { + "name": "ListMultipartUploads", + "http": { + "method": "GET", + "uri": "/{Bucket}?uploads&prefix={Prefix}&delimiter={Delimiter}&max-uploads={MaxUploads}&key-marker={KeyMarker}&upload-id-marker={UploadIdMarker}&encoding-type={EncodingType}" + }, + "input": { + "type": "structure", + "members": { + "Bucket": { + "required": true, + "location": "uri" + }, + "Delimiter": { + "location": "uri" + }, + "EncodingType": { + "location": "uri" + }, + "KeyMarker": { + "location": "uri" + }, + "MaxUploads": { + "type": "integer", + "location": "uri" + }, + "Prefix": { + "location": "uri" + }, + "UploadIdMarker": { + "location": "uri" + } + } + }, + "output": { + "type": "structure", + "members": { + "Bucket": {}, + "CommonPrefixes": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Prefix": {} + } + }, + "flattened": true + }, + "EncodingType": { + "location": "header", + "name": "Encoding-Type" + }, + "IsTruncated": { + "type": "boolean" + }, + "KeyMarker": {}, + "MaxUploads": { + "type": "integer" + }, + "NextKeyMarker": {}, + "NextUploadIdMarker": {}, + "Prefix": {}, + "UploadIdMarker": {}, + "Upload": { + "type": "list", + "name": "Uploads", + "members": { + "type": "structure", + "members": { + "Initiated": { + "type": "timestamp" + }, + "Initiator": { + "type": "structure", + "members": { + "DisplayName": {}, + "ID": {} + } + }, + "Key": {}, + "Owner": { + "type": "structure", + "members": { + "DisplayName": {}, + "ID": {} + } + }, + "StorageClass": {}, + "UploadId": {} + } + }, + "flattened": true + } + } + } + }, + "listObjectVersions": { + "name": "ListObjectVersions", + "alias": "GetBucketObjectVersions", + "http": { + "method": "GET", + "uri": "/{Bucket}?versions&delimiter={Delimiter}&key-marker={KeyMarker}&max-keys={MaxKeys}&prefix={Prefix}&version-id-marker={VersionIdMarker}&encoding-type={EncodingType}" + }, + "input": { + "type": "structure", + "members": { + "Bucket": { + "required": true, + "location": "uri" + }, + "Delimiter": { + "location": "uri" + }, + "EncodingType": { + "location": "uri" + }, + "KeyMarker": { + "location": "uri" + }, + "MaxKeys": { + "type": "integer", + "location": "uri" + }, + "Prefix": { + "location": "uri" + }, + "VersionIdMarker": { + "location": "uri" + } + } + }, + "output": { + "type": "structure", + "members": { + "CommonPrefixes": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Prefix": {} + } + }, + "flattened": true + }, + "DeleteMarker": { + "type": "list", + "name": "DeleteMarkers", + "members": { + "type": "structure", + "members": { + "IsLatest": { + "type": "boolean" + }, + "Key": {}, + "LastModified": { + "type": "timestamp" + }, + "Owner": { + "type": "structure", + "members": { + "DisplayName": {}, + "ID": {} + } + }, + "VersionId": {} + } + }, + "flattened": true + }, + "EncodingType": { + "location": "header", + "name": "Encoding-Type" + }, + "IsTruncated": { + "type": "boolean" + }, + "KeyMarker": {}, + "MaxKeys": { + "type": "integer" + }, + "Name": {}, + "NextKeyMarker": {}, + "NextVersionIdMarker": {}, + "Prefix": {}, + "VersionIdMarker": {}, + "Version": { + "type": "list", + "name": "Versions", + "members": { + "type": "structure", + "members": { + "ETag": {}, + "IsLatest": { + "type": "boolean" + }, + "Key": {}, + "LastModified": { + "type": "timestamp" + }, + "Owner": { + "type": "structure", + "members": { + "DisplayName": {}, + "ID": {} + } + }, + "Size": {}, + "StorageClass": {}, + "VersionId": {} + } + }, + "flattened": true + } + } + } + }, + "listObjects": { + "name": "ListObjects", + "alias": "GetBucket", + "http": { + "method": "GET", + "uri": "/{Bucket}?delimiter={Delimiter}&marker={Marker}&max-keys={MaxKeys}&prefix={Prefix}&encoding-type={EncodingType}" + }, + "input": { + "type": "structure", + "members": { + "Bucket": { + "required": true, + "location": "uri" + }, + "Delimiter": { + "location": "uri" + }, + "EncodingType": { + "location": "uri" + }, + "Marker": { + "location": "uri" + }, + "MaxKeys": { + "type": "integer", + "location": "uri" + }, + "Prefix": { + "location": "uri" + } + } + }, + "output": { + "type": "structure", + "members": { + "CommonPrefixes": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Prefix": {} + } + }, + "flattened": true + }, + "Contents": { + "type": "list", + "members": { + "type": "structure", + "members": { + "ETag": {}, + "Key": {}, + "LastModified": { + "type": "timestamp" + }, + "Owner": { + "type": "structure", + "members": { + "DisplayName": {}, + "ID": {} + } + }, + "Size": { + "type": "integer" + }, + "StorageClass": {} + } + }, + "flattened": true + }, + "EncodingType": { + "location": "header", + "name": "Encoding-Type" + }, + "IsTruncated": { + "type": "boolean" + }, + "Marker": {}, + "MaxKeys": { + "type": "integer" + }, + "Name": {}, + "NextMarker": {}, + "Prefix": {} + } + } + }, + "listParts": { + "name": "ListParts", + "http": { + "method": "GET", + "uri": "/{Bucket}/{Key}?uploadId={UploadId}&max-parts={MaxParts}&part-number-marker={PartNumberMarker}" + }, + "input": { + "type": "structure", + "members": { + "Bucket": { + "required": true, + "location": "uri" + }, + "Key": { + "required": true, + "location": "uri" + }, + "MaxParts": { + "type": "integer", + "location": "uri" + }, + "PartNumberMarker": { + "type": "integer", + "location": "uri" + }, + "UploadId": { + "required": true, + "location": "uri" + } + } + }, + "output": { + "type": "structure", + "members": { + "Bucket": {}, + "Initiator": { + "type": "structure", + "members": { + "DisplayName": {}, + "ID": {} + } + }, + "IsTruncated": { + "type": "boolean" + }, + "Key": {}, + "MaxParts": { + "type": "integer" + }, + "NextPartNumberMarker": { + "type": "integer" + }, + "Owner": { + "type": "structure", + "members": { + "DisplayName": {}, + "ID": {} + } + }, + "PartNumberMarker": { + "type": "integer" + }, + "Part": { + "type": "list", + "name": "Parts", + "members": { + "type": "structure", + "members": { + "ETag": {}, + "LastModified": { + "type": "timestamp" + }, + "PartNumber": { + "type": "integer" + }, + "Size": { + "type": "integer" + } + } + }, + "flattened": true + }, + "StorageClass": {}, + "UploadId": {} + } + } + }, + "putBucketAcl": { + "name": "PutBucketAcl", + "http": { + "method": "PUT", + "uri": "/{Bucket}?acl" + }, + "input": { + "payload": "AccessControlPolicy", + "type": "structure", + "members": { + "ACL": { + "location": "header", + "name": "x-amz-acl" + }, + "AccessControlPolicy": { + "type": "structure", + "members": { + "Grants": { + "type": "list", + "name": "AccessControlList", + "members": { + "type": "structure", + "name": "Grant", + "members": { + "Grantee": { + "type": "structure", + "xmlns": { + "uri": "http://www.w3.org/2001/XMLSchema-instance", + "prefix": "xsi" + }, + "members": { + "DisplayName": {}, + "EmailAddress": {}, + "ID": {}, + "Type": { + "required": true, + "name": "xsi:type", + "attribute": true + }, + "URI": {} + } + }, + "Permission": {} + } + } + }, + "Owner": { + "type": "structure", + "members": { + "DisplayName": {}, + "ID": {} + } + } + } + }, + "Bucket": { + "required": true, + "location": "uri" + }, + "ContentMD5": { + "location": "header", + "name": "Content-MD5" + }, + "GrantFullControl": { + "location": "header", + "name": "x-amz-grant-full-control" + }, + "GrantRead": { + "location": "header", + "name": "x-amz-grant-read" + }, + "GrantReadACP": { + "location": "header", + "name": "x-amz-grant-read-acp" + }, + "GrantWrite": { + "location": "header", + "name": "x-amz-grant-write" + }, + "GrantWriteACP": { + "location": "header", + "name": "x-amz-grant-write-acp" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "putBucketCors": { + "name": "PutBucketCors", + "http": { + "method": "PUT", + "uri": "/{Bucket}?cors" + }, + "input": { + "payload": "CORSConfiguration", + "type": "structure", + "members": { + "Bucket": { + "required": true, + "location": "uri" + }, + "CORSConfiguration": { + "type": "structure", + "members": { + "CORSRules": { + "type": "list", + "name": "CORSRule", + "members": { + "type": "structure", + "members": { + "AllowedHeaders": { + "type": "list", + "name": "AllowedHeader", + "members": {}, + "flattened": true + }, + "AllowedMethods": { + "type": "list", + "name": "AllowedMethod", + "members": {}, + "flattened": true + }, + "AllowedOrigins": { + "type": "list", + "name": "AllowedOrigin", + "members": {}, + "flattened": true + }, + "ExposeHeaders": { + "type": "list", + "name": "ExposeHeader", + "members": {}, + "flattened": true + }, + "MaxAgeSeconds": { + "type": "integer" + } + } + }, + "flattened": true + } + } + }, + "ContentMD5": { + "location": "header", + "name": "Content-MD5" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "putBucketLifecycle": { + "name": "PutBucketLifecycle", + "http": { + "method": "PUT", + "uri": "/{Bucket}?lifecycle" + }, + "input": { + "payload": "LifecycleConfiguration", + "type": "structure", + "members": { + "Bucket": { + "required": true, + "location": "uri" + }, + "ContentMD5": { + "location": "header", + "name": "Content-MD5" + }, + "LifecycleConfiguration": { + "type": "structure", + "members": { + "Rules": { + "type": "list", + "required": true, + "name": "Rule", + "members": { + "type": "structure", + "members": { + "Expiration": { + "type": "structure", + "members": { + "Date": { + "type": "timestamp", + "format": "iso8601" + }, + "Days": { + "type": "integer" + } + } + }, + "ID": {}, + "Prefix": { + "required": true + }, + "Status": { + "required": true + }, + "Transition": { + "type": "structure", + "members": { + "Date": { + "type": "timestamp", + "format": "iso8601" + }, + "Days": { + "type": "integer" + }, + "StorageClass": {} + } + } + } + }, + "flattened": true + } + } + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "putBucketLogging": { + "name": "PutBucketLogging", + "http": { + "method": "PUT", + "uri": "/{Bucket}?logging" + }, + "input": { + "payload": "BucketLoggingStatus", + "type": "structure", + "members": { + "Bucket": { + "required": true, + "location": "uri" + }, + "BucketLoggingStatus": { + "type": "structure", + "required": true, + "members": { + "LoggingEnabled": { + "type": "structure", + "members": { + "TargetBucket": {}, + "TargetGrants": { + "type": "list", + "members": { + "type": "structure", + "name": "Grant", + "members": { + "Grantee": { + "type": "structure", + "xmlns": { + "uri": "http://www.w3.org/2001/XMLSchema-instance", + "prefix": "xsi" + }, + "members": { + "DisplayName": {}, + "EmailAddress": {}, + "ID": {}, + "Type": { + "required": true, + "name": "xsi:type", + "attribute": true + }, + "URI": {} + } + }, + "Permission": {} + } + } + }, + "TargetPrefix": {} + } + } + } + }, + "ContentMD5": { + "location": "header", + "name": "Content-MD5" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "putBucketNotification": { + "name": "PutBucketNotification", + "http": { + "method": "PUT", + "uri": "/{Bucket}?notification" + }, + "input": { + "payload": "NotificationConfiguration", + "type": "structure", + "members": { + "Bucket": { + "required": true, + "location": "uri" + }, + "ContentMD5": { + "location": "header", + "name": "Content-MD5" + }, + "NotificationConfiguration": { + "type": "structure", + "required": true, + "members": { + "TopicConfiguration": { + "type": "structure", + "required": true, + "members": { + "Event": {}, + "Topic": {} + } + } + } + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "putBucketPolicy": { + "name": "PutBucketPolicy", + "http": { + "method": "PUT", + "uri": "/{Bucket}?policy" + }, + "input": { + "payload": "Policy", + "type": "structure", + "members": { + "Bucket": { + "required": true, + "location": "uri" + }, + "ContentMD5": { + "location": "header", + "name": "Content-MD5" + }, + "Policy": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "putBucketRequestPayment": { + "name": "PutBucketRequestPayment", + "http": { + "method": "PUT", + "uri": "/{Bucket}?requestPayment" + }, + "input": { + "payload": "RequestPaymentConfiguration", + "type": "structure", + "members": { + "Bucket": { + "required": true, + "location": "uri" + }, + "ContentMD5": { + "location": "header", + "name": "Content-MD5" + }, + "RequestPaymentConfiguration": { + "type": "structure", + "required": true, + "members": { + "Payer": { + "required": true + } + } + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "putBucketTagging": { + "name": "PutBucketTagging", + "http": { + "method": "PUT", + "uri": "/{Bucket}?tagging" + }, + "input": { + "payload": "Tagging", + "type": "structure", + "members": { + "Bucket": { + "required": true, + "location": "uri" + }, + "ContentMD5": { + "location": "header", + "name": "Content-MD5" + }, + "Tagging": { + "type": "structure", + "required": true, + "members": { + "TagSet": { + "type": "list", + "required": true, + "members": { + "type": "structure", + "required": true, + "name": "Tag", + "members": { + "Key": { + "required": true + }, + "Value": { + "required": true + } + } + } + } + } + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "putBucketVersioning": { + "name": "PutBucketVersioning", + "http": { + "method": "PUT", + "uri": "/{Bucket}?versioning" + }, + "input": { + "payload": "VersioningConfiguration", + "type": "structure", + "members": { + "Bucket": { + "required": true, + "location": "uri" + }, + "ContentMD5": { + "location": "header", + "name": "Content-MD5" + }, + "MFA": { + "location": "header", + "name": "x-amz-mfa" + }, + "VersioningConfiguration": { + "type": "structure", + "required": true, + "members": { + "MFADelete": {}, + "Status": {} + } + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "putBucketWebsite": { + "name": "PutBucketWebsite", + "http": { + "method": "PUT", + "uri": "/{Bucket}?website" + }, + "input": { + "payload": "WebsiteConfiguration", + "type": "structure", + "members": { + "Bucket": { + "required": true, + "location": "uri" + }, + "ContentMD5": { + "location": "header", + "name": "Content-MD5" + }, + "WebsiteConfiguration": { + "type": "structure", + "required": true, + "members": { + "ErrorDocument": { + "type": "structure", + "members": { + "Key": { + "required": true + } + } + }, + "IndexDocument": { + "type": "structure", + "members": { + "Suffix": { + "required": true + } + } + }, + "RedirectAllRequestsTo": { + "type": "structure", + "members": { + "HostName": { + "required": true + }, + "Protocol": {} + } + }, + "RoutingRules": { + "type": "list", + "members": { + "type": "structure", + "name": "RoutingRule", + "members": { + "Condition": { + "type": "structure", + "members": { + "HttpErrorCodeReturnedEquals": {}, + "KeyPrefixEquals": {} + } + }, + "Redirect": { + "type": "structure", + "required": true, + "members": { + "HostName": {}, + "HttpRedirectCode": {}, + "Protocol": {}, + "ReplaceKeyPrefixWith": {}, + "ReplaceKeyWith": {} + } + } + } + } + } + } + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "putObject": { + "name": "PutObject", + "http": { + "method": "PUT", + "uri": "/{Bucket}/{Key}" + }, + "input": { + "payload": "Body", + "type": "structure", + "members": { + "ACL": { + "location": "header", + "name": "x-amz-acl" + }, + "Body": { + "type": "binary", + "streaming": true + }, + "Bucket": { + "required": true, + "location": "uri" + }, + "CacheControl": { + "location": "header", + "name": "Cache-Control" + }, + "ContentDisposition": { + "location": "header", + "name": "Content-Disposition" + }, + "ContentEncoding": { + "location": "header", + "name": "Content-Encoding" + }, + "ContentLanguage": { + "location": "header", + "name": "Content-Language" + }, + "ContentLength": { + "type": "integer", + "location": "header", + "name": "Content-Length" + }, + "ContentMD5": { + "location": "header", + "name": "Content-MD5" + }, + "ContentType": { + "location": "header", + "name": "Content-Type" + }, + "Expires": { + "type": "timestamp", + "location": "header", + "name": "Expires" + }, + "GrantFullControl": { + "location": "header", + "name": "x-amz-grant-full-control" + }, + "GrantRead": { + "location": "header", + "name": "x-amz-grant-read" + }, + "GrantReadACP": { + "location": "header", + "name": "x-amz-grant-read-acp" + }, + "GrantWriteACP": { + "location": "header", + "name": "x-amz-grant-write-acp" + }, + "Key": { + "required": true, + "location": "uri" + }, + "Metadata": { + "type": "map", + "location": "header", + "name": "x-amz-meta-", + "members": {}, + "keys": {} + }, + "ServerSideEncryption": { + "location": "header", + "name": "x-amz-server-side-encryption" + }, + "StorageClass": { + "location": "header", + "name": "x-amz-storage-class" + }, + "WebsiteRedirectLocation": { + "location": "header", + "name": "x-amz-website-redirect-location" + } + } + }, + "output": { + "type": "structure", + "members": { + "ETag": { + "location": "header", + "name": "ETag" + }, + "Expiration": { + "type": "timestamp", + "location": "header", + "name": "x-amz-expiration" + }, + "ServerSideEncryption": { + "location": "header", + "name": "x-amz-server-side-encryption" + }, + "VersionId": { + "location": "header", + "name": "x-amz-version-id" + } + } + } + }, + "putObjectAcl": { + "name": "PutObjectAcl", + "http": { + "method": "PUT", + "uri": "/{Bucket}/{Key}?acl" + }, + "input": { + "payload": "AccessControlPolicy", + "type": "structure", + "members": { + "ACL": { + "location": "header", + "name": "x-amz-acl" + }, + "AccessControlPolicy": { + "type": "structure", + "members": { + "Grants": { + "type": "list", + "name": "AccessControlList", + "members": { + "type": "structure", + "name": "Grant", + "members": { + "Grantee": { + "type": "structure", + "xmlns": { + "uri": "http://www.w3.org/2001/XMLSchema-instance", + "prefix": "xsi" + }, + "members": { + "DisplayName": {}, + "EmailAddress": {}, + "ID": {}, + "Type": { + "required": true, + "name": "xsi:type", + "attribute": true + }, + "URI": {} + } + }, + "Permission": {} + } + } + }, + "Owner": { + "type": "structure", + "members": { + "DisplayName": {}, + "ID": {} + } + } + } + }, + "Bucket": { + "required": true, + "location": "uri" + }, + "ContentMD5": { + "location": "header", + "name": "Content-MD5" + }, + "GrantFullControl": { + "location": "header", + "name": "x-amz-grant-full-control" + }, + "GrantRead": { + "location": "header", + "name": "x-amz-grant-read" + }, + "GrantReadACP": { + "location": "header", + "name": "x-amz-grant-read-acp" + }, + "GrantWrite": { + "location": "header", + "name": "x-amz-grant-write" + }, + "GrantWriteACP": { + "location": "header", + "name": "x-amz-grant-write-acp" + }, + "Key": { + "required": true, + "location": "uri" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "restoreObject": { + "name": "RestoreObject", + "alias": "PostObjectRestore", + "http": { + "method": "POST", + "uri": "/{Bucket}/{Key}?restore" + }, + "input": { + "payload": "RestoreRequest", + "type": "structure", + "members": { + "Bucket": { + "required": true, + "location": "uri" + }, + "Key": { + "required": true, + "location": "uri" + }, + "RestoreRequest": { + "type": "structure", + "members": { + "Days": { + "type": "integer", + "required": true + } + } + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "uploadPart": { + "name": "UploadPart", + "http": { + "method": "PUT", + "uri": "/{Bucket}/{Key}?partNumber={PartNumber}&uploadId={UploadId}" + }, + "input": { + "payload": "Body", + "type": "structure", + "members": { + "Body": { + "type": "binary", + "streaming": true + }, + "Bucket": { + "required": true, + "location": "uri" + }, + "ContentLength": { + "type": "integer", + "location": "header", + "name": "Content-Length" + }, + "ContentMD5": { + "location": "header", + "name": "Content-MD5" + }, + "Key": { + "required": true, + "location": "uri" + }, + "PartNumber": { + "type": "integer", + "required": true, + "location": "uri" + }, + "UploadId": { + "required": true, + "location": "uri" + } + } + }, + "output": { + "type": "structure", + "members": { + "ETag": { + "location": "header", + "name": "ETag" + }, + "ServerSideEncryption": { + "location": "header", + "name": "x-amz-server-side-encryption" + } + } + } + }, + "uploadPartCopy": { + "name": "UploadPartCopy", + "http": { + "method": "PUT", + "uri": "/{Bucket}/{Key}?partNumber={PartNumber}&uploadId={UploadId}" + }, + "input": { + "type": "structure", + "members": { + "Bucket": { + "required": true, + "location": "uri" + }, + "CopySource": { + "required": true, + "location": "header", + "name": "x-amz-copy-source" + }, + "CopySourceIfMatch": { + "type": "timestamp", + "location": "header", + "name": "x-amz-copy-source-if-match" + }, + "CopySourceIfModifiedSince": { + "type": "timestamp", + "location": "header", + "name": "x-amz-copy-source-if-modified-since" + }, + "CopySourceIfNoneMatch": { + "type": "timestamp", + "location": "header", + "name": "x-amz-copy-source-if-none-match" + }, + "CopySourceIfUnmodifiedSince": { + "type": "timestamp", + "location": "header", + "name": "x-amz-copy-source-if-unmodified-since" + }, + "CopySourceRange": { + "location": "header", + "name": "x-amz-copy-source-range" + }, + "Key": { + "required": true, + "location": "uri" + }, + "PartNumber": { + "type": "integer", + "required": true, + "location": "uri" + }, + "UploadId": { + "required": true, + "location": "uri" + } + } + }, + "output": { + "type": "structure", + "members": { + "CopySourceVersionId": { + "location": "header", + "name": "x-amz-copy-source-version-id" + }, + "ServerSideEncryption": { + "location": "header", + "name": "x-amz-server-side-encryption" + }, + "ETag": {}, + "LastModified": { + "type": "timestamp" + } + } + } + } + }, + "pagination": { + "listMultipartUploads": { + "limitKey": "MaxUploads", + "moreResults": "IsTruncated", + "outputToken": [ + "NextKeyMarker", + "NextUploadIdMarker" + ], + "inputToken": [ + "KeyMarker", + "UploadIdMarker" + ], + "resultKey": "Uploads" + }, + "listObjectVersions": { + "moreResults": "IsTruncated", + "limitKey": "MaxKeys", + "outputToken": [ + "NextKeyMarker", + "NextVersionIdMarker" + ], + "inputToken": [ + "KeyMarker", + "VersionIdMarker" + ], + "resultKey": "Versions" + }, + "listObjects": { + "moreResults": "IsTruncated", + "limitKey": "MaxKeys", + "outputToken": "NextMarker or Contents[-1].Key", + "inputToken": "Marker", + "resultKey": [ + "Contents", + "CommonPrefixes" + ] + }, + "listParts": { + "moreResults": "IsTruncated", + "limitKey": "MaxParts", + "outputToken": "NextPartNumberMarker", + "inputToken": "PartNumberMarker", + "resultKey": "Parts" + } + }, + "waiters": { + "__default__": { + "interval": 5, + "maxAttempts": 20 + }, + "bucketExists": { + "operation": "HeadBucket", + "ignoreErrors": [ + "NoSuchBucket" + ], + "successType": "output" + }, + "bucketNotExists": { + "operation": "HeadBucket", + "successType": "error", + "successValue": 404 + }, + "objectExists": { + "operation": "HeadObject", + "ignoreErrors": [ + "NoSuchKey" + ], + "successType": "output" + }, + "objectNotExists": { + "operation": "HeadObject", + "successType": "error", + "successValue": 404 + } + } +} diff --git a/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/SES-2010-12-01.json b/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/SES-2010-12-01.json new file mode 100644 index 00000000..d8f1deb4 --- /dev/null +++ b/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/SES-2010-12-01.json @@ -0,0 +1,490 @@ +{ + "format": "query", + "apiVersion": "2010-12-01", + "endpointPrefix": "email", + "resultWrapped": true, + "serviceAbbreviation": "Amazon SES", + "serviceFullName": "Amazon Simple Email Service", + "signatureVersion": "v4", + "signingName": "ses", + "timestampFormat": "iso8601", + "operations": { + "deleteIdentity": { + "name": "DeleteIdentity", + "input": { + "type": "structure", + "members": { + "Identity": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteVerifiedEmailAddress": { + "name": "DeleteVerifiedEmailAddress", + "input": { + "type": "structure", + "members": { + "EmailAddress": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "getIdentityDkimAttributes": { + "name": "GetIdentityDkimAttributes", + "input": { + "type": "structure", + "members": { + "Identities": { + "type": "list", + "members": {}, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "DkimAttributes": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "DkimEnabled": { + "type": "boolean" + }, + "DkimVerificationStatus": {}, + "DkimTokens": { + "type": "list", + "members": {} + } + } + } + } + } + } + }, + "getIdentityNotificationAttributes": { + "name": "GetIdentityNotificationAttributes", + "input": { + "type": "structure", + "members": { + "Identities": { + "type": "list", + "members": {}, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "NotificationAttributes": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "BounceTopic": {}, + "ComplaintTopic": {}, + "ForwardingEnabled": { + "type": "boolean" + } + } + } + } + } + } + }, + "getIdentityVerificationAttributes": { + "name": "GetIdentityVerificationAttributes", + "input": { + "type": "structure", + "members": { + "Identities": { + "type": "list", + "members": {}, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "VerificationAttributes": { + "type": "map", + "keys": {}, + "members": { + "type": "structure", + "members": { + "VerificationStatus": {}, + "VerificationToken": {} + } + } + } + } + } + }, + "getSendQuota": { + "name": "GetSendQuota", + "input": { + "type": "structure", + "members": {} + }, + "output": { + "type": "structure", + "members": { + "Max24HourSend": { + "type": "float" + }, + "MaxSendRate": { + "type": "float" + }, + "SentLast24Hours": { + "type": "float" + } + } + } + }, + "getSendStatistics": { + "name": "GetSendStatistics", + "input": { + "type": "structure", + "members": {} + }, + "output": { + "type": "structure", + "members": { + "SendDataPoints": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Timestamp": { + "type": "timestamp" + }, + "DeliveryAttempts": { + "type": "integer" + }, + "Bounces": { + "type": "integer" + }, + "Complaints": { + "type": "integer" + }, + "Rejects": { + "type": "integer" + } + } + } + } + } + } + }, + "listIdentities": { + "name": "ListIdentities", + "input": { + "type": "structure", + "members": { + "IdentityType": {}, + "NextToken": {}, + "MaxItems": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "Identities": { + "type": "list", + "members": {} + }, + "NextToken": {} + } + } + }, + "listVerifiedEmailAddresses": { + "name": "ListVerifiedEmailAddresses", + "input": { + "type": "structure", + "members": {} + }, + "output": { + "type": "structure", + "members": { + "VerifiedEmailAddresses": { + "type": "list", + "members": {} + } + } + } + }, + "sendEmail": { + "name": "SendEmail", + "input": { + "type": "structure", + "members": { + "Source": { + "required": true + }, + "Destination": { + "type": "structure", + "members": { + "ToAddresses": { + "type": "list", + "members": {} + }, + "CcAddresses": { + "type": "list", + "members": {} + }, + "BccAddresses": { + "type": "list", + "members": {} + } + }, + "required": true + }, + "Message": { + "type": "structure", + "members": { + "Subject": { + "type": "structure", + "members": { + "Data": { + "required": true + }, + "Charset": {} + }, + "required": true + }, + "Body": { + "type": "structure", + "members": { + "Text": { + "type": "structure", + "members": { + "Data": { + "required": true + }, + "Charset": {} + } + }, + "Html": { + "type": "structure", + "members": { + "Data": { + "required": true + }, + "Charset": {} + } + } + }, + "required": true + } + }, + "required": true + }, + "ReplyToAddresses": { + "type": "list", + "members": {} + }, + "ReturnPath": {} + } + }, + "output": { + "type": "structure", + "members": { + "MessageId": {} + } + } + }, + "sendRawEmail": { + "name": "SendRawEmail", + "input": { + "type": "structure", + "members": { + "Source": {}, + "Destinations": { + "type": "list", + "members": {} + }, + "RawMessage": { + "type": "structure", + "members": { + "Data": { + "type": "base64", + "required": true + } + }, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "MessageId": {} + } + } + }, + "setIdentityDkimEnabled": { + "name": "SetIdentityDkimEnabled", + "input": { + "type": "structure", + "members": { + "Identity": { + "required": true + }, + "DkimEnabled": { + "type": "boolean", + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "setIdentityFeedbackForwardingEnabled": { + "name": "SetIdentityFeedbackForwardingEnabled", + "input": { + "type": "structure", + "members": { + "Identity": { + "required": true + }, + "ForwardingEnabled": { + "type": "boolean", + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "setIdentityNotificationTopic": { + "name": "SetIdentityNotificationTopic", + "input": { + "type": "structure", + "members": { + "Identity": { + "required": true + }, + "NotificationType": { + "required": true + }, + "SnsTopic": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "verifyDomainDkim": { + "name": "VerifyDomainDkim", + "input": { + "type": "structure", + "members": { + "Domain": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "DkimTokens": { + "type": "list", + "members": {} + } + } + } + }, + "verifyDomainIdentity": { + "name": "VerifyDomainIdentity", + "input": { + "type": "structure", + "members": { + "Domain": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "VerificationToken": {} + } + } + }, + "verifyEmailAddress": { + "name": "VerifyEmailAddress", + "input": { + "type": "structure", + "members": { + "EmailAddress": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "verifyEmailIdentity": { + "name": "VerifyEmailIdentity", + "input": { + "type": "structure", + "members": { + "EmailAddress": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + } + }, + "pagination": { + "listIdentities": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "limitKey": "MaxItems", + "resultKey": "Identities" + }, + "listVerifiedEmailAddresses": { + "resultKey": "VerifiedEmailAddresses" + } + }, + "waiters": { + "__default__": { + "interval": 3, + "maxAttempts": 20 + }, + "identityExists": { + "operation": "GetIdentityVerificationAttributes", + "successType": "output", + "successPath": "VerificationAttributes[].VerificationStatus", + "successValue": true + } + } +} \ No newline at end of file diff --git a/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/SNS-2010-03-31.json b/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/SNS-2010-03-31.json new file mode 100644 index 00000000..f575f24c --- /dev/null +++ b/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/SNS-2010-03-31.json @@ -0,0 +1,585 @@ +{ + "format": "query", + "apiVersion": "2010-03-31", + "endpointPrefix": "sns", + "resultWrapped": true, + "serviceAbbreviation": "Amazon SNS", + "serviceFullName": "Amazon Simple Notification Service", + "signatureVersion": "v4", + "timestampFormat": "iso8601", + "operations": { + "addPermission": { + "name": "AddPermission", + "input": { + "type": "structure", + "members": { + "TopicArn": { + "required": true + }, + "Label": { + "required": true + }, + "AWSAccountId": { + "type": "list", + "members": {}, + "required": true + }, + "ActionName": { + "type": "list", + "members": {}, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "confirmSubscription": { + "name": "ConfirmSubscription", + "input": { + "type": "structure", + "members": { + "TopicArn": { + "required": true + }, + "Token": { + "required": true + }, + "AuthenticateOnUnsubscribe": {} + } + }, + "output": { + "type": "structure", + "members": { + "SubscriptionArn": {} + } + } + }, + "createPlatformApplication": { + "name": "CreatePlatformApplication", + "input": { + "type": "structure", + "members": { + "Name": { + "required": true + }, + "Platform": { + "required": true + }, + "Attributes": { + "type": "map", + "keys": {}, + "members": {}, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "PlatformApplicationArn": {} + } + } + }, + "createPlatformEndpoint": { + "name": "CreatePlatformEndpoint", + "input": { + "type": "structure", + "members": { + "PlatformApplicationArn": { + "required": true + }, + "Token": { + "required": true + }, + "CustomUserData": {}, + "Attributes": { + "type": "map", + "keys": {}, + "members": {} + } + } + }, + "output": { + "type": "structure", + "members": { + "EndpointArn": {} + } + } + }, + "createTopic": { + "name": "CreateTopic", + "input": { + "type": "structure", + "members": { + "Name": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "TopicArn": {} + } + } + }, + "deleteEndpoint": { + "name": "DeleteEndpoint", + "input": { + "type": "structure", + "members": { + "EndpointArn": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deletePlatformApplication": { + "name": "DeletePlatformApplication", + "input": { + "type": "structure", + "members": { + "PlatformApplicationArn": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteTopic": { + "name": "DeleteTopic", + "input": { + "type": "structure", + "members": { + "TopicArn": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "getEndpointAttributes": { + "name": "GetEndpointAttributes", + "input": { + "type": "structure", + "members": { + "EndpointArn": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "Attributes": { + "type": "map", + "keys": {}, + "members": {} + } + } + } + }, + "getPlatformApplicationAttributes": { + "name": "GetPlatformApplicationAttributes", + "input": { + "type": "structure", + "members": { + "PlatformApplicationArn": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "Attributes": { + "type": "map", + "keys": {}, + "members": {} + } + } + } + }, + "getSubscriptionAttributes": { + "name": "GetSubscriptionAttributes", + "input": { + "type": "structure", + "members": { + "SubscriptionArn": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "Attributes": { + "type": "map", + "keys": {}, + "members": {} + } + } + } + }, + "getTopicAttributes": { + "name": "GetTopicAttributes", + "input": { + "type": "structure", + "members": { + "TopicArn": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "Attributes": { + "type": "map", + "keys": {}, + "members": {} + } + } + } + }, + "listEndpointsByPlatformApplication": { + "name": "ListEndpointsByPlatformApplication", + "input": { + "type": "structure", + "members": { + "PlatformApplicationArn": { + "required": true + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "Endpoints": { + "type": "list", + "members": { + "type": "structure", + "members": { + "EndpointArn": {}, + "Attributes": { + "type": "map", + "keys": {}, + "members": {} + } + } + } + }, + "NextToken": {} + } + } + }, + "listPlatformApplications": { + "name": "ListPlatformApplications", + "input": { + "type": "structure", + "members": { + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "PlatformApplications": { + "type": "list", + "members": { + "type": "structure", + "members": { + "PlatformApplicationArn": {}, + "Attributes": { + "type": "map", + "keys": {}, + "members": {} + } + } + } + }, + "NextToken": {} + } + } + }, + "listSubscriptions": { + "name": "ListSubscriptions", + "input": { + "type": "structure", + "members": { + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "Subscriptions": { + "type": "list", + "members": { + "type": "structure", + "members": { + "SubscriptionArn": {}, + "Owner": {}, + "Protocol": {}, + "Endpoint": {}, + "TopicArn": {} + } + } + }, + "NextToken": {} + } + } + }, + "listSubscriptionsByTopic": { + "name": "ListSubscriptionsByTopic", + "input": { + "type": "structure", + "members": { + "TopicArn": { + "required": true + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "Subscriptions": { + "type": "list", + "members": { + "type": "structure", + "members": { + "SubscriptionArn": {}, + "Owner": {}, + "Protocol": {}, + "Endpoint": {}, + "TopicArn": {} + } + } + }, + "NextToken": {} + } + } + }, + "listTopics": { + "name": "ListTopics", + "input": { + "type": "structure", + "members": { + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "Topics": { + "type": "list", + "members": { + "type": "structure", + "members": { + "TopicArn": {} + } + } + }, + "NextToken": {} + } + } + }, + "publish": { + "name": "Publish", + "input": { + "type": "structure", + "members": { + "TopicArn": {}, + "TargetArn": {}, + "Message": { + "required": true + }, + "Subject": {}, + "MessageStructure": {} + } + }, + "output": { + "type": "structure", + "members": { + "MessageId": {} + } + } + }, + "removePermission": { + "name": "RemovePermission", + "input": { + "type": "structure", + "members": { + "TopicArn": { + "required": true + }, + "Label": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "setEndpointAttributes": { + "name": "SetEndpointAttributes", + "input": { + "type": "structure", + "members": { + "EndpointArn": { + "required": true + }, + "Attributes": { + "type": "map", + "keys": {}, + "members": {}, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "setPlatformApplicationAttributes": { + "name": "SetPlatformApplicationAttributes", + "input": { + "type": "structure", + "members": { + "PlatformApplicationArn": { + "required": true + }, + "Attributes": { + "type": "map", + "keys": {}, + "members": {}, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "setSubscriptionAttributes": { + "name": "SetSubscriptionAttributes", + "input": { + "type": "structure", + "members": { + "SubscriptionArn": { + "required": true + }, + "AttributeName": { + "required": true + }, + "AttributeValue": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "setTopicAttributes": { + "name": "SetTopicAttributes", + "input": { + "type": "structure", + "members": { + "TopicArn": { + "required": true + }, + "AttributeName": { + "required": true + }, + "AttributeValue": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "subscribe": { + "name": "Subscribe", + "input": { + "type": "structure", + "members": { + "TopicArn": { + "required": true + }, + "Protocol": { + "required": true + }, + "Endpoint": {} + } + }, + "output": { + "type": "structure", + "members": { + "SubscriptionArn": {} + } + } + }, + "unsubscribe": { + "name": "Unsubscribe", + "input": { + "type": "structure", + "members": { + "SubscriptionArn": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + } + }, + "pagination": { + "listEndpointsByPlatformApplication": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "resultKey": "Endpoints" + }, + "listPlatformApplications": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "resultKey": "PlatformApplications" + }, + "listSubscriptions": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "resultKey": "Subscriptions" + }, + "listSubscriptionsByTopic": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "resultKey": "Subscriptions" + }, + "listTopics": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "resultKey": "Topics" + } + } +} \ No newline at end of file diff --git a/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/SQS-2012-11-05.json b/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/SQS-2012-11-05.json new file mode 100644 index 00000000..d02d2e03 --- /dev/null +++ b/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/SQS-2012-11-05.json @@ -0,0 +1,553 @@ +{ + "format": "query", + "apiVersion": "2012-11-05", + "endpointPrefix": "sqs", + "resultWrapped": true, + "serviceAbbreviation": "Amazon SQS", + "serviceFullName": "Amazon Simple Queue Service", + "signatureVersion": "v4", + "timestampFormat": "iso8601", + "operations": { + "addPermission": { + "name": "AddPermission", + "input": { + "type": "structure", + "members": { + "QueueUrl": { + "required": true + }, + "Label": { + "required": true + }, + "AWSAccountIds": { + "type": "list", + "members": { + "name": "AWSAccountId" + }, + "flattened": true, + "required": true + }, + "Actions": { + "type": "list", + "members": { + "name": "ActionName" + }, + "flattened": true, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "changeMessageVisibility": { + "name": "ChangeMessageVisibility", + "input": { + "type": "structure", + "members": { + "QueueUrl": { + "required": true + }, + "ReceiptHandle": { + "required": true + }, + "VisibilityTimeout": { + "type": "integer", + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "changeMessageVisibilityBatch": { + "name": "ChangeMessageVisibilityBatch", + "input": { + "type": "structure", + "members": { + "QueueUrl": { + "required": true + }, + "Entries": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Id": { + "required": true + }, + "ReceiptHandle": { + "required": true + }, + "VisibilityTimeout": { + "type": "integer" + } + }, + "name": "ChangeMessageVisibilityBatchRequestEntry" + }, + "flattened": true, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "ChangeMessageVisibilityBatchResultEntry": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Id": {} + }, + "name": "ChangeMessageVisibilityBatchResultEntry" + }, + "flattened": true, + "name": "Successful" + }, + "BatchResultErrorEntry": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Id": {}, + "SenderFault": { + "type": "boolean" + }, + "Code": {}, + "Message": {} + }, + "name": "BatchResultErrorEntry" + }, + "flattened": true, + "name": "Failed" + } + } + } + }, + "createQueue": { + "name": "CreateQueue", + "input": { + "type": "structure", + "members": { + "QueueName": { + "required": true + }, + "Attributes": { + "type": "map", + "keys": { + "name": "Name" + }, + "members": { + "name": "Value" + }, + "flattened": true, + "name": "Attribute" + } + } + }, + "output": { + "type": "structure", + "members": { + "QueueUrl": {} + } + } + }, + "deleteMessage": { + "name": "DeleteMessage", + "input": { + "type": "structure", + "members": { + "QueueUrl": { + "required": true + }, + "ReceiptHandle": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteMessageBatch": { + "name": "DeleteMessageBatch", + "input": { + "type": "structure", + "members": { + "QueueUrl": { + "required": true + }, + "Entries": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Id": { + "required": true + }, + "ReceiptHandle": { + "required": true + } + }, + "name": "DeleteMessageBatchRequestEntry" + }, + "flattened": true, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "DeleteMessageBatchResultEntry": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Id": {} + }, + "name": "DeleteMessageBatchResultEntry" + }, + "flattened": true, + "name": "Successful" + }, + "BatchResultErrorEntry": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Id": {}, + "SenderFault": { + "type": "boolean" + }, + "Code": {}, + "Message": {} + }, + "name": "BatchResultErrorEntry" + }, + "flattened": true, + "name": "Failed" + } + } + } + }, + "deleteQueue": { + "name": "DeleteQueue", + "input": { + "type": "structure", + "members": { + "QueueUrl": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "getQueueAttributes": { + "name": "GetQueueAttributes", + "input": { + "type": "structure", + "members": { + "QueueUrl": { + "required": true + }, + "AttributeNames": { + "type": "list", + "members": { + "name": "AttributeName" + }, + "flattened": true + } + } + }, + "output": { + "type": "structure", + "members": { + "Attribute": { + "type": "map", + "keys": { + "name": "Name" + }, + "members": { + "name": "Value" + }, + "flattened": true, + "name": "Attributes" + } + } + } + }, + "getQueueUrl": { + "name": "GetQueueUrl", + "input": { + "type": "structure", + "members": { + "QueueName": { + "required": true + }, + "QueueOwnerAWSAccountId": {} + } + }, + "output": { + "type": "structure", + "members": { + "QueueUrl": {} + } + } + }, + "listDeadLetterSourceQueues": { + "name": "ListDeadLetterSourceQueues", + "input": { + "type": "structure", + "members": { + "QueueUrl": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "QueueUrl": { + "type": "list", + "members": { + "name": "QueueUrl" + }, + "flattened": true, + "name": "queueUrls" + } + } + } + }, + "listQueues": { + "name": "ListQueues", + "input": { + "type": "structure", + "members": { + "QueueNamePrefix": {} + } + }, + "output": { + "type": "structure", + "members": { + "QueueUrl": { + "type": "list", + "members": { + "name": "QueueUrl" + }, + "flattened": true, + "name": "QueueUrls" + } + } + } + }, + "receiveMessage": { + "name": "ReceiveMessage", + "input": { + "type": "structure", + "members": { + "QueueUrl": { + "required": true + }, + "AttributeNames": { + "type": "list", + "members": { + "name": "AttributeName" + }, + "flattened": true + }, + "MaxNumberOfMessages": { + "type": "integer" + }, + "VisibilityTimeout": { + "type": "integer" + }, + "WaitTimeSeconds": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "Message": { + "type": "list", + "members": { + "type": "structure", + "members": { + "MessageId": {}, + "ReceiptHandle": {}, + "MD5OfBody": {}, + "Body": {}, + "Attribute": { + "type": "map", + "keys": { + "name": "Name" + }, + "members": { + "name": "Value" + }, + "flattened": true, + "name": "Attributes" + } + }, + "name": "Message" + }, + "flattened": true, + "name": "Messages" + } + } + } + }, + "removePermission": { + "name": "RemovePermission", + "input": { + "type": "structure", + "members": { + "QueueUrl": { + "required": true + }, + "Label": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "sendMessage": { + "name": "SendMessage", + "input": { + "type": "structure", + "members": { + "QueueUrl": { + "required": true + }, + "MessageBody": { + "required": true + }, + "DelaySeconds": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "MD5OfMessageBody": {}, + "MessageId": {} + } + } + }, + "sendMessageBatch": { + "name": "SendMessageBatch", + "input": { + "type": "structure", + "members": { + "QueueUrl": { + "required": true + }, + "Entries": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Id": { + "required": true + }, + "MessageBody": { + "required": true + }, + "DelaySeconds": { + "type": "integer" + } + }, + "name": "SendMessageBatchRequestEntry" + }, + "flattened": true, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "SendMessageBatchResultEntry": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Id": {}, + "MessageId": {}, + "MD5OfMessageBody": {} + }, + "name": "SendMessageBatchResultEntry" + }, + "flattened": true, + "name": "Successful" + }, + "BatchResultErrorEntry": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Id": {}, + "SenderFault": { + "type": "boolean" + }, + "Code": {}, + "Message": {} + }, + "name": "BatchResultErrorEntry" + }, + "flattened": true, + "name": "Failed" + } + } + } + }, + "setQueueAttributes": { + "name": "SetQueueAttributes", + "input": { + "type": "structure", + "members": { + "QueueUrl": { + "required": true + }, + "Attributes": { + "type": "map", + "keys": { + "name": "Name" + }, + "members": { + "name": "Value" + }, + "flattened": true, + "name": "Attribute", + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + } + }, + "pagination": { + "listQueues": { + "resultKey": "QueueUrls" + } + } +} \ No newline at end of file diff --git a/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/STS-2011-06-15.json b/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/STS-2011-06-15.json new file mode 100644 index 00000000..200f938a --- /dev/null +++ b/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/STS-2011-06-15.json @@ -0,0 +1,243 @@ +{ + "format": "query", + "apiVersion": "2011-06-15", + "endpointPrefix": "sts", + "globalEndpoint": "sts.amazonaws.com", + "resultWrapped": true, + "serviceAbbreviation": "AWS STS", + "serviceFullName": "AWS Security Token Service", + "signatureVersion": "v4", + "timestampFormat": "iso8601", + "operations": { + "assumeRole": { + "name": "AssumeRole", + "input": { + "type": "structure", + "members": { + "RoleArn": { + "required": true + }, + "RoleSessionName": { + "required": true + }, + "Policy": {}, + "DurationSeconds": { + "type": "integer" + }, + "ExternalId": {}, + "SerialNumber": {}, + "TokenCode": {} + } + }, + "output": { + "type": "structure", + "members": { + "Credentials": { + "type": "structure", + "members": { + "AccessKeyId": {}, + "SecretAccessKey": {}, + "SessionToken": {}, + "Expiration": { + "type": "timestamp" + } + } + }, + "AssumedRoleUser": { + "type": "structure", + "members": { + "AssumedRoleId": {}, + "Arn": {} + } + }, + "PackedPolicySize": { + "type": "integer" + } + } + } + }, + "assumeRoleWithSAML": { + "name": "AssumeRoleWithSAML", + "input": { + "type": "structure", + "members": { + "RoleArn": { + "required": true + }, + "PrincipalArn": { + "required": true + }, + "SAMLAssertion": { + "required": true + }, + "Policy": {}, + "DurationSeconds": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "Credentials": { + "type": "structure", + "members": { + "AccessKeyId": {}, + "SecretAccessKey": {}, + "SessionToken": {}, + "Expiration": { + "type": "timestamp" + } + } + }, + "AssumedRoleUser": { + "type": "structure", + "members": { + "AssumedRoleId": {}, + "Arn": {} + } + }, + "PackedPolicySize": { + "type": "integer" + } + } + } + }, + "assumeRoleWithWebIdentity": { + "name": "AssumeRoleWithWebIdentity", + "input": { + "type": "structure", + "members": { + "RoleArn": { + "required": true + }, + "RoleSessionName": { + "required": true + }, + "WebIdentityToken": { + "required": true + }, + "ProviderId": {}, + "Policy": {}, + "DurationSeconds": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "Credentials": { + "type": "structure", + "members": { + "AccessKeyId": {}, + "SecretAccessKey": {}, + "SessionToken": {}, + "Expiration": { + "type": "timestamp" + } + } + }, + "SubjectFromWebIdentityToken": {}, + "AssumedRoleUser": { + "type": "structure", + "members": { + "AssumedRoleId": {}, + "Arn": {} + } + }, + "PackedPolicySize": { + "type": "integer" + } + } + } + }, + "decodeAuthorizationMessage": { + "name": "DecodeAuthorizationMessage", + "input": { + "type": "structure", + "members": { + "EncodedMessage": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "DecodedMessage": {} + } + } + }, + "getFederationToken": { + "name": "GetFederationToken", + "input": { + "type": "structure", + "members": { + "Name": { + "required": true + }, + "Policy": {}, + "DurationSeconds": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "Credentials": { + "type": "structure", + "members": { + "AccessKeyId": {}, + "SecretAccessKey": {}, + "SessionToken": {}, + "Expiration": { + "type": "timestamp" + } + } + }, + "FederatedUser": { + "type": "structure", + "members": { + "FederatedUserId": {}, + "Arn": {} + } + }, + "PackedPolicySize": { + "type": "integer" + } + } + } + }, + "getSessionToken": { + "name": "GetSessionToken", + "input": { + "type": "structure", + "members": { + "DurationSeconds": { + "type": "integer" + }, + "SerialNumber": {}, + "TokenCode": {} + } + }, + "output": { + "type": "structure", + "members": { + "Credentials": { + "type": "structure", + "members": { + "AccessKeyId": {}, + "SecretAccessKey": {}, + "SessionToken": {}, + "Expiration": { + "type": "timestamp" + } + } + } + } + } + } + } +} \ No newline at end of file diff --git a/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/SWF-2012-01-25.json b/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/SWF-2012-01-25.json new file mode 100644 index 00000000..7bf7b2ec --- /dev/null +++ b/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/SWF-2012-01-25.json @@ -0,0 +1,3010 @@ +{ + "format": "json", + "apiVersion": "2012-01-25", + "endpointPrefix": "swf", + "jsonVersion": "1.0", + "serviceAbbreviation": "Amazon SWF", + "serviceFullName": "Amazon Simple Workflow Service", + "signatureVersion": "v4", + "targetPrefix": "SimpleWorkflowService", + "timestampFormat": "unixTimestamp", + "operations": { + "countClosedWorkflowExecutions": { + "name": "CountClosedWorkflowExecutions", + "input": { + "type": "structure", + "members": { + "domain": { + "required": true + }, + "startTimeFilter": { + "type": "structure", + "members": { + "oldestDate": { + "type": "timestamp", + "required": true + }, + "latestDate": { + "type": "timestamp" + } + } + }, + "closeTimeFilter": { + "type": "structure", + "members": { + "oldestDate": { + "type": "timestamp", + "required": true + }, + "latestDate": { + "type": "timestamp" + } + } + }, + "executionFilter": { + "type": "structure", + "members": { + "workflowId": { + "required": true + } + } + }, + "typeFilter": { + "type": "structure", + "members": { + "name": { + "required": true + }, + "version": {} + } + }, + "tagFilter": { + "type": "structure", + "members": { + "tag": { + "required": true + } + } + }, + "closeStatusFilter": { + "type": "structure", + "members": { + "status": { + "required": true + } + } + } + } + }, + "output": { + "type": "structure", + "members": { + "count": { + "type": "integer" + }, + "truncated": { + "type": "boolean" + } + } + } + }, + "countOpenWorkflowExecutions": { + "name": "CountOpenWorkflowExecutions", + "input": { + "type": "structure", + "members": { + "domain": { + "required": true + }, + "startTimeFilter": { + "type": "structure", + "members": { + "oldestDate": { + "type": "timestamp", + "required": true + }, + "latestDate": { + "type": "timestamp" + } + }, + "required": true + }, + "typeFilter": { + "type": "structure", + "members": { + "name": { + "required": true + }, + "version": {} + } + }, + "tagFilter": { + "type": "structure", + "members": { + "tag": { + "required": true + } + } + }, + "executionFilter": { + "type": "structure", + "members": { + "workflowId": { + "required": true + } + } + } + } + }, + "output": { + "type": "structure", + "members": { + "count": { + "type": "integer" + }, + "truncated": { + "type": "boolean" + } + } + } + }, + "countPendingActivityTasks": { + "name": "CountPendingActivityTasks", + "input": { + "type": "structure", + "members": { + "domain": { + "required": true + }, + "taskList": { + "type": "structure", + "members": { + "name": { + "required": true + } + }, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "count": { + "type": "integer" + }, + "truncated": { + "type": "boolean" + } + } + } + }, + "countPendingDecisionTasks": { + "name": "CountPendingDecisionTasks", + "input": { + "type": "structure", + "members": { + "domain": { + "required": true + }, + "taskList": { + "type": "structure", + "members": { + "name": { + "required": true + } + }, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "count": { + "type": "integer" + }, + "truncated": { + "type": "boolean" + } + } + } + }, + "deprecateActivityType": { + "name": "DeprecateActivityType", + "input": { + "type": "structure", + "members": { + "domain": { + "required": true + }, + "activityType": { + "type": "structure", + "members": { + "name": { + "required": true + }, + "version": { + "required": true + } + }, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deprecateDomain": { + "name": "DeprecateDomain", + "input": { + "type": "structure", + "members": { + "name": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deprecateWorkflowType": { + "name": "DeprecateWorkflowType", + "input": { + "type": "structure", + "members": { + "domain": { + "required": true + }, + "workflowType": { + "type": "structure", + "members": { + "name": { + "required": true + }, + "version": { + "required": true + } + }, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "describeActivityType": { + "name": "DescribeActivityType", + "input": { + "type": "structure", + "members": { + "domain": { + "required": true + }, + "activityType": { + "type": "structure", + "members": { + "name": { + "required": true + }, + "version": { + "required": true + } + }, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "typeInfo": { + "type": "structure", + "members": { + "activityType": { + "type": "structure", + "members": { + "name": {}, + "version": {} + } + }, + "status": {}, + "description": {}, + "creationDate": { + "type": "timestamp" + }, + "deprecationDate": { + "type": "timestamp" + } + } + }, + "configuration": { + "type": "structure", + "members": { + "defaultTaskStartToCloseTimeout": {}, + "defaultTaskHeartbeatTimeout": {}, + "defaultTaskList": { + "type": "structure", + "members": { + "name": {} + } + }, + "defaultTaskScheduleToStartTimeout": {}, + "defaultTaskScheduleToCloseTimeout": {} + } + } + } + } + }, + "describeDomain": { + "name": "DescribeDomain", + "input": { + "type": "structure", + "members": { + "name": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "domainInfo": { + "type": "structure", + "members": { + "name": {}, + "status": {}, + "description": {} + } + }, + "configuration": { + "type": "structure", + "members": { + "workflowExecutionRetentionPeriodInDays": {} + } + } + } + } + }, + "describeWorkflowExecution": { + "name": "DescribeWorkflowExecution", + "input": { + "type": "structure", + "members": { + "domain": { + "required": true + }, + "execution": { + "type": "structure", + "members": { + "workflowId": { + "required": true + }, + "runId": { + "required": true + } + }, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "executionInfo": { + "type": "structure", + "members": { + "execution": { + "type": "structure", + "members": { + "workflowId": {}, + "runId": {} + } + }, + "workflowType": { + "type": "structure", + "members": { + "name": {}, + "version": {} + } + }, + "startTimestamp": { + "type": "timestamp" + }, + "closeTimestamp": { + "type": "timestamp" + }, + "executionStatus": {}, + "closeStatus": {}, + "parent": { + "type": "structure", + "members": { + "workflowId": {}, + "runId": {} + } + }, + "tagList": { + "type": "list", + "members": {} + }, + "cancelRequested": { + "type": "boolean" + } + } + }, + "executionConfiguration": { + "type": "structure", + "members": { + "taskStartToCloseTimeout": {}, + "executionStartToCloseTimeout": {}, + "taskList": { + "type": "structure", + "members": { + "name": {} + } + }, + "childPolicy": {} + } + }, + "openCounts": { + "type": "structure", + "members": { + "openActivityTasks": { + "type": "integer" + }, + "openDecisionTasks": { + "type": "integer" + }, + "openTimers": { + "type": "integer" + }, + "openChildWorkflowExecutions": { + "type": "integer" + } + } + }, + "latestActivityTaskTimestamp": { + "type": "timestamp" + }, + "latestExecutionContext": {} + } + } + }, + "describeWorkflowType": { + "name": "DescribeWorkflowType", + "input": { + "type": "structure", + "members": { + "domain": { + "required": true + }, + "workflowType": { + "type": "structure", + "members": { + "name": { + "required": true + }, + "version": { + "required": true + } + }, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "typeInfo": { + "type": "structure", + "members": { + "workflowType": { + "type": "structure", + "members": { + "name": {}, + "version": {} + } + }, + "status": {}, + "description": {}, + "creationDate": { + "type": "timestamp" + }, + "deprecationDate": { + "type": "timestamp" + } + } + }, + "configuration": { + "type": "structure", + "members": { + "defaultTaskStartToCloseTimeout": {}, + "defaultExecutionStartToCloseTimeout": {}, + "defaultTaskList": { + "type": "structure", + "members": { + "name": {} + } + }, + "defaultChildPolicy": {} + } + } + } + } + }, + "getWorkflowExecutionHistory": { + "name": "GetWorkflowExecutionHistory", + "input": { + "type": "structure", + "members": { + "domain": { + "required": true + }, + "execution": { + "type": "structure", + "members": { + "workflowId": { + "required": true + }, + "runId": { + "required": true + } + }, + "required": true + }, + "nextPageToken": {}, + "maximumPageSize": { + "type": "integer" + }, + "reverseOrder": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "events": { + "type": "list", + "members": { + "type": "structure", + "members": { + "eventTimestamp": { + "type": "timestamp" + }, + "eventType": {}, + "eventId": { + "type": "integer" + }, + "workflowExecutionStartedEventAttributes": { + "type": "structure", + "members": { + "input": {}, + "executionStartToCloseTimeout": {}, + "taskStartToCloseTimeout": {}, + "childPolicy": {}, + "taskList": { + "type": "structure", + "members": { + "name": {} + } + }, + "workflowType": { + "type": "structure", + "members": { + "name": {}, + "version": {} + } + }, + "tagList": { + "type": "list", + "members": {} + }, + "continuedExecutionRunId": {}, + "parentWorkflowExecution": { + "type": "structure", + "members": { + "workflowId": {}, + "runId": {} + } + }, + "parentInitiatedEventId": { + "type": "integer" + } + } + }, + "workflowExecutionCompletedEventAttributes": { + "type": "structure", + "members": { + "result": {}, + "decisionTaskCompletedEventId": { + "type": "integer" + } + } + }, + "completeWorkflowExecutionFailedEventAttributes": { + "type": "structure", + "members": { + "cause": {}, + "decisionTaskCompletedEventId": { + "type": "integer" + } + } + }, + "workflowExecutionFailedEventAttributes": { + "type": "structure", + "members": { + "reason": {}, + "details": {}, + "decisionTaskCompletedEventId": { + "type": "integer" + } + } + }, + "failWorkflowExecutionFailedEventAttributes": { + "type": "structure", + "members": { + "cause": {}, + "decisionTaskCompletedEventId": { + "type": "integer" + } + } + }, + "workflowExecutionTimedOutEventAttributes": { + "type": "structure", + "members": { + "timeoutType": {}, + "childPolicy": {} + } + }, + "workflowExecutionCanceledEventAttributes": { + "type": "structure", + "members": { + "details": {}, + "decisionTaskCompletedEventId": { + "type": "integer" + } + } + }, + "cancelWorkflowExecutionFailedEventAttributes": { + "type": "structure", + "members": { + "cause": {}, + "decisionTaskCompletedEventId": { + "type": "integer" + } + } + }, + "workflowExecutionContinuedAsNewEventAttributes": { + "type": "structure", + "members": { + "input": {}, + "decisionTaskCompletedEventId": { + "type": "integer" + }, + "newExecutionRunId": {}, + "executionStartToCloseTimeout": {}, + "taskList": { + "type": "structure", + "members": { + "name": {} + } + }, + "taskStartToCloseTimeout": {}, + "childPolicy": {}, + "tagList": { + "type": "list", + "members": {} + }, + "workflowType": { + "type": "structure", + "members": { + "name": {}, + "version": {} + } + } + } + }, + "continueAsNewWorkflowExecutionFailedEventAttributes": { + "type": "structure", + "members": { + "cause": {}, + "decisionTaskCompletedEventId": { + "type": "integer" + } + } + }, + "workflowExecutionTerminatedEventAttributes": { + "type": "structure", + "members": { + "reason": {}, + "details": {}, + "childPolicy": {}, + "cause": {} + } + }, + "workflowExecutionCancelRequestedEventAttributes": { + "type": "structure", + "members": { + "externalWorkflowExecution": { + "type": "structure", + "members": { + "workflowId": {}, + "runId": {} + } + }, + "externalInitiatedEventId": { + "type": "integer" + }, + "cause": {} + } + }, + "decisionTaskScheduledEventAttributes": { + "type": "structure", + "members": { + "taskList": { + "type": "structure", + "members": { + "name": {} + } + }, + "startToCloseTimeout": {} + } + }, + "decisionTaskStartedEventAttributes": { + "type": "structure", + "members": { + "identity": {}, + "scheduledEventId": { + "type": "integer" + } + } + }, + "decisionTaskCompletedEventAttributes": { + "type": "structure", + "members": { + "executionContext": {}, + "scheduledEventId": { + "type": "integer" + }, + "startedEventId": { + "type": "integer" + } + } + }, + "decisionTaskTimedOutEventAttributes": { + "type": "structure", + "members": { + "timeoutType": {}, + "scheduledEventId": { + "type": "integer" + }, + "startedEventId": { + "type": "integer" + } + } + }, + "activityTaskScheduledEventAttributes": { + "type": "structure", + "members": { + "activityType": { + "type": "structure", + "members": { + "name": {}, + "version": {} + } + }, + "activityId": {}, + "input": {}, + "control": {}, + "scheduleToStartTimeout": {}, + "scheduleToCloseTimeout": {}, + "startToCloseTimeout": {}, + "taskList": { + "type": "structure", + "members": { + "name": {} + } + }, + "decisionTaskCompletedEventId": { + "type": "integer" + }, + "heartbeatTimeout": {} + } + }, + "activityTaskStartedEventAttributes": { + "type": "structure", + "members": { + "identity": {}, + "scheduledEventId": { + "type": "integer" + } + } + }, + "activityTaskCompletedEventAttributes": { + "type": "structure", + "members": { + "result": {}, + "scheduledEventId": { + "type": "integer" + }, + "startedEventId": { + "type": "integer" + } + } + }, + "activityTaskFailedEventAttributes": { + "type": "structure", + "members": { + "reason": {}, + "details": {}, + "scheduledEventId": { + "type": "integer" + }, + "startedEventId": { + "type": "integer" + } + } + }, + "activityTaskTimedOutEventAttributes": { + "type": "structure", + "members": { + "timeoutType": {}, + "scheduledEventId": { + "type": "integer" + }, + "startedEventId": { + "type": "integer" + }, + "details": {} + } + }, + "activityTaskCanceledEventAttributes": { + "type": "structure", + "members": { + "details": {}, + "scheduledEventId": { + "type": "integer" + }, + "startedEventId": { + "type": "integer" + }, + "latestCancelRequestedEventId": { + "type": "integer" + } + } + }, + "activityTaskCancelRequestedEventAttributes": { + "type": "structure", + "members": { + "decisionTaskCompletedEventId": { + "type": "integer" + }, + "activityId": {} + } + }, + "workflowExecutionSignaledEventAttributes": { + "type": "structure", + "members": { + "signalName": {}, + "input": {}, + "externalWorkflowExecution": { + "type": "structure", + "members": { + "workflowId": {}, + "runId": {} + } + }, + "externalInitiatedEventId": { + "type": "integer" + } + } + }, + "markerRecordedEventAttributes": { + "type": "structure", + "members": { + "markerName": {}, + "details": {}, + "decisionTaskCompletedEventId": { + "type": "integer" + } + } + }, + "recordMarkerFailedEventAttributes": { + "type": "structure", + "members": { + "markerName": {}, + "cause": {}, + "decisionTaskCompletedEventId": { + "type": "integer" + } + } + }, + "timerStartedEventAttributes": { + "type": "structure", + "members": { + "timerId": {}, + "control": {}, + "startToFireTimeout": {}, + "decisionTaskCompletedEventId": { + "type": "integer" + } + } + }, + "timerFiredEventAttributes": { + "type": "structure", + "members": { + "timerId": {}, + "startedEventId": { + "type": "integer" + } + } + }, + "timerCanceledEventAttributes": { + "type": "structure", + "members": { + "timerId": {}, + "startedEventId": { + "type": "integer" + }, + "decisionTaskCompletedEventId": { + "type": "integer" + } + } + }, + "startChildWorkflowExecutionInitiatedEventAttributes": { + "type": "structure", + "members": { + "workflowId": {}, + "workflowType": { + "type": "structure", + "members": { + "name": {}, + "version": {} + } + }, + "control": {}, + "input": {}, + "executionStartToCloseTimeout": {}, + "taskList": { + "type": "structure", + "members": { + "name": {} + } + }, + "decisionTaskCompletedEventId": { + "type": "integer" + }, + "childPolicy": {}, + "taskStartToCloseTimeout": {}, + "tagList": { + "type": "list", + "members": {} + } + } + }, + "childWorkflowExecutionStartedEventAttributes": { + "type": "structure", + "members": { + "workflowExecution": { + "type": "structure", + "members": { + "workflowId": {}, + "runId": {} + } + }, + "workflowType": { + "type": "structure", + "members": { + "name": {}, + "version": {} + } + }, + "initiatedEventId": { + "type": "integer" + } + } + }, + "childWorkflowExecutionCompletedEventAttributes": { + "type": "structure", + "members": { + "workflowExecution": { + "type": "structure", + "members": { + "workflowId": {}, + "runId": {} + } + }, + "workflowType": { + "type": "structure", + "members": { + "name": {}, + "version": {} + } + }, + "result": {}, + "initiatedEventId": { + "type": "integer" + }, + "startedEventId": { + "type": "integer" + } + } + }, + "childWorkflowExecutionFailedEventAttributes": { + "type": "structure", + "members": { + "workflowExecution": { + "type": "structure", + "members": { + "workflowId": {}, + "runId": {} + } + }, + "workflowType": { + "type": "structure", + "members": { + "name": {}, + "version": {} + } + }, + "reason": {}, + "details": {}, + "initiatedEventId": { + "type": "integer" + }, + "startedEventId": { + "type": "integer" + } + } + }, + "childWorkflowExecutionTimedOutEventAttributes": { + "type": "structure", + "members": { + "workflowExecution": { + "type": "structure", + "members": { + "workflowId": {}, + "runId": {} + } + }, + "workflowType": { + "type": "structure", + "members": { + "name": {}, + "version": {} + } + }, + "timeoutType": {}, + "initiatedEventId": { + "type": "integer" + }, + "startedEventId": { + "type": "integer" + } + } + }, + "childWorkflowExecutionCanceledEventAttributes": { + "type": "structure", + "members": { + "workflowExecution": { + "type": "structure", + "members": { + "workflowId": {}, + "runId": {} + } + }, + "workflowType": { + "type": "structure", + "members": { + "name": {}, + "version": {} + } + }, + "details": {}, + "initiatedEventId": { + "type": "integer" + }, + "startedEventId": { + "type": "integer" + } + } + }, + "childWorkflowExecutionTerminatedEventAttributes": { + "type": "structure", + "members": { + "workflowExecution": { + "type": "structure", + "members": { + "workflowId": {}, + "runId": {} + } + }, + "workflowType": { + "type": "structure", + "members": { + "name": {}, + "version": {} + } + }, + "initiatedEventId": { + "type": "integer" + }, + "startedEventId": { + "type": "integer" + } + } + }, + "signalExternalWorkflowExecutionInitiatedEventAttributes": { + "type": "structure", + "members": { + "workflowId": {}, + "runId": {}, + "signalName": {}, + "input": {}, + "decisionTaskCompletedEventId": { + "type": "integer" + }, + "control": {} + } + }, + "externalWorkflowExecutionSignaledEventAttributes": { + "type": "structure", + "members": { + "workflowExecution": { + "type": "structure", + "members": { + "workflowId": {}, + "runId": {} + } + }, + "initiatedEventId": { + "type": "integer" + } + } + }, + "signalExternalWorkflowExecutionFailedEventAttributes": { + "type": "structure", + "members": { + "workflowId": {}, + "runId": {}, + "cause": {}, + "initiatedEventId": { + "type": "integer" + }, + "decisionTaskCompletedEventId": { + "type": "integer" + }, + "control": {} + } + }, + "externalWorkflowExecutionCancelRequestedEventAttributes": { + "type": "structure", + "members": { + "workflowExecution": { + "type": "structure", + "members": { + "workflowId": {}, + "runId": {} + } + }, + "initiatedEventId": { + "type": "integer" + } + } + }, + "requestCancelExternalWorkflowExecutionInitiatedEventAttributes": { + "type": "structure", + "members": { + "workflowId": {}, + "runId": {}, + "decisionTaskCompletedEventId": { + "type": "integer" + }, + "control": {} + } + }, + "requestCancelExternalWorkflowExecutionFailedEventAttributes": { + "type": "structure", + "members": { + "workflowId": {}, + "runId": {}, + "cause": {}, + "initiatedEventId": { + "type": "integer" + }, + "decisionTaskCompletedEventId": { + "type": "integer" + }, + "control": {} + } + }, + "scheduleActivityTaskFailedEventAttributes": { + "type": "structure", + "members": { + "activityType": { + "type": "structure", + "members": { + "name": {}, + "version": {} + } + }, + "activityId": {}, + "cause": {}, + "decisionTaskCompletedEventId": { + "type": "integer" + } + } + }, + "requestCancelActivityTaskFailedEventAttributes": { + "type": "structure", + "members": { + "activityId": {}, + "cause": {}, + "decisionTaskCompletedEventId": { + "type": "integer" + } + } + }, + "startTimerFailedEventAttributes": { + "type": "structure", + "members": { + "timerId": {}, + "cause": {}, + "decisionTaskCompletedEventId": { + "type": "integer" + } + } + }, + "cancelTimerFailedEventAttributes": { + "type": "structure", + "members": { + "timerId": {}, + "cause": {}, + "decisionTaskCompletedEventId": { + "type": "integer" + } + } + }, + "startChildWorkflowExecutionFailedEventAttributes": { + "type": "structure", + "members": { + "workflowType": { + "type": "structure", + "members": { + "name": {}, + "version": {} + } + }, + "cause": {}, + "workflowId": {}, + "initiatedEventId": { + "type": "integer" + }, + "decisionTaskCompletedEventId": { + "type": "integer" + }, + "control": {} + } + } + } + } + }, + "nextPageToken": {} + } + } + }, + "listActivityTypes": { + "name": "ListActivityTypes", + "input": { + "type": "structure", + "members": { + "domain": { + "required": true + }, + "name": {}, + "registrationStatus": { + "required": true + }, + "nextPageToken": {}, + "maximumPageSize": { + "type": "integer" + }, + "reverseOrder": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "typeInfos": { + "type": "list", + "members": { + "type": "structure", + "members": { + "activityType": { + "type": "structure", + "members": { + "name": {}, + "version": {} + } + }, + "status": {}, + "description": {}, + "creationDate": { + "type": "timestamp" + }, + "deprecationDate": { + "type": "timestamp" + } + } + } + }, + "nextPageToken": {} + } + } + }, + "listClosedWorkflowExecutions": { + "name": "ListClosedWorkflowExecutions", + "input": { + "type": "structure", + "members": { + "domain": { + "required": true + }, + "startTimeFilter": { + "type": "structure", + "members": { + "oldestDate": { + "type": "timestamp", + "required": true + }, + "latestDate": { + "type": "timestamp" + } + } + }, + "closeTimeFilter": { + "type": "structure", + "members": { + "oldestDate": { + "type": "timestamp", + "required": true + }, + "latestDate": { + "type": "timestamp" + } + } + }, + "executionFilter": { + "type": "structure", + "members": { + "workflowId": { + "required": true + } + } + }, + "closeStatusFilter": { + "type": "structure", + "members": { + "status": { + "required": true + } + } + }, + "typeFilter": { + "type": "structure", + "members": { + "name": { + "required": true + }, + "version": {} + } + }, + "tagFilter": { + "type": "structure", + "members": { + "tag": { + "required": true + } + } + }, + "nextPageToken": {}, + "maximumPageSize": { + "type": "integer" + }, + "reverseOrder": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "executionInfos": { + "type": "list", + "members": { + "type": "structure", + "members": { + "execution": { + "type": "structure", + "members": { + "workflowId": {}, + "runId": {} + } + }, + "workflowType": { + "type": "structure", + "members": { + "name": {}, + "version": {} + } + }, + "startTimestamp": { + "type": "timestamp" + }, + "closeTimestamp": { + "type": "timestamp" + }, + "executionStatus": {}, + "closeStatus": {}, + "parent": { + "type": "structure", + "members": { + "workflowId": {}, + "runId": {} + } + }, + "tagList": { + "type": "list", + "members": {} + }, + "cancelRequested": { + "type": "boolean" + } + } + } + }, + "nextPageToken": {} + } + } + }, + "listDomains": { + "name": "ListDomains", + "input": { + "type": "structure", + "members": { + "nextPageToken": {}, + "registrationStatus": { + "required": true + }, + "maximumPageSize": { + "type": "integer" + }, + "reverseOrder": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "domainInfos": { + "type": "list", + "members": { + "type": "structure", + "members": { + "name": {}, + "status": {}, + "description": {} + } + } + }, + "nextPageToken": {} + } + } + }, + "listOpenWorkflowExecutions": { + "name": "ListOpenWorkflowExecutions", + "input": { + "type": "structure", + "members": { + "domain": { + "required": true + }, + "startTimeFilter": { + "type": "structure", + "members": { + "oldestDate": { + "type": "timestamp", + "required": true + }, + "latestDate": { + "type": "timestamp" + } + }, + "required": true + }, + "typeFilter": { + "type": "structure", + "members": { + "name": { + "required": true + }, + "version": {} + } + }, + "tagFilter": { + "type": "structure", + "members": { + "tag": { + "required": true + } + } + }, + "nextPageToken": {}, + "maximumPageSize": { + "type": "integer" + }, + "reverseOrder": { + "type": "boolean" + }, + "executionFilter": { + "type": "structure", + "members": { + "workflowId": { + "required": true + } + } + } + } + }, + "output": { + "type": "structure", + "members": { + "executionInfos": { + "type": "list", + "members": { + "type": "structure", + "members": { + "execution": { + "type": "structure", + "members": { + "workflowId": {}, + "runId": {} + } + }, + "workflowType": { + "type": "structure", + "members": { + "name": {}, + "version": {} + } + }, + "startTimestamp": { + "type": "timestamp" + }, + "closeTimestamp": { + "type": "timestamp" + }, + "executionStatus": {}, + "closeStatus": {}, + "parent": { + "type": "structure", + "members": { + "workflowId": {}, + "runId": {} + } + }, + "tagList": { + "type": "list", + "members": {} + }, + "cancelRequested": { + "type": "boolean" + } + } + } + }, + "nextPageToken": {} + } + } + }, + "listWorkflowTypes": { + "name": "ListWorkflowTypes", + "input": { + "type": "structure", + "members": { + "domain": { + "required": true + }, + "name": {}, + "registrationStatus": { + "required": true + }, + "nextPageToken": {}, + "maximumPageSize": { + "type": "integer" + }, + "reverseOrder": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "typeInfos": { + "type": "list", + "members": { + "type": "structure", + "members": { + "workflowType": { + "type": "structure", + "members": { + "name": {}, + "version": {} + } + }, + "status": {}, + "description": {}, + "creationDate": { + "type": "timestamp" + }, + "deprecationDate": { + "type": "timestamp" + } + } + } + }, + "nextPageToken": {} + } + } + }, + "pollForActivityTask": { + "name": "PollForActivityTask", + "input": { + "type": "structure", + "members": { + "domain": { + "required": true + }, + "taskList": { + "type": "structure", + "members": { + "name": { + "required": true + } + }, + "required": true + }, + "identity": {} + } + }, + "output": { + "type": "structure", + "members": { + "taskToken": {}, + "activityId": {}, + "startedEventId": { + "type": "integer" + }, + "workflowExecution": { + "type": "structure", + "members": { + "workflowId": {}, + "runId": {} + } + }, + "activityType": { + "type": "structure", + "members": { + "name": {}, + "version": {} + } + }, + "input": {} + } + } + }, + "pollForDecisionTask": { + "name": "PollForDecisionTask", + "input": { + "type": "structure", + "members": { + "domain": { + "required": true + }, + "taskList": { + "type": "structure", + "members": { + "name": { + "required": true + } + }, + "required": true + }, + "identity": {}, + "nextPageToken": {}, + "maximumPageSize": { + "type": "integer" + }, + "reverseOrder": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "taskToken": {}, + "startedEventId": { + "type": "integer" + }, + "workflowExecution": { + "type": "structure", + "members": { + "workflowId": {}, + "runId": {} + } + }, + "workflowType": { + "type": "structure", + "members": { + "name": {}, + "version": {} + } + }, + "events": { + "type": "list", + "members": { + "type": "structure", + "members": { + "eventTimestamp": { + "type": "timestamp" + }, + "eventType": {}, + "eventId": { + "type": "integer" + }, + "workflowExecutionStartedEventAttributes": { + "type": "structure", + "members": { + "input": {}, + "executionStartToCloseTimeout": {}, + "taskStartToCloseTimeout": {}, + "childPolicy": {}, + "taskList": { + "type": "structure", + "members": { + "name": {} + } + }, + "workflowType": { + "type": "structure", + "members": { + "name": {}, + "version": {} + } + }, + "tagList": { + "type": "list", + "members": {} + }, + "continuedExecutionRunId": {}, + "parentWorkflowExecution": { + "type": "structure", + "members": { + "workflowId": {}, + "runId": {} + } + }, + "parentInitiatedEventId": { + "type": "integer" + } + } + }, + "workflowExecutionCompletedEventAttributes": { + "type": "structure", + "members": { + "result": {}, + "decisionTaskCompletedEventId": { + "type": "integer" + } + } + }, + "completeWorkflowExecutionFailedEventAttributes": { + "type": "structure", + "members": { + "cause": {}, + "decisionTaskCompletedEventId": { + "type": "integer" + } + } + }, + "workflowExecutionFailedEventAttributes": { + "type": "structure", + "members": { + "reason": {}, + "details": {}, + "decisionTaskCompletedEventId": { + "type": "integer" + } + } + }, + "failWorkflowExecutionFailedEventAttributes": { + "type": "structure", + "members": { + "cause": {}, + "decisionTaskCompletedEventId": { + "type": "integer" + } + } + }, + "workflowExecutionTimedOutEventAttributes": { + "type": "structure", + "members": { + "timeoutType": {}, + "childPolicy": {} + } + }, + "workflowExecutionCanceledEventAttributes": { + "type": "structure", + "members": { + "details": {}, + "decisionTaskCompletedEventId": { + "type": "integer" + } + } + }, + "cancelWorkflowExecutionFailedEventAttributes": { + "type": "structure", + "members": { + "cause": {}, + "decisionTaskCompletedEventId": { + "type": "integer" + } + } + }, + "workflowExecutionContinuedAsNewEventAttributes": { + "type": "structure", + "members": { + "input": {}, + "decisionTaskCompletedEventId": { + "type": "integer" + }, + "newExecutionRunId": {}, + "executionStartToCloseTimeout": {}, + "taskList": { + "type": "structure", + "members": { + "name": {} + } + }, + "taskStartToCloseTimeout": {}, + "childPolicy": {}, + "tagList": { + "type": "list", + "members": {} + }, + "workflowType": { + "type": "structure", + "members": { + "name": {}, + "version": {} + } + } + } + }, + "continueAsNewWorkflowExecutionFailedEventAttributes": { + "type": "structure", + "members": { + "cause": {}, + "decisionTaskCompletedEventId": { + "type": "integer" + } + } + }, + "workflowExecutionTerminatedEventAttributes": { + "type": "structure", + "members": { + "reason": {}, + "details": {}, + "childPolicy": {}, + "cause": {} + } + }, + "workflowExecutionCancelRequestedEventAttributes": { + "type": "structure", + "members": { + "externalWorkflowExecution": { + "type": "structure", + "members": { + "workflowId": {}, + "runId": {} + } + }, + "externalInitiatedEventId": { + "type": "integer" + }, + "cause": {} + } + }, + "decisionTaskScheduledEventAttributes": { + "type": "structure", + "members": { + "taskList": { + "type": "structure", + "members": { + "name": {} + } + }, + "startToCloseTimeout": {} + } + }, + "decisionTaskStartedEventAttributes": { + "type": "structure", + "members": { + "identity": {}, + "scheduledEventId": { + "type": "integer" + } + } + }, + "decisionTaskCompletedEventAttributes": { + "type": "structure", + "members": { + "executionContext": {}, + "scheduledEventId": { + "type": "integer" + }, + "startedEventId": { + "type": "integer" + } + } + }, + "decisionTaskTimedOutEventAttributes": { + "type": "structure", + "members": { + "timeoutType": {}, + "scheduledEventId": { + "type": "integer" + }, + "startedEventId": { + "type": "integer" + } + } + }, + "activityTaskScheduledEventAttributes": { + "type": "structure", + "members": { + "activityType": { + "type": "structure", + "members": { + "name": {}, + "version": {} + } + }, + "activityId": {}, + "input": {}, + "control": {}, + "scheduleToStartTimeout": {}, + "scheduleToCloseTimeout": {}, + "startToCloseTimeout": {}, + "taskList": { + "type": "structure", + "members": { + "name": {} + } + }, + "decisionTaskCompletedEventId": { + "type": "integer" + }, + "heartbeatTimeout": {} + } + }, + "activityTaskStartedEventAttributes": { + "type": "structure", + "members": { + "identity": {}, + "scheduledEventId": { + "type": "integer" + } + } + }, + "activityTaskCompletedEventAttributes": { + "type": "structure", + "members": { + "result": {}, + "scheduledEventId": { + "type": "integer" + }, + "startedEventId": { + "type": "integer" + } + } + }, + "activityTaskFailedEventAttributes": { + "type": "structure", + "members": { + "reason": {}, + "details": {}, + "scheduledEventId": { + "type": "integer" + }, + "startedEventId": { + "type": "integer" + } + } + }, + "activityTaskTimedOutEventAttributes": { + "type": "structure", + "members": { + "timeoutType": {}, + "scheduledEventId": { + "type": "integer" + }, + "startedEventId": { + "type": "integer" + }, + "details": {} + } + }, + "activityTaskCanceledEventAttributes": { + "type": "structure", + "members": { + "details": {}, + "scheduledEventId": { + "type": "integer" + }, + "startedEventId": { + "type": "integer" + }, + "latestCancelRequestedEventId": { + "type": "integer" + } + } + }, + "activityTaskCancelRequestedEventAttributes": { + "type": "structure", + "members": { + "decisionTaskCompletedEventId": { + "type": "integer" + }, + "activityId": {} + } + }, + "workflowExecutionSignaledEventAttributes": { + "type": "structure", + "members": { + "signalName": {}, + "input": {}, + "externalWorkflowExecution": { + "type": "structure", + "members": { + "workflowId": {}, + "runId": {} + } + }, + "externalInitiatedEventId": { + "type": "integer" + } + } + }, + "markerRecordedEventAttributes": { + "type": "structure", + "members": { + "markerName": {}, + "details": {}, + "decisionTaskCompletedEventId": { + "type": "integer" + } + } + }, + "recordMarkerFailedEventAttributes": { + "type": "structure", + "members": { + "markerName": {}, + "cause": {}, + "decisionTaskCompletedEventId": { + "type": "integer" + } + } + }, + "timerStartedEventAttributes": { + "type": "structure", + "members": { + "timerId": {}, + "control": {}, + "startToFireTimeout": {}, + "decisionTaskCompletedEventId": { + "type": "integer" + } + } + }, + "timerFiredEventAttributes": { + "type": "structure", + "members": { + "timerId": {}, + "startedEventId": { + "type": "integer" + } + } + }, + "timerCanceledEventAttributes": { + "type": "structure", + "members": { + "timerId": {}, + "startedEventId": { + "type": "integer" + }, + "decisionTaskCompletedEventId": { + "type": "integer" + } + } + }, + "startChildWorkflowExecutionInitiatedEventAttributes": { + "type": "structure", + "members": { + "workflowId": {}, + "workflowType": { + "type": "structure", + "members": { + "name": {}, + "version": {} + } + }, + "control": {}, + "input": {}, + "executionStartToCloseTimeout": {}, + "taskList": { + "type": "structure", + "members": { + "name": {} + } + }, + "decisionTaskCompletedEventId": { + "type": "integer" + }, + "childPolicy": {}, + "taskStartToCloseTimeout": {}, + "tagList": { + "type": "list", + "members": {} + } + } + }, + "childWorkflowExecutionStartedEventAttributes": { + "type": "structure", + "members": { + "workflowExecution": { + "type": "structure", + "members": { + "workflowId": {}, + "runId": {} + } + }, + "workflowType": { + "type": "structure", + "members": { + "name": {}, + "version": {} + } + }, + "initiatedEventId": { + "type": "integer" + } + } + }, + "childWorkflowExecutionCompletedEventAttributes": { + "type": "structure", + "members": { + "workflowExecution": { + "type": "structure", + "members": { + "workflowId": {}, + "runId": {} + } + }, + "workflowType": { + "type": "structure", + "members": { + "name": {}, + "version": {} + } + }, + "result": {}, + "initiatedEventId": { + "type": "integer" + }, + "startedEventId": { + "type": "integer" + } + } + }, + "childWorkflowExecutionFailedEventAttributes": { + "type": "structure", + "members": { + "workflowExecution": { + "type": "structure", + "members": { + "workflowId": {}, + "runId": {} + } + }, + "workflowType": { + "type": "structure", + "members": { + "name": {}, + "version": {} + } + }, + "reason": {}, + "details": {}, + "initiatedEventId": { + "type": "integer" + }, + "startedEventId": { + "type": "integer" + } + } + }, + "childWorkflowExecutionTimedOutEventAttributes": { + "type": "structure", + "members": { + "workflowExecution": { + "type": "structure", + "members": { + "workflowId": {}, + "runId": {} + } + }, + "workflowType": { + "type": "structure", + "members": { + "name": {}, + "version": {} + } + }, + "timeoutType": {}, + "initiatedEventId": { + "type": "integer" + }, + "startedEventId": { + "type": "integer" + } + } + }, + "childWorkflowExecutionCanceledEventAttributes": { + "type": "structure", + "members": { + "workflowExecution": { + "type": "structure", + "members": { + "workflowId": {}, + "runId": {} + } + }, + "workflowType": { + "type": "structure", + "members": { + "name": {}, + "version": {} + } + }, + "details": {}, + "initiatedEventId": { + "type": "integer" + }, + "startedEventId": { + "type": "integer" + } + } + }, + "childWorkflowExecutionTerminatedEventAttributes": { + "type": "structure", + "members": { + "workflowExecution": { + "type": "structure", + "members": { + "workflowId": {}, + "runId": {} + } + }, + "workflowType": { + "type": "structure", + "members": { + "name": {}, + "version": {} + } + }, + "initiatedEventId": { + "type": "integer" + }, + "startedEventId": { + "type": "integer" + } + } + }, + "signalExternalWorkflowExecutionInitiatedEventAttributes": { + "type": "structure", + "members": { + "workflowId": {}, + "runId": {}, + "signalName": {}, + "input": {}, + "decisionTaskCompletedEventId": { + "type": "integer" + }, + "control": {} + } + }, + "externalWorkflowExecutionSignaledEventAttributes": { + "type": "structure", + "members": { + "workflowExecution": { + "type": "structure", + "members": { + "workflowId": {}, + "runId": {} + } + }, + "initiatedEventId": { + "type": "integer" + } + } + }, + "signalExternalWorkflowExecutionFailedEventAttributes": { + "type": "structure", + "members": { + "workflowId": {}, + "runId": {}, + "cause": {}, + "initiatedEventId": { + "type": "integer" + }, + "decisionTaskCompletedEventId": { + "type": "integer" + }, + "control": {} + } + }, + "externalWorkflowExecutionCancelRequestedEventAttributes": { + "type": "structure", + "members": { + "workflowExecution": { + "type": "structure", + "members": { + "workflowId": {}, + "runId": {} + } + }, + "initiatedEventId": { + "type": "integer" + } + } + }, + "requestCancelExternalWorkflowExecutionInitiatedEventAttributes": { + "type": "structure", + "members": { + "workflowId": {}, + "runId": {}, + "decisionTaskCompletedEventId": { + "type": "integer" + }, + "control": {} + } + }, + "requestCancelExternalWorkflowExecutionFailedEventAttributes": { + "type": "structure", + "members": { + "workflowId": {}, + "runId": {}, + "cause": {}, + "initiatedEventId": { + "type": "integer" + }, + "decisionTaskCompletedEventId": { + "type": "integer" + }, + "control": {} + } + }, + "scheduleActivityTaskFailedEventAttributes": { + "type": "structure", + "members": { + "activityType": { + "type": "structure", + "members": { + "name": {}, + "version": {} + } + }, + "activityId": {}, + "cause": {}, + "decisionTaskCompletedEventId": { + "type": "integer" + } + } + }, + "requestCancelActivityTaskFailedEventAttributes": { + "type": "structure", + "members": { + "activityId": {}, + "cause": {}, + "decisionTaskCompletedEventId": { + "type": "integer" + } + } + }, + "startTimerFailedEventAttributes": { + "type": "structure", + "members": { + "timerId": {}, + "cause": {}, + "decisionTaskCompletedEventId": { + "type": "integer" + } + } + }, + "cancelTimerFailedEventAttributes": { + "type": "structure", + "members": { + "timerId": {}, + "cause": {}, + "decisionTaskCompletedEventId": { + "type": "integer" + } + } + }, + "startChildWorkflowExecutionFailedEventAttributes": { + "type": "structure", + "members": { + "workflowType": { + "type": "structure", + "members": { + "name": {}, + "version": {} + } + }, + "cause": {}, + "workflowId": {}, + "initiatedEventId": { + "type": "integer" + }, + "decisionTaskCompletedEventId": { + "type": "integer" + }, + "control": {} + } + } + } + } + }, + "nextPageToken": {}, + "previousStartedEventId": { + "type": "integer" + } + } + } + }, + "recordActivityTaskHeartbeat": { + "name": "RecordActivityTaskHeartbeat", + "input": { + "type": "structure", + "members": { + "taskToken": { + "required": true + }, + "details": {} + } + }, + "output": { + "type": "structure", + "members": { + "cancelRequested": { + "type": "boolean" + } + } + } + }, + "registerActivityType": { + "name": "RegisterActivityType", + "input": { + "type": "structure", + "members": { + "domain": { + "required": true + }, + "name": { + "required": true + }, + "version": { + "required": true + }, + "description": {}, + "defaultTaskStartToCloseTimeout": {}, + "defaultTaskHeartbeatTimeout": {}, + "defaultTaskList": { + "type": "structure", + "members": { + "name": { + "required": true + } + } + }, + "defaultTaskScheduleToStartTimeout": {}, + "defaultTaskScheduleToCloseTimeout": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "registerDomain": { + "name": "RegisterDomain", + "input": { + "type": "structure", + "members": { + "name": { + "required": true + }, + "description": {}, + "workflowExecutionRetentionPeriodInDays": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "registerWorkflowType": { + "name": "RegisterWorkflowType", + "input": { + "type": "structure", + "members": { + "domain": { + "required": true + }, + "name": { + "required": true + }, + "version": { + "required": true + }, + "description": {}, + "defaultTaskStartToCloseTimeout": {}, + "defaultExecutionStartToCloseTimeout": {}, + "defaultTaskList": { + "type": "structure", + "members": { + "name": { + "required": true + } + } + }, + "defaultChildPolicy": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "requestCancelWorkflowExecution": { + "name": "RequestCancelWorkflowExecution", + "input": { + "type": "structure", + "members": { + "domain": { + "required": true + }, + "workflowId": { + "required": true + }, + "runId": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "respondActivityTaskCanceled": { + "name": "RespondActivityTaskCanceled", + "input": { + "type": "structure", + "members": { + "taskToken": { + "required": true + }, + "details": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "respondActivityTaskCompleted": { + "name": "RespondActivityTaskCompleted", + "input": { + "type": "structure", + "members": { + "taskToken": { + "required": true + }, + "result": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "respondActivityTaskFailed": { + "name": "RespondActivityTaskFailed", + "input": { + "type": "structure", + "members": { + "taskToken": { + "required": true + }, + "reason": {}, + "details": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "respondDecisionTaskCompleted": { + "name": "RespondDecisionTaskCompleted", + "input": { + "type": "structure", + "members": { + "taskToken": { + "required": true + }, + "decisions": { + "type": "list", + "members": { + "type": "structure", + "members": { + "decisionType": { + "required": true + }, + "scheduleActivityTaskDecisionAttributes": { + "type": "structure", + "members": { + "activityType": { + "type": "structure", + "members": { + "name": { + "required": true + }, + "version": { + "required": true + } + }, + "required": true + }, + "activityId": { + "required": true + }, + "control": {}, + "input": {}, + "scheduleToCloseTimeout": {}, + "taskList": { + "type": "structure", + "members": { + "name": { + "required": true + } + } + }, + "scheduleToStartTimeout": {}, + "startToCloseTimeout": {}, + "heartbeatTimeout": {} + } + }, + "requestCancelActivityTaskDecisionAttributes": { + "type": "structure", + "members": { + "activityId": { + "required": true + } + } + }, + "completeWorkflowExecutionDecisionAttributes": { + "type": "structure", + "members": { + "result": {} + } + }, + "failWorkflowExecutionDecisionAttributes": { + "type": "structure", + "members": { + "reason": {}, + "details": {} + } + }, + "cancelWorkflowExecutionDecisionAttributes": { + "type": "structure", + "members": { + "details": {} + } + }, + "continueAsNewWorkflowExecutionDecisionAttributes": { + "type": "structure", + "members": { + "input": {}, + "executionStartToCloseTimeout": {}, + "taskList": { + "type": "structure", + "members": { + "name": { + "required": true + } + } + }, + "taskStartToCloseTimeout": {}, + "childPolicy": {}, + "tagList": { + "type": "list", + "members": {} + }, + "workflowTypeVersion": {} + } + }, + "recordMarkerDecisionAttributes": { + "type": "structure", + "members": { + "markerName": { + "required": true + }, + "details": {} + } + }, + "startTimerDecisionAttributes": { + "type": "structure", + "members": { + "timerId": { + "required": true + }, + "control": {}, + "startToFireTimeout": { + "required": true + } + } + }, + "cancelTimerDecisionAttributes": { + "type": "structure", + "members": { + "timerId": { + "required": true + } + } + }, + "signalExternalWorkflowExecutionDecisionAttributes": { + "type": "structure", + "members": { + "workflowId": { + "required": true + }, + "runId": {}, + "signalName": { + "required": true + }, + "input": {}, + "control": {} + } + }, + "requestCancelExternalWorkflowExecutionDecisionAttributes": { + "type": "structure", + "members": { + "workflowId": { + "required": true + }, + "runId": {}, + "control": {} + } + }, + "startChildWorkflowExecutionDecisionAttributes": { + "type": "structure", + "members": { + "workflowType": { + "type": "structure", + "members": { + "name": { + "required": true + }, + "version": { + "required": true + } + }, + "required": true + }, + "workflowId": { + "required": true + }, + "control": {}, + "input": {}, + "executionStartToCloseTimeout": {}, + "taskList": { + "type": "structure", + "members": { + "name": { + "required": true + } + } + }, + "taskStartToCloseTimeout": {}, + "childPolicy": {}, + "tagList": { + "type": "list", + "members": {} + } + } + } + } + } + }, + "executionContext": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "signalWorkflowExecution": { + "name": "SignalWorkflowExecution", + "input": { + "type": "structure", + "members": { + "domain": { + "required": true + }, + "workflowId": { + "required": true + }, + "runId": {}, + "signalName": { + "required": true + }, + "input": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "startWorkflowExecution": { + "name": "StartWorkflowExecution", + "input": { + "type": "structure", + "members": { + "domain": { + "required": true + }, + "workflowId": { + "required": true + }, + "workflowType": { + "type": "structure", + "members": { + "name": { + "required": true + }, + "version": { + "required": true + } + }, + "required": true + }, + "taskList": { + "type": "structure", + "members": { + "name": { + "required": true + } + } + }, + "input": {}, + "executionStartToCloseTimeout": {}, + "tagList": { + "type": "list", + "members": {} + }, + "taskStartToCloseTimeout": {}, + "childPolicy": {} + } + }, + "output": { + "type": "structure", + "members": { + "runId": {} + } + } + }, + "terminateWorkflowExecution": { + "name": "TerminateWorkflowExecution", + "input": { + "type": "structure", + "members": { + "domain": { + "required": true + }, + "workflowId": { + "required": true + }, + "runId": {}, + "reason": {}, + "details": {}, + "childPolicy": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + } + }, + "pagination": { + "getWorkflowExecutionHistory": { + "limitKey": "maximumPageSize", + "inputToken": "nextPageToken", + "outputToken": "nextPageToken", + "resultKey": "events" + }, + "listActivityTypes": { + "limitKey": "maximumPageSize", + "inputToken": "nextPageToken", + "outputToken": "nextPageToken", + "resultKey": "typeInfos" + }, + "listClosedWorkflowExecutions": { + "limitKey": "maximumPageSize", + "inputToken": "nextPageToken", + "outputToken": "nextPageToken", + "resultKey": "executionInfos" + }, + "listDomains": { + "limitKey": "maximumPageSize", + "inputToken": "nextPageToken", + "outputToken": "nextPageToken", + "resultKey": "domainInfos" + }, + "listOpenWorkflowExecutions": { + "limitKey": "maximumPageSize", + "inputToken": "nextPageToken", + "outputToken": "nextPageToken", + "resultKey": "executionInfos" + }, + "listWorkflowTypes": { + "limitKey": "maximumPageSize", + "inputToken": "nextPageToken", + "outputToken": "nextPageToken", + "resultKey": "typeInfos" + }, + "pollForDecisionTask": { + "limitKey": "maximumPageSize", + "inputToken": "nextPageToken", + "outputToken": "nextPageToken", + "resultKey": "events" + } + } +} \ No newline at end of file diff --git a/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/SimpleDB-2009-04-15.json b/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/SimpleDB-2009-04-15.json new file mode 100644 index 00000000..cd2f10c4 --- /dev/null +++ b/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/SimpleDB-2009-04-15.json @@ -0,0 +1,402 @@ +{ + "format": "query", + "apiVersion": "2009-04-15", + "endpointPrefix": "sdb", + "resultWrapped": true, + "serviceFullName": "Amazon SimpleDB", + "signatureVersion": "v2", + "timestampFormat": "iso8601", + "operations": { + "batchDeleteAttributes": { + "name": "BatchDeleteAttributes", + "input": { + "type": "structure", + "members": { + "DomainName": { + "required": true + }, + "Items": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": { + "required": true, + "name": "ItemName" + }, + "Attributes": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": { + "required": true + }, + "AlternateNameEncoding": {}, + "Value": { + "required": true + }, + "AlternateValueEncoding": {} + }, + "name": "Attribute" + }, + "flattened": true + } + }, + "name": "Item" + }, + "flattened": true, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "batchPutAttributes": { + "name": "BatchPutAttributes", + "input": { + "type": "structure", + "members": { + "DomainName": { + "required": true + }, + "Items": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": { + "required": true, + "name": "ItemName" + }, + "Attributes": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": { + "required": true + }, + "Value": { + "required": true + }, + "Replace": { + "type": "boolean" + } + }, + "name": "Attribute" + }, + "flattened": true, + "required": true + } + }, + "name": "Item" + }, + "flattened": true, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "createDomain": { + "name": "CreateDomain", + "input": { + "type": "structure", + "members": { + "DomainName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteAttributes": { + "name": "DeleteAttributes", + "input": { + "type": "structure", + "members": { + "DomainName": { + "required": true + }, + "ItemName": { + "required": true + }, + "Attributes": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": { + "required": true + }, + "AlternateNameEncoding": {}, + "Value": { + "required": true + }, + "AlternateValueEncoding": {} + }, + "name": "Attribute" + }, + "flattened": true + }, + "Expected": { + "type": "structure", + "members": { + "Name": {}, + "Value": {}, + "Exists": { + "type": "boolean" + } + } + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "deleteDomain": { + "name": "DeleteDomain", + "input": { + "type": "structure", + "members": { + "DomainName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "domainMetadata": { + "name": "DomainMetadata", + "input": { + "type": "structure", + "members": { + "DomainName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "ItemCount": { + "type": "integer" + }, + "ItemNamesSizeBytes": { + "type": "integer" + }, + "AttributeNameCount": { + "type": "integer" + }, + "AttributeNamesSizeBytes": { + "type": "integer" + }, + "AttributeValueCount": { + "type": "integer" + }, + "AttributeValuesSizeBytes": { + "type": "integer" + }, + "Timestamp": { + "type": "integer" + } + } + } + }, + "getAttributes": { + "name": "GetAttributes", + "input": { + "type": "structure", + "members": { + "DomainName": { + "required": true + }, + "ItemName": { + "required": true + }, + "AttributeNames": { + "type": "list", + "members": { + "name": "AttributeName" + }, + "flattened": true + }, + "ConsistentRead": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "Attribute": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": {}, + "AlternateNameEncoding": {}, + "Value": {}, + "AlternateValueEncoding": {} + }, + "name": "Attribute" + }, + "flattened": true, + "name": "Attributes" + } + } + } + }, + "listDomains": { + "name": "ListDomains", + "input": { + "type": "structure", + "members": { + "MaxNumberOfDomains": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "DomainName": { + "type": "list", + "members": { + "name": "DomainName" + }, + "flattened": true, + "name": "DomainNames" + }, + "NextToken": {} + } + } + }, + "putAttributes": { + "name": "PutAttributes", + "input": { + "type": "structure", + "members": { + "DomainName": { + "required": true + }, + "ItemName": { + "required": true + }, + "Attributes": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": { + "required": true + }, + "Value": { + "required": true + }, + "Replace": { + "type": "boolean" + } + }, + "name": "Attribute" + }, + "flattened": true, + "required": true + }, + "Expected": { + "type": "structure", + "members": { + "Name": {}, + "Value": {}, + "Exists": { + "type": "boolean" + } + } + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "select": { + "name": "Select", + "input": { + "type": "structure", + "members": { + "SelectExpression": { + "required": true + }, + "NextToken": {}, + "ConsistentRead": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "Item": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": {}, + "AlternateNameEncoding": {}, + "Attribute": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Name": {}, + "AlternateNameEncoding": {}, + "Value": {}, + "AlternateValueEncoding": {} + }, + "name": "Attribute" + }, + "flattened": true, + "name": "Attributes" + } + }, + "name": "Item" + }, + "flattened": true, + "name": "Items" + }, + "NextToken": {} + } + } + } + }, + "pagination": { + "listDomains": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "limitKey": "MaxNumberOfDomains", + "resultKey": "DomainNames" + }, + "select": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "resultKey": "Items" + } + } +} \ No newline at end of file diff --git a/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/StorageGateway-2013-06-30.json b/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/StorageGateway-2013-06-30.json new file mode 100644 index 00000000..6ad09d51 --- /dev/null +++ b/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/StorageGateway-2013-06-30.json @@ -0,0 +1,1335 @@ +{ + "format": "json", + "apiVersion": "2013-06-30", + "endpointPrefix": "storagegateway", + "jsonVersion": "1.1", + "serviceFullName": "AWS Storage Gateway", + "signatureVersion": "v4", + "targetPrefix": "StorageGateway_20130630", + "timestampFormat": "iso8601", + "operations": { + "activateGateway": { + "name": "ActivateGateway", + "input": { + "type": "structure", + "members": { + "ActivationKey": { + "required": true + }, + "GatewayName": { + "required": true + }, + "GatewayTimezone": { + "required": true + }, + "GatewayRegion": { + "required": true + }, + "GatewayType": {}, + "TapeDriveType": {}, + "MediumChangerType": {} + } + }, + "output": { + "type": "structure", + "members": { + "GatewayARN": {} + } + } + }, + "addCache": { + "name": "AddCache", + "input": { + "type": "structure", + "members": { + "GatewayARN": { + "required": true + }, + "DiskIds": { + "type": "list", + "members": {}, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "GatewayARN": {} + } + } + }, + "addUploadBuffer": { + "name": "AddUploadBuffer", + "input": { + "type": "structure", + "members": { + "GatewayARN": { + "required": true + }, + "DiskIds": { + "type": "list", + "members": {}, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "GatewayARN": {} + } + } + }, + "addWorkingStorage": { + "name": "AddWorkingStorage", + "input": { + "type": "structure", + "members": { + "GatewayARN": { + "required": true + }, + "DiskIds": { + "type": "list", + "members": {}, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "GatewayARN": {} + } + } + }, + "cancelArchival": { + "name": "CancelArchival", + "input": { + "type": "structure", + "members": { + "GatewayARN": { + "required": true + }, + "TapeARN": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "TapeARN": {} + } + } + }, + "cancelRetrieval": { + "name": "CancelRetrieval", + "input": { + "type": "structure", + "members": { + "GatewayARN": { + "required": true + }, + "TapeARN": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "TapeARN": {} + } + } + }, + "createCachediSCSIVolume": { + "name": "CreateCachediSCSIVolume", + "input": { + "type": "structure", + "members": { + "GatewayARN": { + "required": true + }, + "VolumeSizeInBytes": { + "type": "integer", + "required": true + }, + "SnapshotId": {}, + "TargetName": { + "required": true + }, + "NetworkInterfaceId": { + "required": true + }, + "ClientToken": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "VolumeARN": {}, + "TargetARN": {} + } + } + }, + "createSnapshot": { + "name": "CreateSnapshot", + "input": { + "type": "structure", + "members": { + "VolumeARN": { + "required": true + }, + "SnapshotDescription": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "VolumeARN": {}, + "SnapshotId": {} + } + } + }, + "createSnapshotFromVolumeRecoveryPoint": { + "name": "CreateSnapshotFromVolumeRecoveryPoint", + "input": { + "type": "structure", + "members": { + "VolumeARN": { + "required": true + }, + "SnapshotDescription": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "SnapshotId": {}, + "VolumeARN": {}, + "VolumeRecoveryPointTime": {} + } + } + }, + "createStorediSCSIVolume": { + "name": "CreateStorediSCSIVolume", + "input": { + "type": "structure", + "members": { + "GatewayARN": { + "required": true + }, + "DiskId": { + "required": true + }, + "SnapshotId": {}, + "PreserveExistingData": { + "type": "boolean", + "required": true + }, + "TargetName": { + "required": true + }, + "NetworkInterfaceId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "VolumeARN": {}, + "VolumeSizeInBytes": { + "type": "integer" + }, + "TargetARN": {} + } + } + }, + "createTapes": { + "name": "CreateTapes", + "input": { + "type": "structure", + "members": { + "GatewayARN": { + "required": true + }, + "TapeSizeInBytes": { + "type": "integer", + "required": true + }, + "ClientToken": { + "required": true + }, + "NumTapesToCreate": { + "type": "integer", + "required": true + }, + "TapeBarcodePrefix": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "TapeARNs": { + "type": "list", + "members": {} + } + } + } + }, + "deleteBandwidthRateLimit": { + "name": "DeleteBandwidthRateLimit", + "input": { + "type": "structure", + "members": { + "GatewayARN": { + "required": true + }, + "BandwidthType": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "GatewayARN": {} + } + } + }, + "deleteChapCredentials": { + "name": "DeleteChapCredentials", + "input": { + "type": "structure", + "members": { + "TargetARN": { + "required": true + }, + "InitiatorName": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "TargetARN": {}, + "InitiatorName": {} + } + } + }, + "deleteGateway": { + "name": "DeleteGateway", + "input": { + "type": "structure", + "members": { + "GatewayARN": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "GatewayARN": {} + } + } + }, + "deleteSnapshotSchedule": { + "name": "DeleteSnapshotSchedule", + "input": { + "type": "structure", + "members": { + "VolumeARN": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "VolumeARN": {} + } + } + }, + "deleteTape": { + "name": "DeleteTape", + "input": { + "type": "structure", + "members": { + "GatewayARN": { + "required": true + }, + "TapeARN": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "TapeARN": {} + } + } + }, + "deleteTapeArchive": { + "name": "DeleteTapeArchive", + "input": { + "type": "structure", + "members": { + "TapeARN": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "TapeARN": {} + } + } + }, + "deleteVolume": { + "name": "DeleteVolume", + "input": { + "type": "structure", + "members": { + "VolumeARN": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "VolumeARN": {} + } + } + }, + "describeBandwidthRateLimit": { + "name": "DescribeBandwidthRateLimit", + "input": { + "type": "structure", + "members": { + "GatewayARN": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "GatewayARN": {}, + "AverageUploadRateLimitInBitsPerSec": { + "type": "integer" + }, + "AverageDownloadRateLimitInBitsPerSec": { + "type": "integer" + } + } + } + }, + "describeCache": { + "name": "DescribeCache", + "input": { + "type": "structure", + "members": { + "GatewayARN": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "GatewayARN": {}, + "DiskIds": { + "type": "list", + "members": {} + }, + "CacheAllocatedInBytes": { + "type": "integer" + }, + "CacheUsedPercentage": { + "type": "float" + }, + "CacheDirtyPercentage": { + "type": "float" + }, + "CacheHitPercentage": { + "type": "float" + }, + "CacheMissPercentage": { + "type": "float" + } + } + } + }, + "describeCachediSCSIVolumes": { + "name": "DescribeCachediSCSIVolumes", + "input": { + "type": "structure", + "members": { + "VolumeARNs": { + "type": "list", + "members": {}, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "CachediSCSIVolumes": { + "type": "list", + "members": { + "type": "structure", + "members": { + "VolumeARN": {}, + "VolumeId": {}, + "VolumeType": {}, + "VolumeStatus": {}, + "VolumeSizeInBytes": { + "type": "integer" + }, + "VolumeProgress": { + "type": "float" + }, + "SourceSnapshotId": {}, + "VolumeiSCSIAttributes": { + "type": "structure", + "members": { + "TargetARN": {}, + "NetworkInterfaceId": {}, + "NetworkInterfacePort": { + "type": "integer" + }, + "LunNumber": { + "type": "integer" + }, + "ChapEnabled": { + "type": "boolean" + } + } + } + } + } + } + } + } + }, + "describeChapCredentials": { + "name": "DescribeChapCredentials", + "input": { + "type": "structure", + "members": { + "TargetARN": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "ChapCredentials": { + "type": "list", + "members": { + "type": "structure", + "members": { + "TargetARN": {}, + "SecretToAuthenticateInitiator": {}, + "InitiatorName": {}, + "SecretToAuthenticateTarget": {} + } + } + } + } + } + }, + "describeGatewayInformation": { + "name": "DescribeGatewayInformation", + "input": { + "type": "structure", + "members": { + "GatewayARN": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "GatewayARN": {}, + "GatewayId": {}, + "GatewayTimezone": {}, + "GatewayState": {}, + "GatewayNetworkInterfaces": { + "type": "list", + "members": { + "type": "structure", + "members": { + "Ipv4Address": {}, + "MacAddress": {}, + "Ipv6Address": {} + } + } + }, + "GatewayType": {}, + "NextUpdateAvailabilityDate": {} + } + } + }, + "describeMaintenanceStartTime": { + "name": "DescribeMaintenanceStartTime", + "input": { + "type": "structure", + "members": { + "GatewayARN": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "GatewayARN": {}, + "HourOfDay": { + "type": "integer" + }, + "MinuteOfHour": { + "type": "integer" + }, + "DayOfWeek": { + "type": "integer" + }, + "Timezone": {} + } + } + }, + "describeSnapshotSchedule": { + "name": "DescribeSnapshotSchedule", + "input": { + "type": "structure", + "members": { + "VolumeARN": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "VolumeARN": {}, + "StartAt": { + "type": "integer" + }, + "RecurrenceInHours": { + "type": "integer" + }, + "Description": {}, + "Timezone": {} + } + } + }, + "describeStorediSCSIVolumes": { + "name": "DescribeStorediSCSIVolumes", + "input": { + "type": "structure", + "members": { + "VolumeARNs": { + "type": "list", + "members": {}, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "StorediSCSIVolumes": { + "type": "list", + "members": { + "type": "structure", + "members": { + "VolumeARN": {}, + "VolumeId": {}, + "VolumeType": {}, + "VolumeStatus": {}, + "VolumeSizeInBytes": { + "type": "integer" + }, + "VolumeProgress": { + "type": "float" + }, + "VolumeDiskId": {}, + "SourceSnapshotId": {}, + "PreservedExistingData": { + "type": "boolean" + }, + "VolumeiSCSIAttributes": { + "type": "structure", + "members": { + "TargetARN": {}, + "NetworkInterfaceId": {}, + "NetworkInterfacePort": { + "type": "integer" + }, + "LunNumber": { + "type": "integer" + }, + "ChapEnabled": { + "type": "boolean" + } + } + } + } + } + } + } + } + }, + "describeTapeArchives": { + "name": "DescribeTapeArchives", + "input": { + "type": "structure", + "members": { + "TapeARNs": { + "type": "list", + "members": {} + }, + "Marker": {}, + "Limit": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "TapeArchives": { + "type": "list", + "members": { + "type": "structure", + "members": { + "TapeARN": {}, + "TapeBarcode": {}, + "TapeSizeInBytes": { + "type": "integer" + }, + "CompletionTime": { + "type": "timestamp" + }, + "RetrievedTo": {}, + "TapeStatus": {} + } + } + }, + "Marker": {} + } + } + }, + "describeTapeRecoveryPoints": { + "name": "DescribeTapeRecoveryPoints", + "input": { + "type": "structure", + "members": { + "GatewayARN": { + "required": true + }, + "Marker": {}, + "Limit": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "GatewayARN": {}, + "TapeRecoveryPointInfos": { + "type": "list", + "members": { + "type": "structure", + "members": { + "TapeARN": {}, + "TapeRecoveryPointTime": { + "type": "timestamp" + }, + "TapeSizeInBytes": { + "type": "integer" + }, + "TapeStatus": {} + } + } + }, + "Marker": {} + } + } + }, + "describeTapes": { + "name": "DescribeTapes", + "input": { + "type": "structure", + "members": { + "GatewayARN": { + "required": true + }, + "TapeARNs": { + "type": "list", + "members": {} + }, + "Marker": {}, + "Limit": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "Tapes": { + "type": "list", + "members": { + "type": "structure", + "members": { + "TapeARN": {}, + "TapeBarcode": {}, + "TapeSizeInBytes": { + "type": "integer" + }, + "TapeStatus": {}, + "VTLDevice": {}, + "Progress": { + "type": "float" + } + } + } + }, + "Marker": {} + } + } + }, + "describeUploadBuffer": { + "name": "DescribeUploadBuffer", + "input": { + "type": "structure", + "members": { + "GatewayARN": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "GatewayARN": {}, + "DiskIds": { + "type": "list", + "members": {} + }, + "UploadBufferUsedInBytes": { + "type": "integer" + }, + "UploadBufferAllocatedInBytes": { + "type": "integer" + } + } + } + }, + "describeVTLDevices": { + "name": "DescribeVTLDevices", + "input": { + "type": "structure", + "members": { + "GatewayARN": { + "required": true + }, + "VTLDeviceARNs": { + "type": "list", + "members": {} + }, + "Marker": {}, + "Limit": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "GatewayARN": {}, + "VTLDevices": { + "type": "list", + "members": { + "type": "structure", + "members": { + "VTLDeviceARN": {}, + "VTLDeviceType": {}, + "VTLDeviceVendor": {}, + "VTLDeviceProductIdentifier": {}, + "DeviceiSCSIAttributes": { + "type": "structure", + "members": { + "TargetARN": {}, + "NetworkInterfaceId": {}, + "NetworkInterfacePort": { + "type": "integer" + }, + "ChapEnabled": { + "type": "boolean" + } + } + } + } + } + }, + "Marker": {} + } + } + }, + "describeWorkingStorage": { + "name": "DescribeWorkingStorage", + "input": { + "type": "structure", + "members": { + "GatewayARN": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "GatewayARN": {}, + "DiskIds": { + "type": "list", + "members": {} + }, + "WorkingStorageUsedInBytes": { + "type": "integer" + }, + "WorkingStorageAllocatedInBytes": { + "type": "integer" + } + } + } + }, + "disableGateway": { + "name": "DisableGateway", + "input": { + "type": "structure", + "members": { + "GatewayARN": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "GatewayARN": {} + } + } + }, + "listGateways": { + "name": "ListGateways", + "input": { + "type": "structure", + "members": { + "Marker": {}, + "Limit": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "Gateways": { + "type": "list", + "members": { + "type": "structure", + "members": { + "GatewayARN": {}, + "GatewayType": {}, + "GatewayOperationalState": {} + } + } + }, + "Marker": {} + } + } + }, + "listLocalDisks": { + "name": "ListLocalDisks", + "input": { + "type": "structure", + "members": { + "GatewayARN": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "GatewayARN": {}, + "Disks": { + "type": "list", + "members": { + "type": "structure", + "members": { + "DiskId": {}, + "DiskPath": {}, + "DiskNode": {}, + "DiskSizeInBytes": { + "type": "integer" + }, + "DiskAllocationType": {}, + "DiskAllocationResource": {} + } + } + } + } + } + }, + "listVolumeRecoveryPoints": { + "name": "ListVolumeRecoveryPoints", + "input": { + "type": "structure", + "members": { + "GatewayARN": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "GatewayARN": {}, + "VolumeRecoveryPointInfos": { + "type": "list", + "members": { + "type": "structure", + "members": { + "VolumeARN": {}, + "VolumeSizeInBytes": { + "type": "integer" + }, + "VolumeUsageInBytes": { + "type": "integer" + }, + "VolumeRecoveryPointTime": {} + } + } + } + } + } + }, + "listVolumes": { + "name": "ListVolumes", + "input": { + "type": "structure", + "members": { + "GatewayARN": { + "required": true + }, + "Marker": {}, + "Limit": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "GatewayARN": {}, + "Marker": {}, + "VolumeInfos": { + "type": "list", + "members": { + "type": "structure", + "members": { + "VolumeARN": {}, + "VolumeType": {} + } + } + } + } + } + }, + "retrieveTapeArchive": { + "name": "RetrieveTapeArchive", + "input": { + "type": "structure", + "members": { + "TapeARN": { + "required": true + }, + "GatewayARN": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "TapeARN": {} + } + } + }, + "retrieveTapeRecoveryPoint": { + "name": "RetrieveTapeRecoveryPoint", + "input": { + "type": "structure", + "members": { + "TapeARN": { + "required": true + }, + "GatewayARN": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "TapeARN": {} + } + } + }, + "shutdownGateway": { + "name": "ShutdownGateway", + "input": { + "type": "structure", + "members": { + "GatewayARN": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "GatewayARN": {} + } + } + }, + "startGateway": { + "name": "StartGateway", + "input": { + "type": "structure", + "members": { + "GatewayARN": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "GatewayARN": {} + } + } + }, + "updateBandwidthRateLimit": { + "name": "UpdateBandwidthRateLimit", + "input": { + "type": "structure", + "members": { + "GatewayARN": { + "required": true + }, + "AverageUploadRateLimitInBitsPerSec": { + "type": "integer" + }, + "AverageDownloadRateLimitInBitsPerSec": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "GatewayARN": {} + } + } + }, + "updateChapCredentials": { + "name": "UpdateChapCredentials", + "input": { + "type": "structure", + "members": { + "TargetARN": { + "required": true + }, + "SecretToAuthenticateInitiator": { + "required": true + }, + "InitiatorName": { + "required": true + }, + "SecretToAuthenticateTarget": {} + } + }, + "output": { + "type": "structure", + "members": { + "TargetARN": {}, + "InitiatorName": {} + } + } + }, + "updateGatewayInformation": { + "name": "UpdateGatewayInformation", + "input": { + "type": "structure", + "members": { + "GatewayARN": { + "required": true + }, + "GatewayName": {}, + "GatewayTimezone": {} + } + }, + "output": { + "type": "structure", + "members": { + "GatewayARN": {} + } + } + }, + "updateGatewaySoftwareNow": { + "name": "UpdateGatewaySoftwareNow", + "input": { + "type": "structure", + "members": { + "GatewayARN": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "GatewayARN": {} + } + } + }, + "updateMaintenanceStartTime": { + "name": "UpdateMaintenanceStartTime", + "input": { + "type": "structure", + "members": { + "GatewayARN": { + "required": true + }, + "HourOfDay": { + "type": "integer", + "required": true + }, + "MinuteOfHour": { + "type": "integer", + "required": true + }, + "DayOfWeek": { + "type": "integer", + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "GatewayARN": {} + } + } + }, + "updateSnapshotSchedule": { + "name": "UpdateSnapshotSchedule", + "input": { + "type": "structure", + "members": { + "VolumeARN": { + "required": true + }, + "StartAt": { + "type": "integer", + "required": true + }, + "RecurrenceInHours": { + "type": "integer", + "required": true + }, + "Description": {} + } + }, + "output": { + "type": "structure", + "members": { + "VolumeARN": {} + } + } + } + }, + "pagination": { + "describeCachediSCSIVolumes": { + "resultKey": "CachediSCSIVolumes" + }, + "describeStorediSCSIVolumes": { + "resultKey": "StorediSCSIVolumes" + }, + "describeTapeArchives": { + "inputToken": "Marker", + "outputToken": "Marker", + "limitKey": "Limit", + "resultKey": "TapeArchives" + }, + "describeTapeRecoveryPoints": { + "inputToken": "Marker", + "outputToken": "Marker", + "limitKey": "Limit", + "resultKey": "TapeRecoveryPointInfos" + }, + "describeTapes": { + "inputToken": "Marker", + "outputToken": "Marker", + "limitKey": "Limit", + "resultKey": "Tapes" + }, + "describeVTLDevices": { + "inputToken": "Marker", + "outputToken": "Marker", + "limitKey": "Limit", + "resultKey": "VTLDevices" + }, + "listGateways": { + "inputToken": "Marker", + "outputToken": "Marker", + "limitKey": "Limit", + "resultKey": "Gateways" + }, + "listLocalDisks": { + "resultKey": "Disks" + }, + "listVolumeRecoveryPoints": { + "resultKey": "VolumeRecoveryPointInfos" + }, + "listVolumes": { + "inputToken": "Marker", + "outputToken": "Marker", + "limitKey": "Limit", + "resultKey": "VolumeInfos" + } + } +} \ No newline at end of file diff --git a/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/Support-2013-04-15.json b/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/Support-2013-04-15.json new file mode 100644 index 00000000..5474326b --- /dev/null +++ b/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/Support-2013-04-15.json @@ -0,0 +1,500 @@ +{ + "format": "json", + "apiVersion": "2013-04-15", + "endpointPrefix": "support", + "jsonVersion": "1.1", + "serviceFullName": "AWS Support", + "signatureVersion": "v4", + "targetPrefix": "AWSSupport_20130415", + "timestampFormat": "iso8601", + "operations": { + "addCommunicationToCase": { + "name": "AddCommunicationToCase", + "input": { + "type": "structure", + "members": { + "caseId": {}, + "communicationBody": { + "required": true + }, + "ccEmailAddresses": { + "type": "list", + "members": {} + } + } + }, + "output": { + "type": "structure", + "members": { + "result": { + "type": "boolean" + } + } + } + }, + "createCase": { + "name": "CreateCase", + "input": { + "type": "structure", + "members": { + "subject": { + "required": true + }, + "serviceCode": {}, + "severityCode": {}, + "categoryCode": {}, + "communicationBody": { + "required": true + }, + "ccEmailAddresses": { + "type": "list", + "members": {} + }, + "language": {}, + "issueType": {} + } + }, + "output": { + "type": "structure", + "members": { + "caseId": {} + } + } + }, + "describeCases": { + "name": "DescribeCases", + "input": { + "type": "structure", + "members": { + "caseIdList": { + "type": "list", + "members": {} + }, + "displayId": {}, + "afterTime": {}, + "beforeTime": {}, + "includeResolvedCases": { + "type": "boolean" + }, + "nextToken": {}, + "maxResults": { + "type": "integer" + }, + "language": {} + } + }, + "output": { + "type": "structure", + "members": { + "cases": { + "type": "list", + "members": { + "type": "structure", + "members": { + "caseId": {}, + "displayId": {}, + "subject": {}, + "status": {}, + "serviceCode": {}, + "categoryCode": {}, + "severityCode": {}, + "submittedBy": {}, + "timeCreated": {}, + "recentCommunications": { + "type": "structure", + "members": { + "communications": { + "type": "list", + "members": { + "type": "structure", + "members": { + "caseId": {}, + "body": {}, + "submittedBy": {}, + "timeCreated": {} + } + } + }, + "nextToken": {} + } + }, + "ccEmailAddresses": { + "type": "list", + "members": {} + }, + "language": {} + } + } + }, + "nextToken": {} + } + } + }, + "describeCommunications": { + "name": "DescribeCommunications", + "input": { + "type": "structure", + "members": { + "caseId": { + "required": true + }, + "beforeTime": {}, + "afterTime": {}, + "nextToken": {}, + "maxResults": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "communications": { + "type": "list", + "members": { + "type": "structure", + "members": { + "caseId": {}, + "body": {}, + "submittedBy": {}, + "timeCreated": {} + } + } + }, + "nextToken": {} + } + } + }, + "describeServices": { + "name": "DescribeServices", + "input": { + "type": "structure", + "members": { + "serviceCodeList": { + "type": "list", + "members": {} + }, + "language": {} + } + }, + "output": { + "type": "structure", + "members": { + "services": { + "type": "list", + "members": { + "type": "structure", + "members": { + "code": {}, + "name": {}, + "categories": { + "type": "list", + "members": { + "type": "structure", + "members": { + "code": {}, + "name": {} + } + } + } + } + } + } + } + } + }, + "describeSeverityLevels": { + "name": "DescribeSeverityLevels", + "input": { + "type": "structure", + "members": { + "language": {} + } + }, + "output": { + "type": "structure", + "members": { + "severityLevels": { + "type": "list", + "members": { + "type": "structure", + "members": { + "code": {}, + "name": {} + } + } + } + } + } + }, + "describeTrustedAdvisorCheckRefreshStatuses": { + "name": "DescribeTrustedAdvisorCheckRefreshStatuses", + "input": { + "type": "structure", + "members": { + "checkIds": { + "type": "list", + "members": {}, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "statuses": { + "type": "list", + "members": { + "type": "structure", + "members": { + "checkId": {}, + "status": {}, + "millisUntilNextRefreshable": { + "type": "integer" + } + } + } + } + } + } + }, + "describeTrustedAdvisorCheckResult": { + "name": "DescribeTrustedAdvisorCheckResult", + "input": { + "type": "structure", + "members": { + "checkId": { + "required": true + }, + "language": {} + } + }, + "output": { + "type": "structure", + "members": { + "result": { + "type": "structure", + "members": { + "checkId": {}, + "timestamp": {}, + "status": {}, + "resourcesSummary": { + "type": "structure", + "members": { + "resourcesProcessed": { + "type": "integer" + }, + "resourcesFlagged": { + "type": "integer" + }, + "resourcesIgnored": { + "type": "integer" + }, + "resourcesSuppressed": { + "type": "integer" + } + } + }, + "categorySpecificSummary": { + "type": "structure", + "members": { + "costOptimizing": { + "type": "structure", + "members": { + "estimatedMonthlySavings": { + "type": "float" + }, + "estimatedPercentMonthlySavings": { + "type": "float" + } + } + } + } + }, + "flaggedResources": { + "type": "list", + "members": { + "type": "structure", + "members": { + "status": {}, + "region": {}, + "resourceId": {}, + "isSuppressed": { + "type": "boolean" + }, + "metadata": { + "type": "list", + "members": {} + } + } + } + } + } + } + } + } + }, + "describeTrustedAdvisorCheckSummaries": { + "name": "DescribeTrustedAdvisorCheckSummaries", + "input": { + "type": "structure", + "members": { + "checkIds": { + "type": "list", + "members": {}, + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "summaries": { + "type": "list", + "members": { + "type": "structure", + "members": { + "checkId": {}, + "timestamp": {}, + "status": {}, + "hasFlaggedResources": { + "type": "boolean" + }, + "resourcesSummary": { + "type": "structure", + "members": { + "resourcesProcessed": { + "type": "integer" + }, + "resourcesFlagged": { + "type": "integer" + }, + "resourcesIgnored": { + "type": "integer" + }, + "resourcesSuppressed": { + "type": "integer" + } + } + }, + "categorySpecificSummary": { + "type": "structure", + "members": { + "costOptimizing": { + "type": "structure", + "members": { + "estimatedMonthlySavings": { + "type": "float" + }, + "estimatedPercentMonthlySavings": { + "type": "float" + } + } + } + } + } + } + } + } + } + } + }, + "describeTrustedAdvisorChecks": { + "name": "DescribeTrustedAdvisorChecks", + "input": { + "type": "structure", + "members": { + "language": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "checks": { + "type": "list", + "members": { + "type": "structure", + "members": { + "id": {}, + "name": {}, + "description": {}, + "category": {}, + "metadata": { + "type": "list", + "members": {} + } + } + } + } + } + } + }, + "refreshTrustedAdvisorCheck": { + "name": "RefreshTrustedAdvisorCheck", + "input": { + "type": "structure", + "members": { + "checkId": { + "required": true + } + } + }, + "output": { + "type": "structure", + "members": { + "status": { + "type": "structure", + "members": { + "checkId": {}, + "status": {}, + "millisUntilNextRefreshable": { + "type": "integer" + } + } + } + } + } + }, + "resolveCase": { + "name": "ResolveCase", + "input": { + "type": "structure", + "members": { + "caseId": {} + } + }, + "output": { + "type": "structure", + "members": { + "initialCaseStatus": {}, + "finalCaseStatus": {} + } + } + } + }, + "pagination": { + "describeCases": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "limitKey": "maxResults", + "resultKey": "cases" + }, + "describeCommunications": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "limitKey": "maxResults", + "resultKey": "communications" + }, + "describeServices": { + "resultKey": "services" + }, + "describeTrustedAdvisorCheckRefreshStatuses": { + "resultKey": "statuses" + }, + "describeTrustedAdvisorCheckSummaries": { + "resultKey": "summaries" + } + } +} \ No newline at end of file diff --git a/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/symlinks.json b/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/symlinks.json new file mode 100644 index 00000000..e0e599f0 --- /dev/null +++ b/node_modules/aws-sdk/node_modules/aws-sdk-apis/apis/symlinks.json @@ -0,0 +1,5 @@ +{ + "CloudFront": ["2013-05-12*"], + "EC2": ["2013-06-15*", "2013-10-15*"], + "ElastiCache": ["2012-11-15*"] +} diff --git a/node_modules/aws-sdk/node_modules/aws-sdk-apis/index.js b/node_modules/aws-sdk/node_modules/aws-sdk-apis/index.js new file mode 100644 index 00000000..f59baaad --- /dev/null +++ b/node_modules/aws-sdk/node_modules/aws-sdk-apis/index.js @@ -0,0 +1,86 @@ +var fs = require('fs'); + +var apiRoot = __dirname + '/apis'; +var serviceMap = null; +var serviceIdentifiers = []; +var serviceNames = []; + +function buildServiceMap() { + if (serviceMap !== null) return; + + // load symlinks file for API versions that have been removed from disk but + // are still referenceable in code. + var symlinksFile = apiRoot + '/symlinks.json'; + var symlinks = JSON.parse(fs.readFileSync(symlinksFile).toString()); + + // create a map of each service name to its list of versions + serviceMap = {}; + fs.readdirSync(apiRoot).forEach(function (file) { + var match = file.match(/^([^-]+)-(\d+-\d+-\d+)\.json$/); + if (match) { + var svcName = match[1], version = match[2]; + var svcIdentifier = svcName.toLowerCase(); + + if (!serviceMap[svcIdentifier]) { // build the base service values + // add versions from symlinks, if any + var versions = symlinks[svcName] || []; + serviceMap[svcIdentifier] = { name: svcName, versions: versions }; + } + + serviceMap[svcIdentifier].versions.push(version); + } + }); + + Object.keys(serviceMap).forEach(function(identifier) { + serviceMap[identifier].versions = serviceMap[identifier].versions.sort(); + serviceIdentifiers.push(identifier); + serviceNames.push(serviceMap[identifier].name); + }); +} + +function getServices() { + buildServiceMap(); + return serviceIdentifiers; +} + +function getServiceNames() { + buildServiceMap(); + return serviceNames; +} + +function serviceVersions(svc) { + buildServiceMap(); + svc = serviceIdentifier(svc); + return serviceMap[svc] ? serviceMap[svc].versions : null; +} + +function serviceName(svc) { + buildServiceMap(); + svc = serviceIdentifier(svc); + return serviceMap[svc] ? serviceMap[svc].name : null; +} + +function serviceFile(svc, version) { + buildServiceMap(); + svc = serviceIdentifier(svc); + if (!serviceMap[svc]) return null; + + return apiRoot + '/' + serviceMap[svc].name + '-' + version + '.json'; +} + +function serviceIdentifier(svc) { + return svc.toLowerCase(); +} + +module.exports = { + serviceVersions: serviceVersions, + serviceName: serviceName, + serviceIdentifier: serviceIdentifier, + serviceFile: serviceFile +}; +Object.defineProperty(module.exports, 'services', { + enumerable: true, get: getServices +}); +Object.defineProperty(module.exports, 'serviceNames', { + enumerable: true, get: getServiceNames +}); diff --git a/node_modules/aws-sdk/node_modules/aws-sdk-apis/lib/translator.js b/node_modules/aws-sdk/node_modules/aws-sdk-apis/lib/translator.js new file mode 100644 index 00000000..ea6c7fdc --- /dev/null +++ b/node_modules/aws-sdk/node_modules/aws-sdk-apis/lib/translator.js @@ -0,0 +1,377 @@ +/* global Buffer: true */ +/* eslint camelcase:0 */ + +var Buffer = require('buffer').Buffer; + +/* A couple of utility methods */ + +var abort = {}; + +function each(obj, iter) { + for (var key in obj) { + if (obj.hasOwnProperty(key)) { + var ret = iter(key, obj[key]); + if (ret === abort) break; + } + } +} + +function copy(object) { + if (object === null || object === undefined) return object; + var dupe = {}; + for (var key in object) { + dupe[key] = object[key]; + } + return dupe; +} + +function update(a, b) { + each(b, function iterator(key, value) { a[key] = value; }); + return a; +} + +function merge(a, b) { + return update(copy(a), b); +} + +/* End utility methods */ + +function Shape(rules, options) { + if (!rules) { + this.rules = { type: 'structure', members: {} }; + return; + } + + this.options = options; + this.rules = {}; + this.set_type(rules.type); + each(rules, function(key, value) { + if (key !== 'type') this['set_' + key](value); + }.bind(this)); + + if (this.rules.type === 'blob') { + if (this.rules.payload || this.rules.streaming) { + this.rules.type = 'binary'; + } else { + this.rules.type = 'base64'; + } + } +} + +function InputShape(rules, options) { + Shape.call(this, rules, options); +} + +function OutputShape(rules, options) { + Shape.call(this, rules, options); +} + +/** + * @api private + */ +Shape.prototype = { + shapeClass: function() { + if (this instanceof InputShape) return InputShape; + if (this instanceof OutputShape) return OutputShape; + }, + + xmlname: function() { + if (this.rules.flattened) { + return this._xmlname || (this.rules.members || {}).name; + } else { + return this._xmlname; + } + }, + + set_type: function(name) { + var types = { + structure: 'structure', + list: 'list', + map: 'map', + boolean: 'boolean', + timestamp: 'timestamp', + character: 'string', + double: 'float', + float: 'float', + integer: 'integer', + long: 'integer', + short: 'integer', + string: 'string', + blob: 'blob', + biginteger: 'integer', + bigdecimal: 'float' + }; + if (name === 'string') { // omit string to reduce size + return; + } else if (types[name]) { + this.rules.type = types[name]; + } else { + throw new Error('unhandled shape type ' + name); + } + }, + + set_members: function(members) { + var type = this.rules.type; + var ShapeClass = this.shapeClass(); + if (type === 'structure') { + this.rules.members = {}; + each(members, function(memberName, memberRules) { + var shape = new ShapeClass(memberRules, this.options); + if (this.swapNames(shape)) { + shape.rules.name = memberName; + memberName = shape.xmlname(); + } + this.rules.members[memberName] = shape.rules; + }.bind(this)); + } else if (type === 'list') { + this.rules.members = new ShapeClass(members, this.options).rules; + } else if (type === 'map') { + this.rules.members = new ShapeClass(members, this.options).rules; + } else if (type === 'blob') { + this.rules.members = {}; + } else { + throw new Error('unhandled complex shape `' + type + '\''); + } + }, + + set_keys: function(rules) { + var ShapeClass = this.shapeClass(); + this.rules.keys = new ShapeClass(rules, this.options).rules; + }, + + set_timestamp_format: function(format) { + this.rules.format = format; + }, + + set_xmlname: function(name) { + this._xmlname = name; + this.rules.name = name; + }, + + set_location: function (location) { + this.rules.location = (location === 'http_status' ? 'status' : location); + }, + + set_location_name: function(header_name) { + this.rules.name = header_name; + }, + + set_payload: function(state) { + if (state) this.rules.payload = true; + }, + + set_flattened: function(state) { + if (state) this.rules.flattened = true; + }, + + set_streaming: function(state) { + if (state) this.rules.streaming = true; + }, + + set_xmlattribute: function(state) { + if (state) this.rules.attribute = true; + }, + + set_xmlnamespace: function(ns) { + this.rules.xmlns = ns; + }, + + set_documentation: function(docs) { + if (this.options.documentation) this.rules.documentation = docs; + }, + + set_enum: function(values) { + if (this.options.documentation) this.rules['enum'] = values; + }, + + set_wrapper: function() {}, + set_shape_name: function() {}, + set_box: function() {}, + set_sensitive: function() {} +}; + +InputShape.prototype = merge(Shape.prototype, { + swapNames: function() { return false; }, + + set_required: function() { this.rules.required = true; }, + set_member_order: function(order) { this.rules.order = order; }, + + set_min_length: function(min) { + if (this.options.documentation) this.rules.min_length = min; + }, + + set_max_length: function(max) { + if (this.options.documentation) this.rules.max_length = max; + }, + + set_pattern: function(pattern) { + if (this.options.documentation) this.rules.pattern = pattern; + } +}); + +OutputShape.prototype = merge(Shape.prototype, { + swapNames: function(shape) { + if (this.options.documentation) return false; + return shape.xmlname() && ['query', 'rest-xml'].indexOf(this.options.type) >= 0; + }, + + set_required: function() {}, + set_member_order: function() {}, + set_min_length: function() {}, + set_max_length: function() {}, + set_pattern: function() {} +}); + +function Operation(rules, options) { + var origRules = rules; + + function normalizeInputs() { + if (options.type.indexOf('rest') < 0) return; + + var xml = options.type.indexOf('xml') >= 0; + var payload = false; + var wrapper = false; + + var hasPayload = false; + each(rules.input.members, function(name, rule) { + if (rule.payload) { + hasPayload = true; + payload = name; + delete rule.payload; + return abort; + } + }); + + if (!hasPayload) { + var list = []; + each(rules.input.members, function(name, rule) { + if (!rule.location) { list.push(name); } + }); + + if (list.length > 0) { + payload = list; + if (xml) wrapper = origRules.input.shape_name; + } + } + + if (wrapper) rules.input = merge({wrapper: wrapper}, rules.input); + if (payload) rules.input = merge({payload: payload}, rules.input); + } + + function normalizeOutputs() { + var moveUp = null; + + each(rules.output.members, function(memberName, rule) { + if (rule.payload && rule.type === 'structure') { + delete rule.payload; + moveUp = memberName; + } + else if (rule.payload || rule.streaming) { + delete rule.payload; + rules.output.payload = memberName; + } + }); + + if (moveUp) { + var rule = rules.output.members[moveUp]; + delete rules.output.members[moveUp]; + update(rules.output.members, rule.members); + } + } + + rules = copy(rules); + + rules.input = new InputShape(rules.input, options).rules; + rules.output = new OutputShape(rules.output, options).rules; + rules.input.members = rules.input.members || {}; + rules.output.members = rules.output.members || {}; + + normalizeInputs(); + normalizeOutputs(); + + if (rules.http) delete rules.http.response_code; + if (options.documentation) { + rules.errors = rules.errors.map(function(e) { return e.shape_name; }); + } else { + delete rules.errors; + delete rules.documentation; + delete rules.documentation_url; + delete rules.response_code; + } + + return rules; +} + +function Translator(api, options) { + var translate = {}; + + function inflect(key) { + return key.replace(/_(\w)/g, function (_, m) { return m.toUpperCase(); }); + } + + function setTranslatedKeys() { + var list = Object.keys(api); + list.push('timestamp_format'); + list.sort().forEach(function (key) { translate[inflect(key)] = api[key]; }); + translate.timestampFormat = translate.timestampFormat || 'iso8601'; + if (translate.jsonVersion) translate.jsonVersion = translate.jsonVersion.toString(); + if (translate.jsonVersion === '1') translate.jsonVersion = '1.0'; + if (!options.documentation) delete translate.documentation; + if (!translate.resultWrapped) delete translate.resultWrapped; + if (!api.type.match(/xml/)) delete translate.xmlnamespace; + delete translate.operations; + delete translate.pagination; + delete translate.waiters; + delete translate.type; + } + + function setOperations() { + translate.operations = {}; + each(api.operations, function (key, value) { + var methodName = key[0].toLowerCase() + key.substr(1); + methodName = methodName.replace(/\d{4}_\d{2}_\d{2}$/, ''); + var operation = new Operation(value, options); + translate.operations[methodName] = operation; + }); + } + + function setPagination() { + if (api.pagination) { + translate.pagination = {}; + each(api.pagination, function (key, value) { + var object = {}; + each(value, function (k2, v2) { object[inflect(k2)] = v2; }); + translate.pagination[key[0].toLowerCase() + key.substr(1)] = object; + }); + } + } + + function setWaiters() { + if (api.waiters) { + translate.waiters = {}; + each(api.waiters, function (key, value) { + var object = {}; + each(value, function (k2, v2) { object[inflect(k2)] = v2; }); + translate.waiters[key[0].toLowerCase() + key.substr(1)] = object; + }); + } + } + + if (typeof api === 'string' || Buffer.isBuffer(api)) { + api = JSON.parse(api); + } + + options = options || {}; + options.type = api.type; + + translate.format = api.type; + + setTranslatedKeys(); + setOperations(); + setPagination(); + setWaiters(); + + return translate; +} + +module.exports = Translator; diff --git a/node_modules/aws-sdk/node_modules/aws-sdk-apis/package.json b/node_modules/aws-sdk/node_modules/aws-sdk-apis/package.json new file mode 100644 index 00000000..8ef2b145 --- /dev/null +++ b/node_modules/aws-sdk/node_modules/aws-sdk-apis/package.json @@ -0,0 +1,43 @@ +{ + "name": "aws-sdk-apis", + "description": "AWS SDK for JavaScript APIs", + "version": "2.0.5", + "author": { + "name": "Amazon Web Services", + "url": "http://aws.amazon.com/" + }, + "homepage": "https://github.com/aws/aws-sdk-js", + "contributors": [ + { + "name": "Loren Segal", + "email": "lsegal@amazon.com" + } + ], + "repository": { + "type": "git", + "url": "git://github.com/aws/aws-sdk-js-apis" + }, + "bugs": { + "url": "http://github.com/aws/aws-sdk-js-apis/issues" + }, + "licenses": [ + { + "type": "Apache 2.0", + "url": "http://github.com/aws/aws-sdk-js-apis/raw/master/LICENSE.txt" + } + ], + "keywords": [ + "api", + "amazon", + "aws", + "sdk" + ], + "readme": "# AWS SDK for JavaScript APIs Package\n\nThis package contains all of the API definitions used by the\n[aws-sdk](https://github.com/aws/aws-sdk-js) package.\n", + "readmeFilename": "README.md", + "_id": "aws-sdk-apis@2.0.5", + "dist": { + "shasum": "78587e177dc4f6f217948cc0e6d3b8c566c62823" + }, + "_from": "aws-sdk-apis@2.x", + "_resolved": "https://registry.npmjs.org/aws-sdk-apis/-/aws-sdk-apis-2.0.5.tgz" +} diff --git a/node_modules/aws-sdk/node_modules/xml2js/.npmignore b/node_modules/aws-sdk/node_modules/xml2js/.npmignore new file mode 100644 index 00000000..c3c1388e --- /dev/null +++ b/node_modules/aws-sdk/node_modules/xml2js/.npmignore @@ -0,0 +1,2 @@ +*.swp +node_modules diff --git a/node_modules/aws-sdk/node_modules/xml2js/.travis.yml b/node_modules/aws-sdk/node_modules/xml2js/.travis.yml new file mode 100644 index 00000000..999ea35c --- /dev/null +++ b/node_modules/aws-sdk/node_modules/xml2js/.travis.yml @@ -0,0 +1,5 @@ +language: node_js + +# test on two node.js versions: 0.6 and 0.8 +node_js: + - 0.8 diff --git a/node_modules/aws-sdk/node_modules/xml2js/Cakefile b/node_modules/aws-sdk/node_modules/xml2js/Cakefile new file mode 100644 index 00000000..11434428 --- /dev/null +++ b/node_modules/aws-sdk/node_modules/xml2js/Cakefile @@ -0,0 +1,12 @@ +{spawn, exec} = require 'child_process' + +task 'build', 'continually build the JavaScript code', -> + coffee = spawn 'coffee', ['-cw', '-o', 'lib', 'src'] + coffee.stdout.on 'data', (data) -> console.log data.toString().trim() + +task 'doc', 'rebuild the Docco documentation', -> + exec([ + 'docco src/xml2js.coffee' + ].join(' && '), (err) -> + throw err if err + ) diff --git a/node_modules/aws-sdk/node_modules/xml2js/LICENSE b/node_modules/aws-sdk/node_modules/xml2js/LICENSE new file mode 100644 index 00000000..e3b4222a --- /dev/null +++ b/node_modules/aws-sdk/node_modules/xml2js/LICENSE @@ -0,0 +1,19 @@ +Copyright 2010, 2011, 2012, 2013. All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to +deal in the Software without restriction, including without limitation the +rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +sell copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +IN THE SOFTWARE. diff --git a/node_modules/aws-sdk/node_modules/xml2js/README.md b/node_modules/aws-sdk/node_modules/xml2js/README.md new file mode 100644 index 00000000..bf04126d --- /dev/null +++ b/node_modules/aws-sdk/node_modules/xml2js/README.md @@ -0,0 +1,228 @@ +node-xml2js +=========== + +Ever had the urge to parse XML? And wanted to access the data in some sane, +easy way? Don't want to compile a C parser, for whatever reason? Then xml2js is +what you're looking for! + +Description +=========== + +Simple XML to JavaScript object converter. Uses +[sax-js](https://github.com/isaacs/sax-js/). + +Note: If you're looking for a full DOM parser, you probably want +[JSDom](https://github.com/tmpvar/jsdom). + +Installation +============ + +Simplest way to install `xml2js` is to use [npm](http://npmjs.org), just `npm +install xml2js` which will download xml2js and all dependencies. + +Usage +===== + +No extensive tutorials required because you are a smart developer! The task of +parsing XML should be an easy one, so let's make it so! Here's some examples. + +Shoot-and-forget usage +---------------------- + +You want to parse XML as simple and easy as possible? It's dangerous to go +alone, take this: + +```javascript +var parseString = require('xml2js').parseString; +var xml = "Hello xml2js!" +parseString(xml, function (err, result) { + console.dir(result); +}); +``` + +Can't get easier than this, right? This works starting with `xml2js` 0.2.3. +With CoffeeScript it looks like this: + +```coffeescript +parseString = require('xml2js').parseString +xml = "Hello xml2js!" +parseString xml, (err, result) -> + console.dir result +``` + +If you need some special options, fear not, `xml2js` supports a number of +options (see below), you can specify these as second argument: + +```javascript +parseString(xml, {trim: true}, function (err, result) { +}); +``` + +Simple as pie usage +------------------- + +That's right, if you have been using xml-simple or a home-grown +wrapper, this is was added in 0.1.11 just for you: + +```javascript +var fs = require('fs'), + xml2js = require('xml2js'); + +var parser = new xml2js.Parser(); +fs.readFile(__dirname + '/foo.xml', function(err, data) { + parser.parseString(data, function (err, result) { + console.dir(result); + console.log('Done'); + }); +}); +``` + +Look ma, no event listeners! + +You can also use `xml2js` from +[CoffeeScript](http://jashkenas.github.com/coffee-script/), further reducing +the clutter: + +```coffeescript +fs = require 'fs', +xml2js = require 'xml2js' + +parser = new xml2js.Parser() +fs.readFile __dirname + '/foo.xml', (err, data) -> + parser.parseString data, (err, result) -> + console.dir result + console.log 'Done.' +``` + +"Traditional" usage +------------------- + +Alternatively you can still use the traditional `addListener` variant that was +supported since forever: + +```javascript +var fs = require('fs'), + xml2js = require('xml2js'); + +var parser = new xml2js.Parser(); +parser.addListener('end', function(result) { + console.dir(result); + console.log('Done.'); +}); +fs.readFile(__dirname + '/foo.xml', function(err, data) { + parser.parseString(data); +}); +``` + +If you want to parse multiple files, you have multiple possibilites: + + * You can create one `xml2js.Parser` per file. That's the recommended one + and is promised to always *just work*. + * You can call `reset()` on your parser object. + * You can hope everything goes well anyway. This behaviour is not + guaranteed work always, if ever. Use option #1 if possible. Thanks! + +So you wanna some JSON? +----------------------- + +Just wrap the `result` object in a call to `JSON.stringify` like this +`JSON.stringify(result)`. You get a string containing the JSON representation +of the parsed object that you can feed to JSON-hungry consumers. + +Displaying results +------------------ + +You might wonder why, using `console.dir` or `console.log` the output at some +level is only `[Object]`. Don't worry, this is not because xml2js got lazy. +That's because Node uses `util.inspect` to convert the object into strings and +that function stops after `depth=2` which is a bit low for most XML. + +To display the whole deal, you can use `console.log(util.inspect(result, false, +null))`, which displays the whole result. + +So much for that, but what if you use +[eyes](https://github.com/cloudhead/eyes.js) for nice colored output and it +truncates the output with `…`? Don't fear, there's also a solution for that, +you just need to increase the `maxLength` limit by creating a custom inspector +`var inspect = require('eyes').inspector({maxLength: false})` and then you can +easily `inspect(result)`. + +Options +======= + +Apart from the default settings, there is a number of options that can be +specified for the parser. Options are specified by ``new Parser({optionName: +value})``. Possible options are: + + * `attrkey` (default: `$`): Prefix that is used to access the attributes. + Version 0.1 default was `@`. + * `charkey` (default: `_`): Prefix that is used to access the character + content. Version 0.1 default was `#`. + * `explicitCharkey` (default: `false`) + * `trim` (default: `false`): Trim the whitespace at the beginning and end of + text nodes. + * `normalizeTags` (default: `false`): Normalize all tag names to lowercase. + * `normalize` (default: `false`): Trim whitespaces inside text nodes. + * `explicitRoot` (default: `true`): Set this if you want to get the root + node in the resulting object. + * `emptyTag` (default: `undefined`): what will the value of empty nodes be. + Default is `{}`. + * `explicitArray` (default: `true`): Always put child nodes in an array if + true; otherwise an array is created only if there is more than one. + * `ignoreAttrs` (default: `false`): Ignore all XML attributes and only create + text nodes. + * `mergeAttrs` (default: `false`): Merge attributes and child elements as + properties of the parent, instead of keying attributes off a child + attribute object. This option is ignored if `ignoreAttrs` is `false`. + * `validator` (default `null`): You can specify a callable that validates + the resulting structure somehow, however you want. See unit tests + for an example. + * `xmlns` (default `false`): Give each element a field usually called '$ns' + (the first character is the same as attrkey) that contains its local name + and namespace URI. + +Updating to new version +======================= + +Version 0.2 changed the default parsing settings, but version 0.1.14 introduced +the default settings for version 0.2, so these settings can be tried before the +migration. + +```javascript +var xml2js = require('xml2js'); +var parser = new xml2js.Parser(xml2js.defaults["0.2"]); +``` + +To get the 0.1 defaults in version 0.2 you can just use +`xml2js.defaults["0.1"]` in the same place. This provides you with enough time +to migrate to the saner way of parsing in xml2js 0.2. We try to make the +migration as simple and gentle as possible, but some breakage cannot be +avoided. + +So, what exactly did change and why? In 0.2 we changed some defaults to parse +the XML in a more universal and sane way. So we disabled `normalize` and `trim` +so xml2js does not cut out any text content. You can reenable this at will of +course. A more important change is that we return the root tag in the resulting +JavaScript structure via the `explicitRoot` setting, so you need to access the +first element. This is useful for anybody who wants to know what the root node +is and preserves more information. The last major change was to enable +`explicitArray`, so everytime it is possible that one might embed more than one +sub-tag into a tag, xml2js >= 0.2 returns an array even if the array just +includes one element. This is useful when dealing with APIs that return +variable amounts of subtags. + +Running tests, development +========================== + +[![Build Status](https://secure.travis-ci.org/Leonidas-from-XIV/node-xml2js.png?branch=master)](https://travis-ci.org/Leonidas-from-XIV/node-xml2js) + +The development requirements are handled by npm, you just need to install them. +We also have a number of unit tests, they can be run using `npm test` directly +from the project root. This runs zap to discover all the tests and execute +them. + +If you like to contribute, keep in mind that xml2js is written in CoffeeScript, +so don't develop on the JavaScript files that are checked into the repository +for convenience reasons. Also, please write some unit test to check your +behaviour and if it is some user-facing thing, add some documentation to this +README, so people will know it exists. Thanks in advance! diff --git a/node_modules/aws-sdk/node_modules/xml2js/lib/xml2js.js b/node_modules/aws-sdk/node_modules/xml2js/lib/xml2js.js new file mode 100644 index 00000000..79457a68 --- /dev/null +++ b/node_modules/aws-sdk/node_modules/xml2js/lib/xml2js.js @@ -0,0 +1,250 @@ +// Generated by CoffeeScript 1.4.0 +(function() { + var events, isEmpty, sax, + __hasProp = {}.hasOwnProperty, + __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, + __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; }; + + sax = require('sax'); + + events = require('events'); + + isEmpty = function(thing) { + return typeof thing === "object" && (thing != null) && Object.keys(thing).length === 0; + }; + + exports.defaults = { + "0.1": { + explicitCharkey: false, + trim: true, + normalize: true, + normalizeTags: false, + attrkey: "@", + charkey: "#", + explicitArray: false, + ignoreAttrs: false, + mergeAttrs: false, + explicitRoot: false, + validator: null, + xmlns: false + }, + "0.2": { + explicitCharkey: false, + trim: false, + normalize: false, + normalizeTags: false, + attrkey: "$", + charkey: "_", + explicitArray: true, + ignoreAttrs: false, + mergeAttrs: false, + explicitRoot: true, + validator: null, + xmlns: false + } + }; + + exports.ValidationError = (function(_super) { + + __extends(ValidationError, _super); + + function ValidationError(message) { + this.message = message; + } + + return ValidationError; + + })(Error); + + exports.Parser = (function(_super) { + + __extends(Parser, _super); + + function Parser(opts) { + this.parseString = __bind(this.parseString, this); + + this.reset = __bind(this.reset, this); + + var key, value, _ref; + this.options = {}; + _ref = exports.defaults["0.2"]; + for (key in _ref) { + if (!__hasProp.call(_ref, key)) continue; + value = _ref[key]; + this.options[key] = value; + } + for (key in opts) { + if (!__hasProp.call(opts, key)) continue; + value = opts[key]; + this.options[key] = value; + } + if (this.options.xmlns) { + this.options.xmlnskey = this.options.attrkey + "ns"; + } + this.reset(); + } + + Parser.prototype.reset = function() { + var attrkey, charkey, err, stack, + _this = this; + this.removeAllListeners(); + this.saxParser = sax.parser(true, { + trim: false, + normalize: false, + xmlns: this.options.xmlns + }); + err = false; + this.saxParser.onerror = function(error) { + if (!err) { + err = true; + return _this.emit("error", error); + } + }; + this.EXPLICIT_CHARKEY = this.options.explicitCharkey; + this.resultObject = null; + stack = []; + attrkey = this.options.attrkey; + charkey = this.options.charkey; + this.saxParser.onopentag = function(node) { + var key, obj, _ref; + obj = {}; + obj[charkey] = ""; + if (!_this.options.ignoreAttrs) { + _ref = node.attributes; + for (key in _ref) { + if (!__hasProp.call(_ref, key)) continue; + if (!(attrkey in obj) && !_this.options.mergeAttrs) { + obj[attrkey] = {}; + } + if (_this.options.mergeAttrs) { + obj[key] = node.attributes[key]; + } else { + obj[attrkey][key] = node.attributes[key]; + } + } + } + obj["#name"] = _this.options.normalizeTags ? node.name.toLowerCase() : node.name; + if (_this.options.xmlns) { + obj[_this.options.xmlnskey] = { + uri: node.uri, + local: node.local + }; + } + return stack.push(obj); + }; + this.saxParser.onclosetag = function() { + var node, nodeName, obj, old, s, xpath; + obj = stack.pop(); + nodeName = obj["#name"]; + delete obj["#name"]; + s = stack[stack.length - 1]; + if (obj[charkey].match(/^\s*$/)) { + delete obj[charkey]; + } else { + if (_this.options.trim) { + obj[charkey] = obj[charkey].trim(); + } + if (_this.options.normalize) { + obj[charkey] = obj[charkey].replace(/\s{2,}/g, " ").trim(); + } + if (Object.keys(obj).length === 1 && charkey in obj && !_this.EXPLICIT_CHARKEY) { + obj = obj[charkey]; + } + } + if (_this.options.emptyTag !== void 0 && isEmpty(obj)) { + obj = _this.options.emptyTag; + } + if (_this.options.validator != null) { + xpath = "/" + ((function() { + var _i, _len, _results; + _results = []; + for (_i = 0, _len = stack.length; _i < _len; _i++) { + node = stack[_i]; + _results.push(node["#name"]); + } + return _results; + })()).concat(nodeName).join("/"); + obj = _this.options.validator(xpath, s && s[nodeName], obj); + } + if (stack.length > 0) { + if (!_this.options.explicitArray) { + if (!(nodeName in s)) { + return s[nodeName] = obj; + } else if (s[nodeName] instanceof Array) { + return s[nodeName].push(obj); + } else { + old = s[nodeName]; + s[nodeName] = [old]; + return s[nodeName].push(obj); + } + } else { + if (!(s[nodeName] instanceof Array)) { + s[nodeName] = []; + } + return s[nodeName].push(obj); + } + } else { + if (_this.options.explicitRoot) { + old = obj; + obj = {}; + obj[nodeName] = old; + } + _this.resultObject = obj; + return _this.emit("end", _this.resultObject); + } + }; + return this.saxParser.ontext = this.saxParser.oncdata = function(text) { + var s; + s = stack[stack.length - 1]; + if (s) { + return s[charkey] += text; + } + }; + }; + + Parser.prototype.parseString = function(str, cb) { + if ((cb != null) && typeof cb === "function") { + this.on("end", function(result) { + this.reset(); + return cb(null, result); + }); + this.on("error", function(err) { + this.reset(); + return cb(err); + }); + } + if (str.toString().trim() === '') { + this.emit("end", null); + return true; + } + try { + return this.saxParser.write(str.toString()); + } catch (ex) { + return this.emit("error", ex.message); + } + }; + + return Parser; + + })(events.EventEmitter); + + exports.parseString = function(str, a, b) { + var cb, options, parser; + if (b != null) { + if (typeof b === 'function') { + cb = b; + } + if (typeof a === 'object') { + options = a; + } + } else { + if (typeof a === 'function') { + cb = a; + } + options = {}; + } + parser = new exports.Parser(options); + return parser.parseString(str, cb); + }; + +}).call(this); diff --git a/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/AUTHORS b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/AUTHORS new file mode 100644 index 00000000..7145cbcd --- /dev/null +++ b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/AUTHORS @@ -0,0 +1,10 @@ +# contributors sorted by whether or not they're me. +Isaac Z. Schlueter +Stein Martin Hustad +Mikeal Rogers +Laurie Harper +Jann Horn +Elijah Insua +Henry Rawas +Justin Makeig +Mike Schilling diff --git a/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/LICENSE b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/LICENSE new file mode 100644 index 00000000..62e4ccf9 --- /dev/null +++ b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/LICENSE @@ -0,0 +1,32 @@ +Copyright (c) Isaac Z. Schlueter ("Author") +All rights reserved. + +The BSD License + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS +BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN +IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +The file "examples/strict.dtd" is licensed by the W3C and used according +to the terms of the W3C SOFTWARE NOTICE AND LICENSE. See LICENSE-W3C.html +for details. diff --git a/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/LICENSE-W3C.html b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/LICENSE-W3C.html new file mode 100644 index 00000000..a611e3f9 --- /dev/null +++ b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/LICENSE-W3C.html @@ -0,0 +1,188 @@ + +W3C Software Notice and License
+ + + +
+

+ W3C + +

+ +
+ + + +
+
+ +
+ + +
+
+ +
+ + +
+
+
+ +
+
+

W3C Software Notice and License

+
+
+

This work (and included software, documentation such as READMEs, or other +related items) is being provided by the copyright holders under the following +license.

+

License

+ +

+By obtaining, using and/or copying this work, you (the licensee) +agree that you have read, understood, and will comply with the following +terms and conditions.

+ +

Permission to copy, modify, and distribute this software and its +documentation, with or without modification, for any purpose and without +fee or royalty is hereby granted, provided that you include the following on +ALL copies of the software and documentation or portions thereof, including +modifications:

+ +
  • The full text of this NOTICE in a location viewable to users of the + redistributed or derivative work.
  • Any pre-existing intellectual property disclaimers, notices, or terms + and conditions. If none exist, the W3C Software Short + Notice should be included (hypertext is preferred, text is permitted) + within the body of any redistributed or derivative code.
  • Notice of any changes or modifications to the files, including the date + changes were made. (We recommend you provide URIs to the location from + which the code is derived.)
+ +

Disclaimers

+ +

THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS +MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT +LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR +PURPOSE OR THAT THE USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE +ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.

+ +

COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR +DOCUMENTATION.

+ +

The name and trademarks of copyright holders may NOT be used in +advertising or publicity pertaining to the software without specific, written +prior permission. Title to copyright in this software and any associated +documentation will at all times remain with copyright holders.

+ +

Notes

+ +

This version: http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231

+ +

This formulation of W3C's notice and license became active on December 31 +2002. This version removes the copyright ownership notice such that this +license can be used with materials other than those owned by the W3C, +reflects that ERCIM is now a host of the W3C, includes references to this +specific dated version of the license, and removes the ambiguous grant of +"use". Otherwise, this version is the same as the previous +version and is written so as to preserve the Free +Software Foundation's assessment of GPL compatibility and OSI's certification +under the Open Source +Definition.

+
+
+
+
+ + + +
+ +
diff --git a/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/README.md b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/README.md new file mode 100644 index 00000000..c9652420 --- /dev/null +++ b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/README.md @@ -0,0 +1,216 @@ +# sax js + +A sax-style parser for XML and HTML. + +Designed with [node](http://nodejs.org/) in mind, but should work fine in +the browser or other CommonJS implementations. + +## What This Is + +* A very simple tool to parse through an XML string. +* A stepping stone to a streaming HTML parser. +* A handy way to deal with RSS and other mostly-ok-but-kinda-broken XML + docs. + +## What This Is (probably) Not + +* An HTML Parser - That's a fine goal, but this isn't it. It's just + XML. +* A DOM Builder - You can use it to build an object model out of XML, + but it doesn't do that out of the box. +* XSLT - No DOM = no querying. +* 100% Compliant with (some other SAX implementation) - Most SAX + implementations are in Java and do a lot more than this does. +* An XML Validator - It does a little validation when in strict mode, but + not much. +* A Schema-Aware XSD Thing - Schemas are an exercise in fetishistic + masochism. +* A DTD-aware Thing - Fetching DTDs is a much bigger job. + +## Regarding `Hello, world!').close(); + + // stream usage + // takes the same options as the parser + var saxStream = require("sax").createStream(strict, options) + saxStream.on("error", function (e) { + // unhandled errors will throw, since this is a proper node + // event emitter. + console.error("error!", e) + // clear the error + this._parser.error = null + this._parser.resume() + }) + saxStream.on("opentag", function (node) { + // same object as above + }) + // pipe is supported, and it's readable/writable + // same chunks coming in also go out. + fs.createReadStream("file.xml") + .pipe(saxStream) + .pipe(fs.createWriteStream("file-copy.xml")) + + + +## Arguments + +Pass the following arguments to the parser function. All are optional. + +`strict` - Boolean. Whether or not to be a jerk. Default: `false`. + +`opt` - Object bag of settings regarding string formatting. All default to `false`. + +Settings supported: + +* `trim` - Boolean. Whether or not to trim text and comment nodes. +* `normalize` - Boolean. If true, then turn any whitespace into a single + space. +* `lowercase` - Boolean. If true, then lowercase tag names and attribute names + in loose mode, rather than uppercasing them. +* `xmlns` - Boolean. If true, then namespaces are supported. +* `position` - Boolean. If false, then don't track line/col/position. + +## Methods + +`write` - Write bytes onto the stream. You don't have to do this all at +once. You can keep writing as much as you want. + +`close` - Close the stream. Once closed, no more data may be written until +it is done processing the buffer, which is signaled by the `end` event. + +`resume` - To gracefully handle errors, assign a listener to the `error` +event. Then, when the error is taken care of, you can call `resume` to +continue parsing. Otherwise, the parser will not continue while in an error +state. + +## Members + +At all times, the parser object will have the following members: + +`line`, `column`, `position` - Indications of the position in the XML +document where the parser currently is looking. + +`startTagPosition` - Indicates the position where the current tag starts. + +`closed` - Boolean indicating whether or not the parser can be written to. +If it's `true`, then wait for the `ready` event to write again. + +`strict` - Boolean indicating whether or not the parser is a jerk. + +`opt` - Any options passed into the constructor. + +`tag` - The current tag being dealt with. + +And a bunch of other stuff that you probably shouldn't touch. + +## Events + +All events emit with a single argument. To listen to an event, assign a +function to `on`. Functions get executed in the this-context of +the parser object. The list of supported events are also in the exported +`EVENTS` array. + +When using the stream interface, assign handlers using the EventEmitter +`on` function in the normal fashion. + +`error` - Indication that something bad happened. The error will be hanging +out on `parser.error`, and must be deleted before parsing can continue. By +listening to this event, you can keep an eye on that kind of stuff. Note: +this happens *much* more in strict mode. Argument: instance of `Error`. + +`text` - Text node. Argument: string of text. + +`doctype` - The ``. Argument: +object with `name` and `body` members. Attributes are not parsed, as +processing instructions have implementation dependent semantics. + +`sgmldeclaration` - Random SGML declarations. Stuff like `` +would trigger this kind of event. This is a weird thing to support, so it +might go away at some point. SAX isn't intended to be used to parse SGML, +after all. + +`opentag` - An opening tag. Argument: object with `name` and `attributes`. +In non-strict mode, tag names are uppercased, unless the `lowercase` +option is set. If the `xmlns` option is set, then it will contain +namespace binding information on the `ns` member, and will have a +`local`, `prefix`, and `uri` member. + +`closetag` - A closing tag. In loose mode, tags are auto-closed if their +parent closes. In strict mode, well-formedness is enforced. Note that +self-closing tags will have `closeTag` emitted immediately after `openTag`. +Argument: tag name. + +`attribute` - An attribute node. Argument: object with `name` and `value`. +In non-strict mode, attribute names are uppercased, unless the `lowercase` +option is set. If the `xmlns` option is set, it will also contains namespace +information. + +`comment` - A comment node. Argument: the string of the comment. + +`opencdata` - The opening tag of a ``) of a `` tags trigger a `"script"` +event, and their contents are not checked for special xml characters. +If you pass `noscript: true`, then this behavior is suppressed. + +## Reporting Problems + +It's best to write a failing test if you find an issue. I will always +accept pull requests with failing tests if they demonstrate intended +behavior, but it is very hard to figure out what issue you're describing +without a test. Writing a test is also the best way for you yourself +to figure out if you really understand the issue you think you have with +sax-js. diff --git a/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/component.json b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/component.json new file mode 100644 index 00000000..96b5d731 --- /dev/null +++ b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/component.json @@ -0,0 +1,12 @@ +{ + "name": "sax", + "description": "An evented streaming XML parser in JavaScript", + "author": "Isaac Z. Schlueter (http://blog.izs.me/)", + "version": "0.5.2", + "main": "lib/sax.js", + "license": "BSD", + "scripts": [ + "lib/sax.js" + ], + "repository": "git://github.com/isaacs/sax-js.git" +} diff --git a/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/examples/big-not-pretty.xml b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/examples/big-not-pretty.xml new file mode 100644 index 00000000..fb5265dd --- /dev/null +++ b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/examples/big-not-pretty.xml @@ -0,0 +1,8002 @@ + + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + + something blerm a bit down here + diff --git a/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/examples/example.js b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/examples/example.js new file mode 100644 index 00000000..7b0246e9 --- /dev/null +++ b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/examples/example.js @@ -0,0 +1,29 @@ + +var fs = require("fs"), + util = require("util"), + path = require("path"), + xml = fs.readFileSync(path.join(__dirname, "test.xml"), "utf8"), + sax = require("../lib/sax"), + strict = sax.parser(true), + loose = sax.parser(false, {trim:true}), + inspector = function (ev) { return function (data) { + console.error("%s %s %j", this.line+":"+this.column, ev, data); + }}; + +sax.EVENTS.forEach(function (ev) { + loose["on"+ev] = inspector(ev); +}); +loose.onend = function () { + console.error("end"); + console.error(loose); +}; + +// do this in random bits at a time to verify that it works. +(function () { + if (xml) { + var c = Math.ceil(Math.random() * 1000) + loose.write(xml.substr(0,c)); + xml = xml.substr(c); + process.nextTick(arguments.callee); + } else loose.close(); +})(); diff --git a/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/examples/get-products.js b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/examples/get-products.js new file mode 100644 index 00000000..9e8d74aa --- /dev/null +++ b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/examples/get-products.js @@ -0,0 +1,58 @@ +// pull out /GeneralSearchResponse/categories/category/items/product tags +// the rest we don't care about. + +var sax = require("../lib/sax.js") +var fs = require("fs") +var path = require("path") +var xmlFile = path.resolve(__dirname, "shopping.xml") +var util = require("util") +var http = require("http") + +fs.readFile(xmlFile, function (er, d) { + http.createServer(function (req, res) { + if (er) throw er + var xmlstr = d.toString("utf8") + + var parser = sax.parser(true) + var products = [] + var product = null + var currentTag = null + + parser.onclosetag = function (tagName) { + if (tagName === "product") { + products.push(product) + currentTag = product = null + return + } + if (currentTag && currentTag.parent) { + var p = currentTag.parent + delete currentTag.parent + currentTag = p + } + } + + parser.onopentag = function (tag) { + if (tag.name !== "product" && !product) return + if (tag.name === "product") { + product = tag + } + tag.parent = currentTag + tag.children = [] + tag.parent && tag.parent.children.push(tag) + currentTag = tag + } + + parser.ontext = function (text) { + if (currentTag) currentTag.children.push(text) + } + + parser.onend = function () { + var out = util.inspect(products, false, 3, true) + res.writeHead(200, {"content-type":"application/json"}) + res.end("{\"ok\":true}") + // res.end(JSON.stringify(products)) + } + + parser.write(xmlstr).end() + }).listen(1337) +}) diff --git a/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/examples/hello-world.js b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/examples/hello-world.js new file mode 100644 index 00000000..cbfa5184 --- /dev/null +++ b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/examples/hello-world.js @@ -0,0 +1,4 @@ +require("http").createServer(function (req, res) { + res.writeHead(200, {"content-type":"application/json"}) + res.end(JSON.stringify({ok: true})) +}).listen(1337) diff --git a/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/examples/not-pretty.xml b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/examples/not-pretty.xml new file mode 100644 index 00000000..9592852d --- /dev/null +++ b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/examples/not-pretty.xml @@ -0,0 +1,8 @@ + + something blerm a bit down here diff --git a/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/examples/pretty-print.js b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/examples/pretty-print.js new file mode 100644 index 00000000..cd6aca9e --- /dev/null +++ b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/examples/pretty-print.js @@ -0,0 +1,74 @@ +var sax = require("../lib/sax") + , printer = sax.createStream(false, {lowercasetags:true, trim:true}) + , fs = require("fs") + +function entity (str) { + return str.replace('"', '"') +} + +printer.tabstop = 2 +printer.level = 0 +printer.indent = function () { + print("\n") + for (var i = this.level; i > 0; i --) { + for (var j = this.tabstop; j > 0; j --) { + print(" ") + } + } +} +printer.on("opentag", function (tag) { + this.indent() + this.level ++ + print("<"+tag.name) + for (var i in tag.attributes) { + print(" "+i+"=\""+entity(tag.attributes[i])+"\"") + } + print(">") +}) + +printer.on("text", ontext) +printer.on("doctype", ontext) +function ontext (text) { + this.indent() + print(text) +} + +printer.on("closetag", function (tag) { + this.level -- + this.indent() + print("") +}) + +printer.on("cdata", function (data) { + this.indent() + print("") +}) + +printer.on("comment", function (comment) { + this.indent() + print("") +}) + +printer.on("error", function (error) { + console.error(error) + throw error +}) + +if (!process.argv[2]) { + throw new Error("Please provide an xml file to prettify\n"+ + "TODO: read from stdin or take a file") +} +var xmlfile = require("path").join(process.cwd(), process.argv[2]) +var fstr = fs.createReadStream(xmlfile, { encoding: "utf8" }) + +function print (c) { + if (!process.stdout.write(c)) { + fstr.pause() + } +} + +process.stdout.on("drain", function () { + fstr.resume() +}) + +fstr.pipe(printer) diff --git a/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/examples/shopping.xml b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/examples/shopping.xml new file mode 100644 index 00000000..223c6c66 --- /dev/null +++ b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/examples/shopping.xml @@ -0,0 +1,2 @@ + +sandbox3.1 r31.Kadu4DC.phase357782011.10.06 15:37:23 PSTp2.a121bc2aaf029435dce62011-10-21T18:38:45.982-04:00P0Y0M0DT0H0M0.169S1112You are currently using the SDC API sandbox environment! No clicks to merchant URLs from this response will be paid. Please change the host of your API requests to 'publisher.api.shopping.com' when you have finished development and testinghttp://statTest.dealtime.com/pixel/noscript?PV_EvnTyp=APPV&APPV_APITSP=10%2F21%2F11_06%3A38%3A45_PM&APPV_DSPRQSID=p2.a121bc2aaf029435dce6&APPV_IMGURL=http://img.shopping.com/sc/glb/sdc_logo_106x19.gif&APPV_LI_LNKINID=7000610&APPV_LI_SBMKYW=nikon&APPV_MTCTYP=1000&APPV_PRTID=2002&APPV_BrnID=14804http://www.shopping.com/digital-cameras/productsDigital CamerasDigital CamerasElectronicshttp://www.shopping.com/xCH-electronics-nikon~linkin_id-7000610?oq=nikonCameras and Photographyhttp://www.shopping.com/xCH-cameras_and_photography-nikon~linkin_id-7000610?oq=nikonDigital Camerashttp://www.shopping.com/digital-cameras/nikon/products?oq=nikon&linkin_id=7000610nikonnikonDigital Camerashttp://www.shopping.com/digital-cameras/nikon/products?oq=nikon&linkin_id=7000610Nikon D3100 Digital Camera14.2 Megapixel, SLR Camera, 3 in. LCD Screen, With High Definition Video, Weight: 1 lb.The Nikon D3100 digital SLR camera speaks to the growing ranks of enthusiastic D-SLR users and aspiring photographers by providing an easy-to-use and affordable entrance to the world of Nikon D-SLR’s. The 14.2-megapixel D3100 has powerful features, such as the enhanced Guide Mode that makes it easy to unleash creative potential and capture memories with still images and full HD video. Like having a personal photo tutor at your fingertips, this unique feature provides a simple graphical interface on the camera’s LCD that guides users by suggesting and/or adjusting camera settings to achieve the desired end result images. The D3100 is also the world’s first D-SLR to introduce full time auto focus (AF) in Live View and D-Movie mode to effortlessly achieve the critical focus needed when shooting Full HD 1080p video.http://di1.shopping.com/images/pi/93/bc/04/101677489-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=2&c=1&l=7000610&t=111021183845&r=1http://di1.shopping.com/images/pi/93/bc/04/101677489-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=2&c=1&l=7000610&t=111021183845&r=1http://di1.shopping.com/images/pi/93/bc/04/101677489-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=2&c=1&l=7000610&t=111021183845&r=1http://di1.shopping.com/images/pi/93/bc/04/101677489-400x400-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=2&c=1&l=7000610&t=111021183845&r=1http://di1.shopping.com/images/pi/93/bc/04/101677489-606x500-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=2&c=1&l=7000610&t=111021183845&r=194.56http://img.shopping.com/sc/pr/sdc_stars_sm_4.5.gifhttp://www.shopping.com/Nikon-D3100/reviews~linkin_id-7000610429.001360.00http://www.shopping.com/Nikon-D3100/prices~linkin_id-7000610http://www.shopping.com/Nikon-D3100/info~linkin_id-7000610Nikon D3100 Digital SLR Camera with 18-55mm NIKKOR VR LensThe Nikon D3100 Digital SLR Camera is an affordable compact and lightweight photographic power-house. It features the all-purpose 18-55mm VR lens a high-resolution 14.2 MP CMOS sensor along with a feature set that's comprehensive yet easy to navigate - the intuitive onboard learn-as-you grow guide mode allows the photographer to understand what the 3100 can do quickly and easily. Capture beautiful pictures and amazing Full HD 1080p movies with sound and full-time autofocus. Availabilty: In Stock!7185Nikonhttp://di102.shopping.com/images/di/2d/5a/57/36424d5a717a366662532d61554c7767615f67-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=1http://di102.shopping.com/images/di/2d/5a/57/36424d5a717a366662532d61554c7767615f67-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=1http://di102.shopping.com/images/di/2d/5a/57/36424d5a717a366662532d61554c7767615f67-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=1http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=1http://di102.shopping.com/images/di/2d/5a/57/36424d5a717a366662532d61554c7767615f67-350x350-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=1in-stockFree Shipping with Any Purchase!529.000.00799.00http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=647&BEFID=7185&aon=%5E1&MerchantID=475674&crawler_id=475674&dealId=-ZW6BMZqz6fbS-aULwga_g%3D%3D&url=http%3A%2F%2Fwww.fumfie.com%2Fproduct%2F343.5%2Fshopping-com%3F&linkin_id=7000610&Issdt=111021183845&searchID=p2.a121bc2aaf029435dce6&DealName=Nikon+D3100+Digital+SLR+Camera+with+18-55mm+NIKKOR+VR+Lens&dlprc=529.0&crn=&istrsmrc=1&isathrsl=0&AR=1&NG=20&NDP=200&PN=1&ST=7&DB=sdcprod&MT=phx-pkadudc2&FPT=DSP&NDS=&NMS=&MRS=&PD=101677489&brnId=14804&IsFtr=0&IsSmart=0&DMT=&op=&CM=&DlLng=1&RR=1&cid=&semid1=&semid2=&IsLps=0&CC=1&SL=1&FS=1&code=&acode=658&category=&HasLink=&frameId=&ND=&MN=&PT=&prjID=&GR=&lnkId=&VK=FumFiehttp://img.shopping.com/cctool/merch_logos/475674.gif866 666 91985604.27http://img.shopping.com/sc/mr/sdc_checks_45.gifhttp://www.shopping.com/xMR-store_fumfie~MRD-475674~S-1~linkin_id-7000610http://img.shopping.com/sc/glb/flag/US.gifUSF343C5Nikon Nikon D3100 14.2MP Digital SLR Camera with 18-55mm f/3.5-5.6 AF-S DX VR, CamerasNikon D3100 14.2MP Digital SLR Camera with 18-55mm f/3.5-5.6 AF-S DX VR7185Nikonhttp://di109.shopping.com/images/di/6d/64/31/65396c443876644f7534464851664a714b6e67-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=2http://di109.shopping.com/images/di/6d/64/31/65396c443876644f7534464851664a714b6e67-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=2http://di109.shopping.com/images/di/6d/64/31/65396c443876644f7534464851664a714b6e67-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=2http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=2http://di109.shopping.com/images/di/6d/64/31/65396c443876644f7534464851664a714b6e67-385x352-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=2in-stock549.000.00549.00http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=779&BEFID=7185&aon=%5E1&MerchantID=305814&crawler_id=305814&dealId=md1e9lD8vdOu4FHQfJqKng%3D%3D&url=http%3A%2F%2Fwww.electronics-expo.com%2Findex.php%3Fpage%3Ditem%26id%3DNIKD3100%26source%3DSideCar%26scpid%3D8%26scid%3Dscsho318727%26&linkin_id=7000610&Issdt=111021183845&searchID=p2.a121bc2aaf029435dce6&DealName=Nikon+Nikon+D3100+14.2MP+Digital+SLR+Camera+with+18-55mm+f%2F3.5-5.6+AF-S+DX+VR%2C+Cameras&dlprc=549.0&crn=&istrsmrc=1&isathrsl=0&AR=9&NG=20&NDP=200&PN=1&ST=7&DB=sdcprod&MT=phx-pkadudc2&FPT=DSP&NDS=&NMS=&MRS=&PD=101677489&brnId=14804&IsFtr=0&IsSmart=0&DMT=&op=&CM=&DlLng=1&RR=9&cid=&semid1=&semid2=&IsLps=0&CC=0&SL=0&FS=1&code=&acode=771&category=&HasLink=&frameId=&ND=&MN=&PT=&prjID=&GR=&lnkId=&VK=Electronics Expohttp://img.shopping.com/cctool/merch_logos/305814.gif1-888-707-EXPO3713.90http://img.shopping.com/sc/mr/sdc_checks_4.gifhttp://www.shopping.com/xMR-store_electronics_expo~MRD-305814~S-1~linkin_id-7000610http://img.shopping.com/sc/glb/flag/US.gifUSNIKD3100Nikon D3100 14.2-Megapixel Digital SLR Camera With 18-55mm Zoom-Nikkor Lens, BlackSplit-second shutter response captures shots other cameras may have missed Helps eliminate the frustration of shutter delay! 14.2-megapixels for enlargements worth framing and hanging. Takes breathtaking 1080p HD movies. ISO sensitivity from 100-1600 for bright or dimly lit settings. 3.0in. color LCD for beautiful, wide-angle framing and viewing. In-camera image editing lets you retouch with no PC. Automatic scene modes include Child, Sports, Night Portrait and more. Accepts SDHC memory cards. Nikon D3100 14.2-Megapixel Digital SLR Camera With 18-55mm Zoom-Nikkor Lens, Black is one of many Digital SLR Cameras available through Office Depot. Made by Nikon.7185Nikonhttp://di109.shopping.com/images/di/79/59/75/61586e4446744359377244556a6b5932616177-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=3http://di109.shopping.com/images/di/79/59/75/61586e4446744359377244556a6b5932616177-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=3http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=3http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=3http://di109.shopping.com/images/di/79/59/75/61586e4446744359377244556a6b5932616177-250x250-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=3in-stock549.990.00699.99http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=698&BEFID=7185&aon=%5E1&MerchantID=467671&crawler_id=467671&dealId=yYuaXnDFtCY7rDUjkY2aaw%3D%3D&url=http%3A%2F%2Flink.mercent.com%2Fredirect.ashx%3Fmr%3AmerchantID%3DOfficeDepot%26mr%3AtrackingCode%3DCEC9669E-6ABC-E011-9F24-0019B9C043EB%26mr%3AtargetUrl%3Dhttp%3A%2F%2Fwww.officedepot.com%2Fa%2Fproducts%2F486292%2FNikon-D3100-142-Megapixel-Digital-SLR%2F%253fcm_mmc%253dMercent-_-Shopping-_-Cameras_and_Camcorders-_-486292&linkin_id=7000610&Issdt=111021183845&searchID=p2.a121bc2aaf029435dce6&DealName=Nikon+D3100+14.2-Megapixel+Digital+SLR+Camera+With+18-55mm+Zoom-Nikkor+Lens%2C+Black&dlprc=549.99&crn=&istrsmrc=1&isathrsl=0&AR=10&NG=20&NDP=200&PN=1&ST=7&DB=sdcprod&MT=phx-pkadudc2&FPT=DSP&NDS=&NMS=&MRS=&PD=101677489&brnId=14804&IsFtr=0&IsSmart=0&DMT=&op=&CM=&DlLng=1&RR=10&cid=&semid1=&semid2=&IsLps=0&CC=1&SL=1&FS=1&code=&acode=690&category=&HasLink=&frameId=&ND=&MN=&PT=&prjID=&GR=&lnkId=&VK=Office Depothttp://img.shopping.com/cctool/merch_logos/467671.gif1-800-GO-DEPOT1352.37http://img.shopping.com/sc/mr/sdc_checks_25.gifhttp://www.shopping.com/xMR-store_office_depot_4158555~MRD-467671~S-1~linkin_id-7000610http://img.shopping.com/sc/glb/flag/US.gifUS486292Nikon® D3100™ 14.2MP Digital SLR with 18-55mm LensThe Nikon D3100 DSLR will surprise you with its simplicity and impress you with superb results.7185Nikonhttp://di103.shopping.com/images/di/52/6c/35/36553743756954597348344d475a30326c7851-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=4http://di103.shopping.com/images/di/52/6c/35/36553743756954597348344d475a30326c7851-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=4http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=4http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=4http://di103.shopping.com/images/di/52/6c/35/36553743756954597348344d475a30326c7851-220x220-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=4in-stock549.996.05549.99http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=504&BEFID=7185&aon=%5E1&MerchantID=332477&crawler_id=332477&dealId=Rl56U7CuiTYsH4MGZ02lxQ%3D%3D&url=http%3A%2F%2Ftracking.searchmarketing.com%2Fgsic.asp%3Faid%3D903483107%26&linkin_id=7000610&Issdt=111021183845&searchID=p2.a121bc2aaf029435dce6&DealName=Nikon%C2%AE+D3100%E2%84%A2+14.2MP+Digital+SLR+with+18-55mm+Lens&dlprc=549.99&crn=&istrsmrc=0&isathrsl=0&AR=11&NG=20&NDP=200&PN=1&ST=7&DB=sdcprod&MT=phx-pkadudc2&FPT=DSP&NDS=&NMS=&MRS=&PD=101677489&brnId=14804&IsFtr=0&IsSmart=0&DMT=&op=&CM=&DlLng=1&RR=11&cid=&semid1=&semid2=&IsLps=0&CC=0&SL=0&FS=0&code=&acode=496&category=&HasLink=&frameId=&ND=&MN=&PT=&prjID=&GR=&lnkId=&VK=RadioShackhttp://img.shopping.com/cctool/merch_logos/332477.gif242.25http://img.shopping.com/sc/mr/sdc_checks_25.gifhttp://www.shopping.com/xMR-store_radioshack_9689~MRD-332477~S-1~linkin_id-7000610http://img.shopping.com/sc/glb/flag/US.gifUS9614867Nikon D3100 SLR w/Nikon 18-55mm VR & 55-200mm VR Lenses14.2 Megapixels3" LCDLive ViewHD 1080p Video w/ Sound & Autofocus11-point Autofocus3 Frames per Second ShootingISO 100 to 3200 (Expand to 12800-Hi2)Self Cleaning SensorEXPEED 2, Image Processing EngineScene Recognition System7185Nikonhttp://di105.shopping.com/images/di/68/75/53/36785a4b444b614b4d544d5037316549364441-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=5http://di105.shopping.com/images/di/68/75/53/36785a4b444b614b4d544d5037316549364441-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=5http://di105.shopping.com/images/di/68/75/53/36785a4b444b614b4d544d5037316549364441-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=5http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=5http://di105.shopping.com/images/di/68/75/53/36785a4b444b614b4d544d5037316549364441-345x345-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=5in-stock695.000.00695.00http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=371&BEFID=7185&aon=%5E1&MerchantID=487342&crawler_id=487342&dealId=huS6xZKDKaKMTMP71eI6DA%3D%3D&url=http%3A%2F%2Fwww.rythercamera.com%2Fcatalog%2Fproduct_info.php%3Fcsv%3Dsh%26products_id%3D32983%26&linkin_id=7000610&Issdt=111021183845&searchID=p2.a121bc2aaf029435dce6&DealName=Nikon+D3100+SLR+w%2FNikon+18-55mm+VR+%26+55-200mm+VR+Lenses&dlprc=695.0&crn=&istrsmrc=0&isathrsl=0&AR=15&NG=20&NDP=200&PN=1&ST=7&DB=sdcprod&MT=phx-pkadudc2&FPT=DSP&NDS=&NMS=&MRS=&PD=101677489&brnId=14804&IsFtr=0&IsSmart=0&DMT=&op=&CM=&DlLng=1&RR=15&cid=&semid1=&semid2=&IsLps=0&CC=0&SL=0&FS=1&code=&acode=379&category=&HasLink=&frameId=&ND=&MN=&PT=&prjID=&GR=&lnkId=&VK=RytherCamera.comhttp://img.shopping.com/cctool/merch_logos/487342.gif1-877-644-75930http://img.shopping.com/sc/glb/flag/US.gifUS32983Nikon COOLPIX S203 Digital Camera10 Megapixel, Ultra-Compact Camera, 2.5 in. LCD Screen, 3x Optical Zoom, With Video Capability, Weight: 0.23 lb.With 10.34 mega pixel, electronic VR vibration reduction, 5-level brightness adjustment, 3x optical zoom, and TFT LCD, Nikon Coolpix s203 fulfills all the demands of any photographer. The digital camera has an inbuilt memory of 44MB and an external memory slot made for all kinds of SD (Secure Digital) cards.http://di1.shopping.com/images/pi/c4/ef/1b/95397883-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=2&c=1&l=7000610&t=111021183845&r=2http://di1.shopping.com/images/pi/c4/ef/1b/95397883-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=2&c=1&l=7000610&t=111021183845&r=2http://di1.shopping.com/images/pi/c4/ef/1b/95397883-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=2&c=1&l=7000610&t=111021183845&r=2http://di1.shopping.com/images/pi/c4/ef/1b/95397883-400x400-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=2&c=1&l=7000610&t=111021183845&r=2http://di1.shopping.com/images/pi/c4/ef/1b/95397883-500x499-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=2&c=1&l=7000610&t=111021183845&r=20139.00139.00http://www.shopping.com/Nikon-Coolpix-S203/prices~linkin_id-7000610http://www.shopping.com/Nikon-Coolpix-S203/info~linkin_id-7000610Nikon Coolpix S203 Digital Camera (Red)With 10.34 mega pixel, electronic VR vibration reduction, 5-level brightness adjustment, 3x optical zoom, and TFT LCD, Nikon Coolpix s203 fulfills all the demands of any photographer. The digital camera has an inbuilt memory of 44MB and an external memory slot made for all kinds of SD (Secure Digital) cards.7185Nikonhttp://di108.shopping.com/images/di/73/42/64/324a6e4945504d2d415f6c42414d31525a6751-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=1http://di108.shopping.com/images/di/73/42/64/324a6e4945504d2d415f6c42414d31525a6751-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=1http://di108.shopping.com/images/di/73/42/64/324a6e4945504d2d415f6c42414d31525a6751-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=1http://di108.shopping.com/images/di/73/42/64/324a6e4945504d2d415f6c42414d31525a6751-400x400-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=1http://di108.shopping.com/images/di/73/42/64/324a6e4945504d2d415f6c42414d31525a6751-500x500-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=1in-stockFantastic prices with ease & comfort of Amazon.com!139.009.50139.00http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=566&BEFID=7185&aon=%5E1&MerchantID=301531&crawler_id=1903313&dealId=sBd2JnIEPM-A_lBAM1RZgQ%3D%3D&url=http%3A%2F%2Fwww.amazon.com%2Fdp%2FB002T964IM%2Fref%3Dasc_df_B002T964IM1751618%3Fsmid%3DA22UHVNXG98FAT%26tag%3Ddealtime-ce-mp01feed-20%26linkCode%3Dasn%26creative%3D395105%26creativeASIN%3DB002T964IM&linkin_id=7000610&Issdt=111021183845&searchID=p2.a121bc2aaf029435dce6&DealName=Nikon+Coolpix+S203+Digital+Camera+%28Red%29&dlprc=139.0&crn=&istrsmrc=0&isathrsl=0&AR=63&NG=20&NDP=200&PN=1&ST=7&DB=sdcprod&MT=phx-pkadudc2&FPT=DSP&NDS=&NMS=&MRS=&PD=95397883&brnId=14804&IsFtr=0&IsSmart=0&DMT=&op=&CM=&DlLng=1&RR=63&cid=&semid1=&semid2=&IsLps=0&CC=0&SL=0&FS=0&code=&acode=518&category=&HasLink=&frameId=&ND=&MN=&PT=&prjID=&GR=&lnkId=&VK=Amazon Marketplacehttp://img.shopping.com/cctool/merch_logos/301531.gif2132.73http://img.shopping.com/sc/mr/sdc_checks_25.gifhttp://www.shopping.com/xMR-store_amazon_marketplace_9689~MRD-301531~S-1~linkin_id-7000610http://img.shopping.com/sc/glb/flag/US.gifUSB002T964IMNikon S3100 Digital Camera14.5 Megapixel, Compact Camera, 2.7 in. LCD Screen, 5x Optical Zoom, With High Definition Video, Weight: 0.23 lb.This digital camera features a wide-angle optical Zoom-NIKKOR glass lens that allows you to capture anything from landscapes to portraits to action shots. The high-definition movie mode with one-touch recording makes it easy to capture video clips.http://di1.shopping.com/images/pi/66/2d/33/106834268-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=2&c=1&l=7000610&t=111021183845&r=3http://di1.shopping.com/images/pi/66/2d/33/106834268-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=2&c=1&l=7000610&t=111021183845&r=3http://di1.shopping.com/images/pi/66/2d/33/106834268-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=2&c=1&l=7000610&t=111021183845&r=3http://di1.shopping.com/images/pi/66/2d/33/106834268-400x400-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=2&c=1&l=7000610&t=111021183845&r=3http://di1.shopping.com/images/pi/66/2d/33/106834268-507x387-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=2&c=1&l=7000610&t=111021183845&r=312.00http://img.shopping.com/sc/pr/sdc_stars_sm_2.gifhttp://www.shopping.com/nikon-s3100/reviews~linkin_id-700061099.95134.95http://www.shopping.com/nikon-s3100/prices~linkin_id-7000610http://www.shopping.com/nikon-s3100/info~linkin_id-7000610CoolPix S3100 14 Megapixel Compact Digital Camera- RedNikon Coolpix S3100 - Digital camera - compact - 14.0 Mpix - optical zoom: 5 x - supported memory: SD, SDXC, SDHC - red7185Nikonhttp://di111.shopping.com/images/di/55/55/79/476f71563872302d78726b6e2d726e474e6267-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=1http://di111.shopping.com/images/di/55/55/79/476f71563872302d78726b6e2d726e474e6267-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=1http://di111.shopping.com/images/di/55/55/79/476f71563872302d78726b6e2d726e474e6267-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=1http://di111.shopping.com/images/di/55/55/79/476f71563872302d78726b6e2d726e474e6267-400x400-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=1in-stockGet 30 days FREE SHIPPING w/ ShipVantage119.956.95139.95http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=578&BEFID=7185&aon=%5E1&MerchantID=485615&crawler_id=485615&dealId=UUyGoqV8r0-xrkn-rnGNbg%3D%3D&url=http%3A%2F%2Fsears.rdr.channelintelligence.com%2Fgo.asp%3FfVhzOGNRAAQIASNiE1NbQBJpFHJ3Yx0CTAICI2BbH1lEFmgKP3QvUVpEREdlfUAUHAQPLVpFTVdtJzxAHUNYW3AhQBM0QhFvEXAbYh8EAAVmDAJeU1oyGG0GcBdhGwUGCAVqYF9SO0xSN1sZdmA7dmMdBQAJB24qX1NbQxI6AjA2ME5dVFULPDsGPFcQTTdaLTA6SR0OFlQvPAwMDxYcYlxIVkcoLTcCDA%3D%3D%26nAID%3D13736960%26&linkin_id=7000610&Issdt=111021183845&searchID=p2.a121bc2aaf029435dce6&DealName=CoolPix+S3100+14+Megapixel+Compact+Digital+Camera-+Red&dlprc=119.95&crn=&istrsmrc=1&isathrsl=0&AR=28&NG=20&NDP=200&PN=1&ST=7&DB=sdcprod&MT=phx-pkadudc2&FPT=DSP&NDS=&NMS=&MRS=&PD=106834268&brnId=14804&IsFtr=0&IsSmart=0&DMT=&op=&CM=&DlLng=1&RR=28&cid=&semid1=&semid2=&IsLps=0&CC=0&SL=1&FS=0&code=&acode=583&category=&HasLink=&frameId=&ND=&MN=&PT=&prjID=&GR=&lnkId=&VK=Searshttp://img.shopping.com/cctool/merch_logos/485615.gif1-800-349-43588882.85http://img.shopping.com/sc/mr/sdc_checks_3.gifhttp://www.shopping.com/xMR-store_sears_4189479~MRD-485615~S-1~linkin_id-7000610http://img.shopping.com/sc/glb/flag/US.gifUS00337013000COOLPIX S3100 PinkNikon Coolpix S3100 - Digital camera - compact - 14.0 Mpix - optical zoom: 5 x - supported memory: SD, SDXC, SDHC - pink7185Nikonhttp://di111.shopping.com/images/di/58/38/37/4177586c573164586f4d586b34515144546f51-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=2http://di111.shopping.com/images/di/58/38/37/4177586c573164586f4d586b34515144546f51-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=2http://di111.shopping.com/images/di/58/38/37/4177586c573164586f4d586b34515144546f51-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=2http://di111.shopping.com/images/di/58/38/37/4177586c573164586f4d586b34515144546f51-400x400-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=2in-stockGet 30 days FREE SHIPPING w/ ShipVantage119.956.95139.95http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=578&BEFID=7185&aon=%5E1&MerchantID=485615&crawler_id=485615&dealId=X87AwXlW1dXoMXk4QQDToQ%3D%3D&url=http%3A%2F%2Fsears.rdr.channelintelligence.com%2Fgo.asp%3FfVhzOGNRAAQIASNiE1NbQBJpFHJxYx0CTAICI2BbH1lEFmgKP3QvUVpEREdlfUAUHAQPLVpFTVdtJzxAHUNYW3AhQBM0QhFvEXAbYh8EAAVmb2JcUFxDEGsPc3QDEkFZVQ0WFhdRW0MWbgYWDlxzdGMdAVQWRi0xDAwPFhw9TSobb05eWVVYKzsLTFVVQi5RICs3SA8MU1s2MQQKD1wf%26nAID%3D13736960%26&linkin_id=7000610&Issdt=111021183845&searchID=p2.a121bc2aaf029435dce6&DealName=COOLPIX+S3100+Pink&dlprc=119.95&crn=&istrsmrc=1&isathrsl=0&AR=31&NG=20&NDP=200&PN=1&ST=7&DB=sdcprod&MT=phx-pkadudc2&FPT=DSP&NDS=&NMS=&MRS=&PD=106834268&brnId=14804&IsFtr=0&IsSmart=0&DMT=&op=&CM=&DlLng=1&RR=31&cid=&semid1=&semid2=&IsLps=0&CC=0&SL=1&FS=0&code=&acode=583&category=&HasLink=&frameId=&ND=&MN=&PT=&prjID=&GR=&lnkId=&VK=Searshttp://img.shopping.com/cctool/merch_logos/485615.gif1-800-349-43588882.85http://img.shopping.com/sc/mr/sdc_checks_3.gifhttp://www.shopping.com/xMR-store_sears_4189479~MRD-485615~S-1~linkin_id-7000610http://img.shopping.com/sc/glb/flag/US.gifUS00337015000Nikon Coolpix S3100 14.0 MP Digital Camera - SilverNikon Coolpix S3100 14.0 MP Digital Camera - Silver7185Nikonhttp://di109.shopping.com/images/di/6e/76/46/776e70664134726c413144626b736473613077-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=3http://di109.shopping.com/images/di/6e/76/46/776e70664134726c413144626b736473613077-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=3http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=3http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=3http://di109.shopping.com/images/di/6e/76/46/776e70664134726c413144626b736473613077-270x270-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=3in-stock109.970.00109.97http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=803&BEFID=7185&aon=%5E&MerchantID=475774&crawler_id=475774&dealId=nvFwnpfA4rlA1Dbksdsa0w%3D%3D&url=http%3A%2F%2Fwww.thewiz.com%2Fcatalog%2Fproduct.jsp%3FmodelNo%3DS3100SILVER%26gdftrk%3DgdfV2677_a_7c996_a_7c4049_a_7c26262&linkin_id=7000610&Issdt=111021183845&searchID=p2.a121bc2aaf029435dce6&DealName=Nikon+Coolpix+S3100+14.0+MP+Digital+Camera+-+Silver&dlprc=109.97&crn=&istrsmrc=0&isathrsl=0&AR=33&NG=20&NDP=200&PN=1&ST=7&DB=sdcprod&MT=phx-pkadudc2&FPT=DSP&NDS=&NMS=&MRS=&PD=106834268&brnId=14804&IsFtr=0&IsSmart=0&DMT=&op=&CM=&DlLng=1&RR=33&cid=&semid1=&semid2=&IsLps=0&CC=0&SL=0&FS=1&code=&acode=797&category=&HasLink=&frameId=&ND=&MN=&PT=&prjID=&GR=&lnkId=&VK=TheWiz.comhttp://img.shopping.com/cctool/merch_logos/475774.gif877-542-69880http://img.shopping.com/sc/glb/flag/US.gifUS26262Nikon� COOLPIX� S3100 14MP Digital Camera (Silver)The Nikon COOLPIX S3100 is the easy way to share your life and stay connected.7185Nikonhttp://di102.shopping.com/images/di/35/47/74/614e324e6572794b7770732d5365326c2d3467-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=4http://di102.shopping.com/images/di/35/47/74/614e324e6572794b7770732d5365326c2d3467-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=4http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=4http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=4http://di102.shopping.com/images/di/35/47/74/614e324e6572794b7770732d5365326c2d3467-220x220-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=4in-stock119.996.05119.99http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=504&BEFID=7185&aon=%5E1&MerchantID=332477&crawler_id=332477&dealId=5GtaN2NeryKwps-Se2l-4g%3D%3D&url=http%3A%2F%2Ftracking.searchmarketing.com%2Fgsic.asp%3Faid%3D848064082%26&linkin_id=7000610&Issdt=111021183845&searchID=p2.a121bc2aaf029435dce6&DealName=Nikon%C3%AF%C2%BF%C2%BD+COOLPIX%C3%AF%C2%BF%C2%BD+S3100+14MP+Digital+Camera+%28Silver%29&dlprc=119.99&crn=&istrsmrc=0&isathrsl=0&AR=37&NG=20&NDP=200&PN=1&ST=7&DB=sdcprod&MT=phx-pkadudc2&FPT=DSP&NDS=&NMS=&MRS=&PD=106834268&brnId=14804&IsFtr=0&IsSmart=0&DMT=&op=&CM=&DlLng=1&RR=37&cid=&semid1=&semid2=&IsLps=0&CC=0&SL=0&FS=0&code=&acode=509&category=&HasLink=&frameId=&ND=&MN=&PT=&prjID=&GR=&lnkId=&VK=RadioShackhttp://img.shopping.com/cctool/merch_logos/332477.gif242.25http://img.shopping.com/sc/mr/sdc_checks_25.gifhttp://www.shopping.com/xMR-store_radioshack_9689~MRD-332477~S-1~linkin_id-7000610http://img.shopping.com/sc/glb/flag/US.gifUS10101095COOLPIX S3100 YellowNikon Coolpix S3100 - Digital camera - compact - 14.0 Mpix - optical zoom: 5 x - supported memory: SD, SDXC, SDHC - yellow7185Nikonhttp://di107.shopping.com/images/di/61/34/33/6d305258756c5833387a436e516a5535396a77-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=5http://di107.shopping.com/images/di/61/34/33/6d305258756c5833387a436e516a5535396a77-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=5http://di107.shopping.com/images/di/61/34/33/6d305258756c5833387a436e516a5535396a77-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=5http://di107.shopping.com/images/di/61/34/33/6d305258756c5833387a436e516a5535396a77-400x400-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=5in-stockGet 30 days FREE SHIPPING w/ ShipVantage119.956.95139.95http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=578&BEFID=7185&aon=%5E1&MerchantID=485615&crawler_id=485615&dealId=a43m0RXulX38zCnQjU59jw%3D%3D&url=http%3A%2F%2Fsears.rdr.channelintelligence.com%2Fgo.asp%3FfVhzOGNRAAQIASNiE1NbQBJpFHJwYx0CTAICI2BbH1lEFmgKP3QvUVpEREdlfUAUHAQPLVpFTVdtJzxAHUNYW3AhQBM0QhFvEXAbYh8EAAVmb2JcUFxDEGoPc3QDEkFZVQ0WFhdRW0MWbgYWDlxzdGMdAVQWRi0xDAwPFhw9TSobb05eWVVYKzsLTFVVQi5RICs3SA8MU1s2MQQKD1wf%26nAID%3D13736960%26&linkin_id=7000610&Issdt=111021183845&searchID=p2.a121bc2aaf029435dce6&DealName=COOLPIX+S3100+Yellow&dlprc=119.95&crn=&istrsmrc=1&isathrsl=0&AR=38&NG=20&NDP=200&PN=1&ST=7&DB=sdcprod&MT=phx-pkadudc2&FPT=DSP&NDS=&NMS=&MRS=&PD=106834268&brnId=14804&IsFtr=0&IsSmart=0&DMT=&op=&CM=&DlLng=1&RR=38&cid=&semid1=&semid2=&IsLps=0&CC=0&SL=1&FS=0&code=&acode=583&category=&HasLink=&frameId=&ND=&MN=&PT=&prjID=&GR=&lnkId=&VK=Searshttp://img.shopping.com/cctool/merch_logos/485615.gif1-800-349-43588882.85http://img.shopping.com/sc/mr/sdc_checks_3.gifhttp://www.shopping.com/xMR-store_sears_4189479~MRD-485615~S-1~linkin_id-7000610http://img.shopping.com/sc/glb/flag/US.gifUS00337014000Nikon D90 Digital Camera12.3 Megapixel, Point and Shoot Camera, 3 in. LCD Screen, With Video Capability, Weight: 1.36 lb.Untitled Document Nikon D90 SLR Digital Camera With 28-80mm 75-300mm Lens Kit The Nikon D90 SLR Digital Camera, with its 12.3-megapixel DX-format CMOS, 3" High resolution LCD display, Scene Recognition System, Picture Control, Active D-Lighting, and one-button Live View, provides photo enthusiasts with the image quality and performance they need to pursue their own vision while still being intuitive enough for use as an everyday camera.http://di1.shopping.com/images/pi/52/fb/d3/99671132-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=2&c=1&l=7000610&t=111021183845&r=4http://di1.shopping.com/images/pi/52/fb/d3/99671132-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=2&c=1&l=7000610&t=111021183845&r=4http://di1.shopping.com/images/pi/52/fb/d3/99671132-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=2&c=1&l=7000610&t=111021183845&r=4http://di1.shopping.com/images/pi/52/fb/d3/99671132-400x400-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=2&c=1&l=7000610&t=111021183845&r=4http://di1.shopping.com/images/pi/52/fb/d3/99671132-499x255-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=2&c=1&l=7000610&t=111021183845&r=475.00http://img.shopping.com/sc/pr/sdc_stars_sm_5.gifhttp://www.shopping.com/Nikon-D90-with-18-270mm-Lens/reviews~linkin_id-7000610689.002299.00http://www.shopping.com/Nikon-D90-with-18-270mm-Lens/prices~linkin_id-7000610http://www.shopping.com/Nikon-D90-with-18-270mm-Lens/info~linkin_id-7000610Nikon® D90 12.3MP Digital SLR Camera (Body Only)The Nikon D90 will make you rethink what a digital SLR camera can achieve.7185Nikonhttp://di106.shopping.com/images/di/47/55/35/4a4a6b70554178653548756a4237666b774141-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=1http://di106.shopping.com/images/di/47/55/35/4a4a6b70554178653548756a4237666b774141-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=1http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=1http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=1http://di106.shopping.com/images/di/47/55/35/4a4a6b70554178653548756a4237666b774141-220x220-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=1in-stock1015.996.051015.99http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=504&BEFID=7185&aon=%5E1&MerchantID=332477&crawler_id=332477&dealId=GU5JJkpUAxe5HujB7fkwAA%3D%3D&url=http%3A%2F%2Ftracking.searchmarketing.com%2Fgsic.asp%3Faid%3D851830266%26&linkin_id=7000610&Issdt=111021183845&searchID=p2.a121bc2aaf029435dce6&DealName=Nikon%C2%AE+D90+12.3MP+Digital+SLR+Camera+%28Body+Only%29&dlprc=1015.99&crn=&istrsmrc=0&isathrsl=0&AR=14&NG=20&NDP=200&PN=1&ST=7&DB=sdcprod&MT=phx-pkadudc2&FPT=DSP&NDS=&NMS=&MRS=&PD=99671132&brnId=14804&IsFtr=0&IsSmart=0&DMT=&op=&CM=&DlLng=1&RR=14&cid=&semid1=&semid2=&IsLps=0&CC=0&SL=0&FS=0&code=&acode=496&category=&HasLink=&frameId=&ND=&MN=&PT=&prjID=&GR=&lnkId=&VK=RadioShackhttp://img.shopping.com/cctool/merch_logos/332477.gif242.25http://img.shopping.com/sc/mr/sdc_checks_25.gifhttp://www.shopping.com/xMR-store_radioshack_9689~MRD-332477~S-1~linkin_id-7000610http://img.shopping.com/sc/glb/flag/US.gifUS10148659Nikon D90 SLR Digital Camera (Camera Body)The Nikon D90 SLR Digital Camera with its 12.3-megapixel DX-format CCD 3" High resolution LCD display Scene Recognition System Picture Control Active D-Lighting and one-button Live View provides photo enthusiasts with the image quality and performance they need to pursue their own vision while still being intuitive enough for use as an everyday camera. In addition the D90 introduces the D-Movie mode allowing for the first time an interchangeable lens SLR camera that is capable of recording 720p HD movie clips. Availabilty: In Stock7185Nikonhttp://di109.shopping.com/images/di/58/68/55/527553432d73704262544944666f3471667a51-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=2http://di109.shopping.com/images/di/58/68/55/527553432d73704262544944666f3471667a51-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=2http://di109.shopping.com/images/di/58/68/55/527553432d73704262544944666f3471667a51-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=2http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=2http://di109.shopping.com/images/di/58/68/55/527553432d73704262544944666f3471667a51-350x350-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=2in-stockFree Shipping with Any Purchase!689.000.00900.00http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=647&BEFID=7185&aon=%5E1&MerchantID=475674&crawler_id=475674&dealId=XhURuSC-spBbTIDfo4qfzQ%3D%3D&url=http%3A%2F%2Fwww.fumfie.com%2Fproduct%2F169.5%2Fshopping-com%3F&linkin_id=7000610&Issdt=111021183845&searchID=p2.a121bc2aaf029435dce6&DealName=Nikon+D90+SLR+Digital+Camera+%28Camera+Body%29&dlprc=689.0&crn=&istrsmrc=1&isathrsl=0&AR=16&NG=20&NDP=200&PN=1&ST=7&DB=sdcprod&MT=phx-pkadudc2&FPT=DSP&NDS=&NMS=&MRS=&PD=99671132&brnId=14804&IsFtr=0&IsSmart=0&DMT=&op=&CM=&DlLng=1&RR=16&cid=&semid1=&semid2=&IsLps=0&CC=1&SL=1&FS=1&code=&acode=658&category=&HasLink=&frameId=&ND=&MN=&PT=&prjID=&GR=&lnkId=&VK=FumFiehttp://img.shopping.com/cctool/merch_logos/475674.gif866 666 91985604.27http://img.shopping.com/sc/mr/sdc_checks_45.gifhttp://www.shopping.com/xMR-store_fumfie~MRD-475674~S-1~linkin_id-7000610http://img.shopping.com/sc/glb/flag/US.gifUSF169C5Nikon D90 SLR w/Nikon 18-105mm VR & 55-200mm VR Lenses12.3 MegapixelDX Format CMOS Sensor3" VGA LCD DisplayLive ViewSelf Cleaning SensorD-Movie ModeHigh Sensitivity (ISO 3200)4.5 fps BurstIn-Camera Image Editing7185Nikonhttp://di101.shopping.com/images/di/6f/30/50/785f584c5744627278415952793372436d7951-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=3http://di101.shopping.com/images/di/6f/30/50/785f584c5744627278415952793372436d7951-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=3http://di101.shopping.com/images/di/6f/30/50/785f584c5744627278415952793372436d7951-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=3http://di101.shopping.com/images/di/6f/30/50/785f584c5744627278415952793372436d7951-400x400-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=3http://di101.shopping.com/images/di/6f/30/50/785f584c5744627278415952793372436d7951-500x500-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=3in-stock1189.000.001189.00http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=371&BEFID=7185&aon=%5E1&MerchantID=487342&crawler_id=487342&dealId=o0Px_XLWDbrxAYRy3rCmyQ%3D%3D&url=http%3A%2F%2Fwww.rythercamera.com%2Fcatalog%2Fproduct_info.php%3Fcsv%3Dsh%26products_id%3D30619%26&linkin_id=7000610&Issdt=111021183845&searchID=p2.a121bc2aaf029435dce6&DealName=Nikon+D90+SLR+w%2FNikon+18-105mm+VR+%26+55-200mm+VR+Lenses&dlprc=1189.0&crn=&istrsmrc=0&isathrsl=0&AR=20&NG=20&NDP=200&PN=1&ST=7&DB=sdcprod&MT=phx-pkadudc2&FPT=DSP&NDS=&NMS=&MRS=&PD=99671132&brnId=14804&IsFtr=0&IsSmart=0&DMT=&op=&CM=&DlLng=1&RR=20&cid=&semid1=&semid2=&IsLps=0&CC=0&SL=0&FS=1&code=&acode=379&category=&HasLink=&frameId=&ND=&MN=&PT=&prjID=&GR=&lnkId=&VK=RytherCamera.comhttp://img.shopping.com/cctool/merch_logos/487342.gif1-877-644-75930http://img.shopping.com/sc/glb/flag/US.gifUS30619Nikon D90 12.3 Megapixel Digital SLR Camera (Body Only)Fusing 12.3 megapixel image quality and a cinematic 24fps D-Movie Mode, the Nikon D90 exceeds the demands of passionate photographers. Coupled with Nikon's EXPEED image processing technologies and NIKKOR optics, breathtaking image fidelity is assured. Combined with fast 0.15ms power-up and split-second 65ms shooting lag, dramatic action and decisive moments are captured easily. Effective 4-frequency, ultrasonic sensor cleaning frees image degrading dust particles from the sensor's optical low pass filter.7185Nikonhttp://di110.shopping.com/images/di/34/48/67/62574a534a3873736749663842304d58497741-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=4http://di110.shopping.com/images/di/34/48/67/62574a534a3873736749663842304d58497741-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=4http://di110.shopping.com/images/di/34/48/67/62574a534a3873736749663842304d58497741-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=4in-stockFREE FEDEX 2-3 DAY DELIVERY899.950.00899.95http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=269&BEFID=7185&aon=%5E&MerchantID=9296&crawler_id=811558&dealId=4HgbWJSJ8ssgIf8B0MXIwA%3D%3D&url=http%3A%2F%2Fwww.pcnation.com%2Foptics-gallery%2Fdetails.asp%3Faffid%3D305%26item%3D2N145P&linkin_id=7000610&Issdt=111021183845&searchID=p2.a121bc2aaf029435dce6&DealName=Nikon+D90+12.3+Megapixel+Digital+SLR+Camera+%28Body+Only%29&dlprc=899.95&crn=&istrsmrc=1&isathrsl=0&AR=21&NG=20&NDP=200&PN=1&ST=7&DB=sdcprod&MT=phx-pkadudc2&FPT=DSP&NDS=&NMS=&MRS=&PD=99671132&brnId=14804&IsFtr=0&IsSmart=0&DMT=&op=&CM=&DlLng=1&RR=21&cid=&semid1=&semid2=&IsLps=0&CC=0&SL=0&FS=1&code=&acode=257&category=&HasLink=&frameId=&ND=&MN=&PT=&prjID=&GR=&lnkId=&VK=PCNationhttp://img.shopping.com/cctool/merch_logos/9296.gif800-470-707916224.43http://img.shopping.com/sc/mr/sdc_checks_45.gifhttp://www.shopping.com/xMR-store_pcnation_9689~MRD-9296~S-1~linkin_id-7000610http://img.shopping.com/sc/glb/flag/US.gifUS2N145PNikon D90 12.3MP Digital SLR Camera (Body Only)Fusing 12.3-megapixel image quality inherited from the award-winning D300 with groundbreaking features, the D90's breathtaking, low-noise image quality is further advanced with EXPEED image processing. Split-second shutter response and continuous shooting at up to 4.5 frames-per-second provide the power to capture fast action and precise moments perfectly, while Nikon's exclusive Scene Recognition System contributes to faster 11-area autofocus performance, finer white balance detection and more. The D90 delivers the control passionate photographers demand, utilizing comprehensive exposure functions and the intelligence of 3D Color Matrix Metering II. Stunning results come to life on a 3-inch 920,000-dot color LCD monitor, providing accurate image review, Live View composition and brilliant playback of the D90's cinematic-quality 24-fps HD D-Movie mode.7185Nikonhttp://di102.shopping.com/images/di/55/4e/44/6133754d445a584f6e76445f377354494c5967-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=5http://di102.shopping.com/images/di/55/4e/44/6133754d445a584f6e76445f377354494c5967-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=5http://di102.shopping.com/images/di/55/4e/44/6133754d445a584f6e76445f377354494c5967-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=5http://di102.shopping.com/images/di/55/4e/44/6133754d445a584f6e76445f377354494c5967-400x400-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=5http://di102.shopping.com/images/di/55/4e/44/6133754d445a584f6e76445f377354494c5967-500x500-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=5in-stockFantastic prices with ease & comfort of Amazon.com!780.000.00780.00http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=566&BEFID=7185&aon=%5E1&MerchantID=301531&crawler_id=1903313&dealId=UNDa3uMDZXOnvD_7sTILYg%3D%3D&url=http%3A%2F%2Fwww.amazon.com%2Fdp%2FB001ET5U92%2Fref%3Dasc_df_B001ET5U921751618%3Fsmid%3DAHF4SYKP09WBH%26tag%3Ddealtime-ce-mp01feed-20%26linkCode%3Dasn%26creative%3D395105%26creativeASIN%3DB001ET5U92&linkin_id=7000610&Issdt=111021183845&searchID=p2.a121bc2aaf029435dce6&DealName=Nikon+D90+12.3MP+Digital+SLR+Camera+%28Body+Only%29&dlprc=780.0&crn=&istrsmrc=0&isathrsl=0&AR=29&NG=20&NDP=200&PN=1&ST=7&DB=sdcprod&MT=phx-pkadudc2&FPT=DSP&NDS=&NMS=&MRS=&PD=99671132&brnId=14804&IsFtr=0&IsSmart=0&DMT=&op=&CM=&DlLng=1&RR=29&cid=&semid1=&semid2=&IsLps=0&CC=0&SL=0&FS=1&code=&acode=520&category=&HasLink=&frameId=&ND=&MN=&PT=&prjID=&GR=&lnkId=&VK=Amazon Marketplacehttp://img.shopping.com/cctool/merch_logos/301531.gif2132.73http://img.shopping.com/sc/mr/sdc_checks_25.gifhttp://www.shopping.com/xMR-store_amazon_marketplace_9689~MRD-301531~S-1~linkin_id-7000610http://img.shopping.com/sc/glb/flag/US.gifUSB001ET5U92Nikon D90 Digital Camera with 18-105mm lens12.9 Megapixel, SLR Camera, 3 in. LCD Screen, 5.8x Optical Zoom, With Video Capability, Weight: 2.3 lb.Its 12.3 megapixel DX-format CMOS image sensor and EXPEED image processing system offer outstanding image quality across a wide ISO light sensitivity range. Live View mode lets you compose and shoot via the high-resolution 3-inch LCD monitor, and an advanced Scene Recognition System and autofocus performance help capture images with astounding accuracy. Movies can be shot in Motion JPEG format using the D-Movie function. The camera’s large image sensor ensures exceptional movie image quality and you can create dramatic effects by shooting with a wide range of interchangeable NIKKOR lenses, from wide-angle to macro to fisheye, or by adjusting the lens aperture and experimenting with depth-of-field. The D90 – designed to fuel your passion for photography.http://di1.shopping.com/images/pi/57/6a/4f/70621646-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=2&c=1&l=7000610&t=111021183845&r=5http://di1.shopping.com/images/pi/57/6a/4f/70621646-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=2&c=1&l=7000610&t=111021183845&r=5http://di1.shopping.com/images/pi/57/6a/4f/70621646-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=2&c=1&l=7000610&t=111021183845&r=5http://di1.shopping.com/images/pi/57/6a/4f/70621646-400x400-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=2&c=1&l=7000610&t=111021183845&r=5http://di1.shopping.com/images/pi/57/6a/4f/70621646-490x489-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=2&c=1&l=7000610&t=111021183845&r=5324.81http://img.shopping.com/sc/pr/sdc_stars_sm_5.gifhttp://www.shopping.com/Nikon-D90-with-18-105mm-lens/reviews~linkin_id-7000610849.951599.95http://www.shopping.com/Nikon-D90-with-18-105mm-lens/prices~linkin_id-7000610http://www.shopping.com/Nikon-D90-with-18-105mm-lens/info~linkin_id-7000610Nikon D90 18-105mm VR LensThe Nikon D90 SLR Digital Camera with its 12.3-megapixel DX-format CMOS 3" High resolution LCD display Scene Recognition System Picture Control Active D-Lighting and one-button Live View prov7185Nikonhttp://di111.shopping.com/images/di/33/6f/35/6531566768674a5066684c7654314a464b5441-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=1http://di111.shopping.com/images/di/33/6f/35/6531566768674a5066684c7654314a464b5441-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=1http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=1http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=1http://di111.shopping.com/images/di/33/6f/35/6531566768674a5066684c7654314a464b5441-260x260-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=1in-stock849.950.00849.95http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=419&BEFID=7185&aon=%5E1&MerchantID=9390&crawler_id=1905054&dealId=3o5e1VghgJPfhLvT1JFKTA%3D%3D&url=http%3A%2F%2Fwww.ajrichard.com%2FNikon-D90-18-105mm-VR-Lens%2Fp-292%3Frefid%3DShopping%26&linkin_id=7000610&Issdt=111021183845&searchID=p2.a121bc2aaf029435dce6&DealName=Nikon+D90+18-105mm+VR+Lens&dlprc=849.95&crn=&istrsmrc=0&isathrsl=0&AR=2&NG=20&NDP=200&PN=1&ST=7&DB=sdcprod&MT=phx-pkadudc2&FPT=DSP&NDS=&NMS=&MRS=&PD=70621646&brnId=14804&IsFtr=0&IsSmart=0&DMT=&op=&CM=&DlLng=1&RR=2&cid=&semid1=&semid2=&IsLps=0&CC=0&SL=0&FS=1&code=&acode=425&category=&HasLink=&frameId=&ND=&MN=&PT=&prjID=&GR=&lnkId=&VK=AJRichardhttp://img.shopping.com/cctool/merch_logos/9390.gif1-888-871-125631244.48http://img.shopping.com/sc/mr/sdc_checks_45.gifhttp://www.shopping.com/xMR-store_ajrichard~MRD-9390~S-1~linkin_id-7000610http://img.shopping.com/sc/glb/flag/US.gifUS292Nikon D90 SLR w/Nikon 18-105mm VR Lens12.3 MegapixelDX Format CMOS Sensor3" VGA LCD DisplayLive ViewSelf Cleaning SensorD-Movie ModeHigh Sensitivity (ISO 3200)4.5 fps BurstIn-Camera Image Editing7185Nikonhttp://di108.shopping.com/images/di/5f/6c/59/576a5f6a62776673536b666377556344757777-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=2http://di108.shopping.com/images/di/5f/6c/59/576a5f6a62776673536b666377556344757777-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=2http://di108.shopping.com/images/di/5f/6c/59/576a5f6a62776673536b666377556344757777-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=2http://di108.shopping.com/images/di/5f/6c/59/576a5f6a62776673536b666377556344757777-400x400-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=2http://di108.shopping.com/images/di/5f/6c/59/576a5f6a62776673536b666377556344757777-500x500-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=2in-stock909.000.00909.00http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=371&BEFID=7185&aon=%5E1&MerchantID=487342&crawler_id=487342&dealId=_lYWj_jbwfsSkfcwUcDuww%3D%3D&url=http%3A%2F%2Fwww.rythercamera.com%2Fcatalog%2Fproduct_info.php%3Fcsv%3Dsh%26products_id%3D30971%26&linkin_id=7000610&Issdt=111021183845&searchID=p2.a121bc2aaf029435dce6&DealName=Nikon+D90+SLR+w%2FNikon+18-105mm+VR+Lens&dlprc=909.0&crn=&istrsmrc=0&isathrsl=0&AR=3&NG=20&NDP=200&PN=1&ST=7&DB=sdcprod&MT=phx-pkadudc2&FPT=DSP&NDS=&NMS=&MRS=&PD=70621646&brnId=14804&IsFtr=0&IsSmart=0&DMT=&op=&CM=&DlLng=1&RR=3&cid=&semid1=&semid2=&IsLps=0&CC=0&SL=0&FS=1&code=&acode=379&category=&HasLink=&frameId=&ND=&MN=&PT=&prjID=&GR=&lnkId=&VK=RytherCamera.comhttp://img.shopping.com/cctool/merch_logos/487342.gif1-877-644-75930http://img.shopping.com/sc/glb/flag/US.gifUS3097125448/D90 12.3 Megapixel Digital Camera 18-105mm Zoom Lens w/ 3" Screen - BlackNikon D90 - Digital camera - SLR - 12.3 Mpix - Nikon AF-S DX 18-105mm lens - optical zoom: 5.8 x - supported memory: SD, SDHC7185Nikonhttp://di110.shopping.com/images/di/31/4b/43/636c4347755776747932584b5539736b616467-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=3http://di110.shopping.com/images/di/31/4b/43/636c4347755776747932584b5539736b616467-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=3http://di110.shopping.com/images/di/31/4b/43/636c4347755776747932584b5539736b616467-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=3http://di110.shopping.com/images/di/31/4b/43/636c4347755776747932584b5539736b616467-400x400-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=3in-stockGet 30 days FREE SHIPPING w/ ShipVantage1199.008.201199.00http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=578&BEFID=7185&aon=%5E1&MerchantID=485615&crawler_id=485615&dealId=1KCclCGuWvty2XKU9skadg%3D%3D&url=http%3A%2F%2Fsears.rdr.channelintelligence.com%2Fgo.asp%3FfVhzOGNRAAQIASNiE1NbQBRtFXpzYx0CTAICI2BbH1lEFmgKP3QvUVpEREdlfUAUHAQPLVpFTVdtJzxAHUNYW3AhQBM0QhFvEXAbYh8EAAVmb2JcVlhCGGkPc3QDEkFZVQ0WFhdRW0MWbgYWDlxzdGMdAVQWRi0xDAwPFhw9TSobb05eWVVYKzsLTFVVQi5RICs3SA8MU1s2MQQKD1wf%26nAID%3D13736960%26&linkin_id=7000610&Issdt=111021183845&searchID=p2.a121bc2aaf029435dce6&DealName=25448%2FD90+12.3+Megapixel+Digital+Camera+18-105mm+Zoom+Lens+w%2F+3%22+Screen+-+Black&dlprc=1199.0&crn=&istrsmrc=1&isathrsl=0&AR=4&NG=20&NDP=200&PN=1&ST=7&DB=sdcprod&MT=phx-pkadudc2&FPT=DSP&NDS=&NMS=&MRS=&PD=70621646&brnId=14804&IsFtr=0&IsSmart=0&DMT=&op=&CM=&DlLng=1&RR=4&cid=&semid1=&semid2=&IsLps=0&CC=0&SL=0&FS=0&code=&acode=586&category=&HasLink=&frameId=&ND=&MN=&PT=&prjID=&GR=&lnkId=&VK=Searshttp://img.shopping.com/cctool/merch_logos/485615.gif1-800-349-43588882.85http://img.shopping.com/sc/mr/sdc_checks_3.gifhttp://www.shopping.com/xMR-store_sears_4189479~MRD-485615~S-1~linkin_id-7000610http://img.shopping.com/sc/glb/flag/US.gifUS00353197000Nikon® D90 12.3MP Digital SLR with 18-105mm LensThe Nikon D90 will make you rethink what a digital SLR camera can achieve.7185Nikonhttp://di101.shopping.com/images/di/33/2d/56/4f53665656354a6f37486c41346b4a74616e41-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=4http://di101.shopping.com/images/di/33/2d/56/4f53665656354a6f37486c41346b4a74616e41-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=4http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=4http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=4http://di101.shopping.com/images/di/33/2d/56/4f53665656354a6f37486c41346b4a74616e41-220x220-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=4in-stock1350.996.051350.99http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=504&BEFID=7185&aon=%5E1&MerchantID=332477&crawler_id=332477&dealId=3-VOSfVV5Jo7HlA4kJtanA%3D%3D&url=http%3A%2F%2Ftracking.searchmarketing.com%2Fgsic.asp%3Faid%3D982673361%26&linkin_id=7000610&Issdt=111021183845&searchID=p2.a121bc2aaf029435dce6&DealName=Nikon%C2%AE+D90+12.3MP+Digital+SLR+with+18-105mm+Lens&dlprc=1350.99&crn=&istrsmrc=0&isathrsl=0&AR=5&NG=20&NDP=200&PN=1&ST=7&DB=sdcprod&MT=phx-pkadudc2&FPT=DSP&NDS=&NMS=&MRS=&PD=70621646&brnId=14804&IsFtr=0&IsSmart=0&DMT=&op=&CM=&DlLng=1&RR=5&cid=&semid1=&semid2=&IsLps=0&CC=0&SL=0&FS=0&code=&acode=496&category=&HasLink=&frameId=&ND=&MN=&PT=&prjID=&GR=&lnkId=&VK=RadioShackhttp://img.shopping.com/cctool/merch_logos/332477.gif242.25http://img.shopping.com/sc/mr/sdc_checks_25.gifhttp://www.shopping.com/xMR-store_radioshack_9689~MRD-332477~S-1~linkin_id-7000610http://img.shopping.com/sc/glb/flag/US.gifUS11148905Nikon D90 Kit 12.3-megapixel Digital SLR with 18-105mm VR LensPhotographers, take your passion further!Now is the time for new creativity, and to rethink what a digital SLR camera can achieve. It's time for the D90, a camera with everything you would expect from Nikon's next-generation D-SLRs, and some unexpected surprises, as well. The stunning image quality is inherited from the D300, Nikon's DX-format flagship. The D90 also has Nikon's unmatched ergonomics and high performance, and now takes high-quality movies with beautifully cinematic results. The world of photography has changed, and with the D90 in your hands, it's time to make your own rules.AF-S DX NIKKOR 18-105mm f/3.5-5.6G ED VR LensWide-ratio 5.8x zoom Compact, versatile and ideal for a broad range of shooting situations, ranging from interiors and landscapes to beautiful portraits� a perfect everyday zoom. Nikon VR (Vibration Reduction) image stabilization Vibration Reduction is engineered specifically for each VR NIKKOR lens and enables handheld shooting at up to 3 shutter speeds slower than would7185Nikonhttp://di110.shopping.com/images/di/6b/51/6e/4236725334416a4e3564783568325f36333167-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=5http://di110.shopping.com/images/di/6b/51/6e/4236725334416a4e3564783568325f36333167-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=5http://di110.shopping.com/images/di/6b/51/6e/4236725334416a4e3564783568325f36333167-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=5http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=5http://di110.shopping.com/images/di/6b/51/6e/4236725334416a4e3564783568325f36333167-300x232-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=5in-stockShipping Included!1050.000.001199.00http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=135&BEFID=7185&aon=%5E1&MerchantID=313162&crawler_id=313162&dealId=kQnB6rS4AjN5dx5h2_631g%3D%3D&url=http%3A%2F%2Fonecall.rdr.channelintelligence.com%2Fgo.asp%3FfVhzOGNRAAQIASNiE1pZSxNoWHFwLx8GTAICa2ZeH1sPXTZLNzRpAh1HR0BxPQEGCBJNMhFHUElsFCFCVkVTTHAcBggEHQ4aHXNpGERGH3RQODsbAgdechJtbBt8fx8JAwhtZFAzJj1oGgIWCxRlNyFOUV9UUGIxBgo0T0IyTSYqJ0RWHw4QPCIBAAQXRGMDICg6TllZVBhh%26nAID%3D13736960&linkin_id=7000610&Issdt=111021183845&searchID=p2.a121bc2aaf029435dce6&DealName=Nikon+D90+Kit+12.3-megapixel+Digital+SLR+with+18-105mm+VR+Lens&dlprc=1050.0&crn=&istrsmrc=1&isathrsl=0&AR=6&NG=20&NDP=200&PN=1&ST=7&DB=sdcprod&MT=phx-pkadudc2&FPT=DSP&NDS=&NMS=&MRS=&PD=70621646&brnId=14804&IsFtr=0&IsSmart=0&DMT=&op=&CM=&DlLng=1&RR=6&cid=&semid1=&semid2=&IsLps=0&CC=0&SL=1&FS=1&code=&acode=143&category=&HasLink=&frameId=&ND=&MN=&PT=&prjID=&GR=&lnkId=&VK=OneCallhttp://img.shopping.com/cctool/merch_logos/313162.gif1.800.398.07661804.44http://img.shopping.com/sc/mr/sdc_checks_45.gifhttp://www.shopping.com/xMR-store_onecall_9689~MRD-313162~S-1~linkin_id-7000610http://img.shopping.com/sc/glb/flag/US.gifUS92826Price rangehttp://www.shopping.com/digital-cameras/nikon/products?oq=nikon&linkin_id=7000610$24 - $4012http://www.shopping.com/digital-cameras/nikon/products?minPrice=24&maxPrice=4012&linkin_id=7000610$4012 - $7999http://www.shopping.com/digital-cameras/nikon/products?minPrice=4012&maxPrice=7999&linkin_id=7000610Brandhttp://www.shopping.com/digital-cameras/nikon/products~all-9688-brand~MS-1?oq=nikon&linkin_id=7000610Nikonhttp://www.shopping.com/digital-cameras/nikon+brand-nikon/products~linkin_id-7000610Cranehttp://www.shopping.com/digital-cameras/nikon+9688-brand-crane/products~linkin_id-7000610Ikelitehttp://www.shopping.com/digital-cameras/nikon+ikelite/products~linkin_id-7000610Bowerhttp://www.shopping.com/digital-cameras/nikon+bower/products~linkin_id-7000610FUJIFILMhttp://www.shopping.com/digital-cameras/nikon+brand-fuji/products~linkin_id-7000610Storehttp://www.shopping.com/digital-cameras/nikon/products~all-store~MS-1?oq=nikon&linkin_id=7000610Amazon Marketplacehttp://www.shopping.com/digital-cameras/nikon+store-amazon-marketplace-9689/products~linkin_id-7000610Amazonhttp://www.shopping.com/digital-cameras/nikon+store-amazon/products~linkin_id-7000610Adoramahttp://www.shopping.com/digital-cameras/nikon+store-adorama/products~linkin_id-7000610J&R Music and Computer Worldhttp://www.shopping.com/digital-cameras/nikon+store-j-r-music-and-computer-world/products~linkin_id-7000610RytherCamera.comhttp://www.shopping.com/digital-cameras/nikon+store-rythercamera-com/products~linkin_id-7000610Resolutionhttp://www.shopping.com/digital-cameras/nikon/products~all-21885-resolution~MS-1?oq=nikon&linkin_id=7000610Under 4 Megapixelhttp://www.shopping.com/digital-cameras/nikon+under-4-megapixel/products~linkin_id-7000610At least 5 Megapixelhttp://www.shopping.com/digital-cameras/nikon+5-megapixel-digital-cameras/products~linkin_id-7000610At least 6 Megapixelhttp://www.shopping.com/digital-cameras/nikon+6-megapixel-digital-cameras/products~linkin_id-7000610At least 7 Megapixelhttp://www.shopping.com/digital-cameras/nikon+7-megapixel-digital-cameras/products~linkin_id-7000610At least 8 Megapixelhttp://www.shopping.com/digital-cameras/nikon+8-megapixel-digital-cameras/products~linkin_id-7000610Featureshttp://www.shopping.com/digital-cameras/nikon/products~all-32804-features~MS-1?oq=nikon&linkin_id=7000610Shockproofhttp://www.shopping.com/digital-cameras/nikon+32804-features-shockproof/products~linkin_id-7000610Waterproofhttp://www.shopping.com/digital-cameras/nikon+32804-features-waterproof/products~linkin_id-7000610Freezeproofhttp://www.shopping.com/digital-cameras/nikon+32804-features-freezeproof/products~linkin_id-7000610Dust proofhttp://www.shopping.com/digital-cameras/nikon+32804-features-dust-proof/products~linkin_id-7000610Image Stabilizationhttp://www.shopping.com/digital-cameras/nikon+32804-features-image-stabilization/products~linkin_id-7000610hybriddigital camerag1sonycameracanonnikonkodak digital camerakodaksony cybershotkodak easyshare digital cameranikon coolpixolympuspink digital cameracanon powershot \ No newline at end of file diff --git a/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/examples/strict.dtd b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/examples/strict.dtd new file mode 100644 index 00000000..b2745594 --- /dev/null +++ b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/examples/strict.dtd @@ -0,0 +1,870 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +%HTMLlat1; + + +%HTMLsymbol; + + +%HTMLspecial; + + + + + + + + + + + + + +]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/examples/test.html b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/examples/test.html new file mode 100644 index 00000000..61f8f1ab --- /dev/null +++ b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/examples/test.html @@ -0,0 +1,15 @@ + + + + + testing the parser + + + +

hello + + + + diff --git a/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/examples/test.xml b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/examples/test.xml new file mode 100644 index 00000000..801292d7 --- /dev/null +++ b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/examples/test.xml @@ -0,0 +1,1254 @@ + + +]> + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + + Some Text + + + + + + + are ok in here. ]]> + + Pre-Text & Inlined text Post-text. +  + + \ No newline at end of file diff --git a/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/lib/sax.js b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/lib/sax.js new file mode 100644 index 00000000..996d39d7 --- /dev/null +++ b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/lib/sax.js @@ -0,0 +1,1410 @@ +// wrapper for non-node envs +;(function (sax) { + +sax.parser = function (strict, opt) { return new SAXParser(strict, opt) } +sax.SAXParser = SAXParser +sax.SAXStream = SAXStream +sax.createStream = createStream + +// When we pass the MAX_BUFFER_LENGTH position, start checking for buffer overruns. +// When we check, schedule the next check for MAX_BUFFER_LENGTH - (max(buffer lengths)), +// since that's the earliest that a buffer overrun could occur. This way, checks are +// as rare as required, but as often as necessary to ensure never crossing this bound. +// Furthermore, buffers are only tested at most once per write(), so passing a very +// large string into write() might have undesirable effects, but this is manageable by +// the caller, so it is assumed to be safe. Thus, a call to write() may, in the extreme +// edge case, result in creating at most one complete copy of the string passed in. +// Set to Infinity to have unlimited buffers. +sax.MAX_BUFFER_LENGTH = 64 * 1024 + +var buffers = [ + "comment", "sgmlDecl", "textNode", "tagName", "doctype", + "procInstName", "procInstBody", "entity", "attribName", + "attribValue", "cdata", "script" +] + +sax.EVENTS = // for discoverability. + [ "text" + , "processinginstruction" + , "sgmldeclaration" + , "doctype" + , "comment" + , "attribute" + , "opentag" + , "closetag" + , "opencdata" + , "cdata" + , "closecdata" + , "error" + , "end" + , "ready" + , "script" + , "opennamespace" + , "closenamespace" + ] + +function SAXParser (strict, opt) { + if (!(this instanceof SAXParser)) return new SAXParser(strict, opt) + + var parser = this + clearBuffers(parser) + parser.q = parser.c = "" + parser.bufferCheckPosition = sax.MAX_BUFFER_LENGTH + parser.opt = opt || {} + parser.opt.lowercase = parser.opt.lowercase || parser.opt.lowercasetags + parser.looseCase = parser.opt.lowercase ? "toLowerCase" : "toUpperCase" + parser.tags = [] + parser.closed = parser.closedRoot = parser.sawRoot = false + parser.tag = parser.error = null + parser.strict = !!strict + parser.noscript = !!(strict || parser.opt.noscript) + parser.state = S.BEGIN + parser.ENTITIES = Object.create(sax.ENTITIES) + parser.attribList = [] + + // namespaces form a prototype chain. + // it always points at the current tag, + // which protos to its parent tag. + if (parser.opt.xmlns) parser.ns = Object.create(rootNS) + + // mostly just for error reporting + parser.trackPosition = parser.opt.position !== false + if (parser.trackPosition) { + parser.position = parser.line = parser.column = 0 + } + emit(parser, "onready") +} + +if (!Object.create) Object.create = function (o) { + function f () { this.__proto__ = o } + f.prototype = o + return new f +} + +if (!Object.getPrototypeOf) Object.getPrototypeOf = function (o) { + return o.__proto__ +} + +if (!Object.keys) Object.keys = function (o) { + var a = [] + for (var i in o) if (o.hasOwnProperty(i)) a.push(i) + return a +} + +function checkBufferLength (parser) { + var maxAllowed = Math.max(sax.MAX_BUFFER_LENGTH, 10) + , maxActual = 0 + for (var i = 0, l = buffers.length; i < l; i ++) { + var len = parser[buffers[i]].length + if (len > maxAllowed) { + // Text/cdata nodes can get big, and since they're buffered, + // we can get here under normal conditions. + // Avoid issues by emitting the text node now, + // so at least it won't get any bigger. + switch (buffers[i]) { + case "textNode": + closeText(parser) + break + + case "cdata": + emitNode(parser, "oncdata", parser.cdata) + parser.cdata = "" + break + + case "script": + emitNode(parser, "onscript", parser.script) + parser.script = "" + break + + default: + error(parser, "Max buffer length exceeded: "+buffers[i]) + } + } + maxActual = Math.max(maxActual, len) + } + // schedule the next check for the earliest possible buffer overrun. + parser.bufferCheckPosition = (sax.MAX_BUFFER_LENGTH - maxActual) + + parser.position +} + +function clearBuffers (parser) { + for (var i = 0, l = buffers.length; i < l; i ++) { + parser[buffers[i]] = "" + } +} + +function flushBuffers (parser) { + closeText(parser) + if (parser.cdata !== "") { + emitNode(parser, "oncdata", parser.cdata) + parser.cdata = "" + } + if (parser.script !== "") { + emitNode(parser, "onscript", parser.script) + parser.script = "" + } +} + +SAXParser.prototype = + { end: function () { end(this) } + , write: write + , resume: function () { this.error = null; return this } + , close: function () { return this.write(null) } + , flush: function () { flushBuffers(this) } + } + +try { + var Stream = require("stream").Stream +} catch (ex) { + var Stream = function () {} +} + + +var streamWraps = sax.EVENTS.filter(function (ev) { + return ev !== "error" && ev !== "end" +}) + +function createStream (strict, opt) { + return new SAXStream(strict, opt) +} + +function SAXStream (strict, opt) { + if (!(this instanceof SAXStream)) return new SAXStream(strict, opt) + + Stream.apply(this) + + this._parser = new SAXParser(strict, opt) + this.writable = true + this.readable = true + + + var me = this + + this._parser.onend = function () { + me.emit("end") + } + + this._parser.onerror = function (er) { + me.emit("error", er) + + // if didn't throw, then means error was handled. + // go ahead and clear error, so we can write again. + me._parser.error = null + } + + this._decoder = null; + + streamWraps.forEach(function (ev) { + Object.defineProperty(me, "on" + ev, { + get: function () { return me._parser["on" + ev] }, + set: function (h) { + if (!h) { + me.removeAllListeners(ev) + return me._parser["on"+ev] = h + } + me.on(ev, h) + }, + enumerable: true, + configurable: false + }) + }) +} + +SAXStream.prototype = Object.create(Stream.prototype, + { constructor: { value: SAXStream } }) + +SAXStream.prototype.write = function (data) { + if (typeof Buffer === 'function' && + typeof Buffer.isBuffer === 'function' && + Buffer.isBuffer(data)) { + if (!this._decoder) { + var SD = require('string_decoder').StringDecoder + this._decoder = new SD('utf8') + } + data = this._decoder.write(data); + } + + this._parser.write(data.toString()) + this.emit("data", data) + return true +} + +SAXStream.prototype.end = function (chunk) { + if (chunk && chunk.length) this.write(chunk) + this._parser.end() + return true +} + +SAXStream.prototype.on = function (ev, handler) { + var me = this + if (!me._parser["on"+ev] && streamWraps.indexOf(ev) !== -1) { + me._parser["on"+ev] = function () { + var args = arguments.length === 1 ? [arguments[0]] + : Array.apply(null, arguments) + args.splice(0, 0, ev) + me.emit.apply(me, args) + } + } + + return Stream.prototype.on.call(me, ev, handler) +} + + + +// character classes and tokens +var whitespace = "\r\n\t " + // this really needs to be replaced with character classes. + // XML allows all manner of ridiculous numbers and digits. + , number = "0124356789" + , letter = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" + // (Letter | "_" | ":") + , quote = "'\"" + , entity = number+letter+"#" + , attribEnd = whitespace + ">" + , CDATA = "[CDATA[" + , DOCTYPE = "DOCTYPE" + , XML_NAMESPACE = "http://www.w3.org/XML/1998/namespace" + , XMLNS_NAMESPACE = "http://www.w3.org/2000/xmlns/" + , rootNS = { xml: XML_NAMESPACE, xmlns: XMLNS_NAMESPACE } + +// turn all the string character sets into character class objects. +whitespace = charClass(whitespace) +number = charClass(number) +letter = charClass(letter) + +// http://www.w3.org/TR/REC-xml/#NT-NameStartChar +// This implementation works on strings, a single character at a time +// as such, it cannot ever support astral-plane characters (10000-EFFFF) +// without a significant breaking change to either this parser, or the +// JavaScript language. Implementation of an emoji-capable xml parser +// is left as an exercise for the reader. +var nameStart = /[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/ + +var nameBody = /[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040\.\d-]/ + +quote = charClass(quote) +entity = charClass(entity) +attribEnd = charClass(attribEnd) + +function charClass (str) { + return str.split("").reduce(function (s, c) { + s[c] = true + return s + }, {}) +} + +function isRegExp (c) { + return Object.prototype.toString.call(c) === '[object RegExp]' +} + +function is (charclass, c) { + return isRegExp(charclass) ? !!c.match(charclass) : charclass[c] +} + +function not (charclass, c) { + return !is(charclass, c) +} + +var S = 0 +sax.STATE = +{ BEGIN : S++ +, TEXT : S++ // general stuff +, TEXT_ENTITY : S++ // & and such. +, OPEN_WAKA : S++ // < +, SGML_DECL : S++ // +, SCRIPT : S++ // " + , expect : + [ [ "opentag", { name: "xml", attributes: {}, isSelfClosing: false } ] + , [ "opentag", { name: "script", attributes: {}, isSelfClosing: false } ] + , [ "text", "hello world" ] + , [ "closetag", "script" ] + , [ "closetag", "xml" ] + ] + , strict : false + , opt : { lowercasetags: true, noscript: true } + } + ) + +require(__dirname).test + ( { xml : "" + , expect : + [ [ "opentag", { name: "xml", attributes: {}, isSelfClosing: false } ] + , [ "opentag", { name: "script", attributes: {}, isSelfClosing: false } ] + , [ "opencdata", undefined ] + , [ "cdata", "hello world" ] + , [ "closecdata", undefined ] + , [ "closetag", "script" ] + , [ "closetag", "xml" ] + ] + , strict : false + , opt : { lowercasetags: true, noscript: true } + } + ) + diff --git a/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/issue-84.js b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/issue-84.js new file mode 100644 index 00000000..0e7ee699 --- /dev/null +++ b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/issue-84.js @@ -0,0 +1,13 @@ +// https://github.com/isaacs/sax-js/issues/49 +require(__dirname).test + ( { xml : "body" + , expect : + [ [ "processinginstruction", { name: "has", body: "unbalanced \"quotes" } ], + [ "opentag", { name: "xml", attributes: {}, isSelfClosing: false } ] + , [ "text", "body" ] + , [ "closetag", "xml" ] + ] + , strict : false + , opt : { lowercasetags: true, noscript: true } + } + ) diff --git a/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/parser-position.js b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/parser-position.js new file mode 100644 index 00000000..e4a68b1e --- /dev/null +++ b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/parser-position.js @@ -0,0 +1,28 @@ +var sax = require("../lib/sax"), + assert = require("assert") + +function testPosition(chunks, expectedEvents) { + var parser = sax.parser(); + expectedEvents.forEach(function(expectation) { + parser['on' + expectation[0]] = function() { + for (var prop in expectation[1]) { + assert.equal(parser[prop], expectation[1][prop]); + } + } + }); + chunks.forEach(function(chunk) { + parser.write(chunk); + }); +}; + +testPosition(['

abcdefgh
'], + [ ['opentag', { position: 5, startTagPosition: 1 }] + , ['text', { position: 19, startTagPosition: 14 }] + , ['closetag', { position: 19, startTagPosition: 14 }] + ]); + +testPosition(['
abcde','fgh
'], + [ ['opentag', { position: 5, startTagPosition: 1 }] + , ['text', { position: 19, startTagPosition: 14 }] + , ['closetag', { position: 19, startTagPosition: 14 }] + ]); diff --git a/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/script-close-better.js b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/script-close-better.js new file mode 100644 index 00000000..f4887b9a --- /dev/null +++ b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/script-close-better.js @@ -0,0 +1,12 @@ +require(__dirname).test({ + xml : "", + expect : [ + ["opentag", {"name": "HTML","attributes": {}, isSelfClosing: false}], + ["opentag", {"name": "HEAD","attributes": {}, isSelfClosing: false}], + ["opentag", {"name": "SCRIPT","attributes": {}, isSelfClosing: false}], + ["script", "'
foo
", + expect : [ + ["opentag", {"name": "HTML","attributes": {}, "isSelfClosing": false}], + ["opentag", {"name": "HEAD","attributes": {}, "isSelfClosing": false}], + ["opentag", {"name": "SCRIPT","attributes": {}, "isSelfClosing": false}], + ["script", "if (1 < 0) { console.log('elo there'); }"], + ["closetag", "SCRIPT"], + ["closetag", "HEAD"], + ["closetag", "HTML"] + ] +}); diff --git a/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/self-closing-child-strict.js b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/self-closing-child-strict.js new file mode 100644 index 00000000..3d6e9852 --- /dev/null +++ b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/self-closing-child-strict.js @@ -0,0 +1,44 @@ + +require(__dirname).test({ + xml : + ""+ + "" + + "" + + "" + + "" + + "=(|)" + + "" + + "", + expect : [ + ["opentag", { + "name": "root", + "attributes": {}, + "isSelfClosing": false + }], + ["opentag", { + "name": "child", + "attributes": {}, + "isSelfClosing": false + }], + ["opentag", { + "name": "haha", + "attributes": {}, + "isSelfClosing": true + }], + ["closetag", "haha"], + ["closetag", "child"], + ["opentag", { + "name": "monkey", + "attributes": {}, + "isSelfClosing": false + }], + ["text", "=(|)"], + ["closetag", "monkey"], + ["closetag", "root"], + ["end"], + ["ready"] + ], + strict : true, + opt : {} +}); + diff --git a/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/self-closing-child.js b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/self-closing-child.js new file mode 100644 index 00000000..f31c3664 --- /dev/null +++ b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/self-closing-child.js @@ -0,0 +1,44 @@ + +require(__dirname).test({ + xml : + ""+ + "" + + "" + + "" + + "" + + "=(|)" + + "" + + "", + expect : [ + ["opentag", { + "name": "ROOT", + "attributes": {}, + "isSelfClosing": false + }], + ["opentag", { + "name": "CHILD", + "attributes": {}, + "isSelfClosing": false + }], + ["opentag", { + "name": "HAHA", + "attributes": {}, + "isSelfClosing": true + }], + ["closetag", "HAHA"], + ["closetag", "CHILD"], + ["opentag", { + "name": "MONKEY", + "attributes": {}, + "isSelfClosing": false + }], + ["text", "=(|)"], + ["closetag", "MONKEY"], + ["closetag", "ROOT"], + ["end"], + ["ready"] + ], + strict : false, + opt : {} +}); + diff --git a/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/self-closing-tag.js b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/self-closing-tag.js new file mode 100644 index 00000000..d1d8b7c8 --- /dev/null +++ b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/self-closing-tag.js @@ -0,0 +1,25 @@ + +require(__dirname).test({ + xml : + " "+ + " "+ + " "+ + " "+ + "=(|) "+ + ""+ + " ", + expect : [ + ["opentag", {name:"ROOT", attributes:{}, isSelfClosing: false}], + ["opentag", {name:"HAHA", attributes:{}, isSelfClosing: true}], + ["closetag", "HAHA"], + ["opentag", {name:"HAHA", attributes:{}, isSelfClosing: true}], + ["closetag", "HAHA"], + // ["opentag", {name:"HAHA", attributes:{}}], + // ["closetag", "HAHA"], + ["opentag", {name:"MONKEY", attributes:{}, isSelfClosing: false}], + ["text", "=(|)"], + ["closetag", "MONKEY"], + ["closetag", "ROOT"] + ], + opt : { trim : true } +}); \ No newline at end of file diff --git a/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/stray-ending.js b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/stray-ending.js new file mode 100644 index 00000000..bec467b2 --- /dev/null +++ b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/stray-ending.js @@ -0,0 +1,17 @@ +// stray ending tags should just be ignored in non-strict mode. +// https://github.com/isaacs/sax-js/issues/32 +require(__dirname).test + ( { xml : + "" + , expect : + [ [ "opentag", { name: "A", attributes: {}, isSelfClosing: false } ] + , [ "opentag", { name: "B", attributes: {}, isSelfClosing: false } ] + , [ "text", "" ] + , [ "closetag", "B" ] + , [ "closetag", "A" ] + ] + , strict : false + , opt : {} + } + ) + diff --git a/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/trailing-attribute-no-value.js b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/trailing-attribute-no-value.js new file mode 100644 index 00000000..222837f8 --- /dev/null +++ b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/trailing-attribute-no-value.js @@ -0,0 +1,10 @@ + +require(__dirname).test({ + xml : + "", + expect : [ + ["attribute", {name:"ATTRIB", value:"attrib"}], + ["opentag", {name:"ROOT", attributes:{"ATTRIB":"attrib"}, isSelfClosing: false}] + ], + opt : { trim : true } +}); diff --git a/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/trailing-non-whitespace.js b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/trailing-non-whitespace.js new file mode 100644 index 00000000..619578b1 --- /dev/null +++ b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/trailing-non-whitespace.js @@ -0,0 +1,18 @@ + +require(__dirname).test({ + xml : "Welcome, to monkey land", + expect : [ + ["opentag", { + "name": "SPAN", + "attributes": {}, + isSelfClosing: false + }], + ["text", "Welcome,"], + ["closetag", "SPAN"], + ["text", " to monkey land"], + ["end"], + ["ready"] + ], + strict : false, + opt : {} +}); diff --git a/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/unclosed-root.js b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/unclosed-root.js new file mode 100644 index 00000000..f4eeac61 --- /dev/null +++ b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/unclosed-root.js @@ -0,0 +1,11 @@ +require(__dirname).test + ( { xml : "" + + , expect : + [ [ "opentag", { name: "root", attributes: {}, isSelfClosing: false } ] + , [ "error", "Unclosed root tag\nLine: 0\nColumn: 6\nChar: " ] + ] + , strict : true + , opt : {} + } + ) diff --git a/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/unquoted.js b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/unquoted.js new file mode 100644 index 00000000..b3a9a812 --- /dev/null +++ b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/unquoted.js @@ -0,0 +1,18 @@ +// unquoted attributes should be ok in non-strict mode +// https://github.com/isaacs/sax-js/issues/31 +require(__dirname).test + ( { xml : + "" + , expect : + [ [ "attribute", { name: "CLASS", value: "test" } ] + , [ "attribute", { name: "HELLO", value: "world" } ] + , [ "opentag", { name: "SPAN", + attributes: { CLASS: "test", HELLO: "world" }, + isSelfClosing: false } ] + , [ "closetag", "SPAN" ] + ] + , strict : false + , opt : {} + } + ) + diff --git a/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/utf8-split.js b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/utf8-split.js new file mode 100644 index 00000000..e22bc100 --- /dev/null +++ b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/utf8-split.js @@ -0,0 +1,32 @@ +var assert = require('assert') +var saxStream = require('../lib/sax').createStream() + +var b = new Buffer('误') + +saxStream.on('text', function(text) { + assert.equal(text, b.toString()) +}) + +saxStream.write(new Buffer('')) +saxStream.write(b.slice(0, 1)) +saxStream.write(b.slice(1)) +saxStream.write(new Buffer('')) +saxStream.write(b.slice(0, 2)) +saxStream.write(b.slice(2)) +saxStream.write(new Buffer('')) +saxStream.write(b) +saxStream.write(new Buffer('')) +saxStream.write(Buffer.concat([new Buffer(''), b.slice(0, 1)])) +saxStream.end(Buffer.concat([b.slice(1), new Buffer('')])) + +var saxStream2 = require('../lib/sax').createStream() + +saxStream2.on('text', function(text) { + assert.equal(text, '�') +}); + +saxStream2.write(new Buffer('')); +saxStream2.write(new Buffer([0xC0])); +saxStream2.write(new Buffer('')); +saxStream2.write(Buffer.concat([new Buffer(''), b.slice(0,1)])); +saxStream2.end(); diff --git a/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/xmlns-as-tag-name.js b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/xmlns-as-tag-name.js new file mode 100644 index 00000000..99142ca6 --- /dev/null +++ b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/xmlns-as-tag-name.js @@ -0,0 +1,15 @@ + +require(__dirname).test + ( { xml : + "" + , expect : + [ [ "opentag", { name: "xmlns", uri: "", prefix: "", local: "xmlns", + attributes: {}, ns: {}, + isSelfClosing: true} + ], + ["closetag", "xmlns"] + ] + , strict : true + , opt : { xmlns: true } + } + ); diff --git a/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/xmlns-issue-41.js b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/xmlns-issue-41.js new file mode 100644 index 00000000..17ab45a0 --- /dev/null +++ b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/xmlns-issue-41.js @@ -0,0 +1,68 @@ +var t = require(__dirname) + + , xmls = // should be the same both ways. + [ "" + , "" ] + + , ex1 = + [ [ "opennamespace" + , { prefix: "a" + , uri: "http://ATTRIBUTE" + } + ] + , [ "attribute" + , { name: "xmlns:a" + , value: "http://ATTRIBUTE" + , prefix: "xmlns" + , local: "a" + , uri: "http://www.w3.org/2000/xmlns/" + } + ] + , [ "attribute" + , { name: "a:attr" + , local: "attr" + , prefix: "a" + , uri: "http://ATTRIBUTE" + , value: "value" + } + ] + , [ "opentag" + , { name: "parent" + , uri: "" + , prefix: "" + , local: "parent" + , attributes: + { "a:attr": + { name: "a:attr" + , local: "attr" + , prefix: "a" + , uri: "http://ATTRIBUTE" + , value: "value" + } + , "xmlns:a": + { name: "xmlns:a" + , local: "a" + , prefix: "xmlns" + , uri: "http://www.w3.org/2000/xmlns/" + , value: "http://ATTRIBUTE" + } + } + , ns: {"a": "http://ATTRIBUTE"} + , isSelfClosing: true + } + ] + , ["closetag", "parent"] + , ["closenamespace", { prefix: "a", uri: "http://ATTRIBUTE" }] + ] + + // swap the order of elements 2 and 1 + , ex2 = [ex1[0], ex1[2], ex1[1]].concat(ex1.slice(3)) + , expected = [ex1, ex2] + +xmls.forEach(function (x, i) { + t.test({ xml: x + , expect: expected[i] + , strict: true + , opt: { xmlns: true } + }) +}) diff --git a/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/xmlns-rebinding.js b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/xmlns-rebinding.js new file mode 100644 index 00000000..07e04255 --- /dev/null +++ b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/xmlns-rebinding.js @@ -0,0 +1,63 @@ + +require(__dirname).test + ( { xml : + ""+ + ""+ + ""+ + ""+ + ""+ + "" + + , expect : + [ [ "opennamespace", { prefix: "x", uri: "x1" } ] + , [ "opennamespace", { prefix: "y", uri: "y1" } ] + , [ "attribute", { name: "xmlns:x", value: "x1", uri: "http://www.w3.org/2000/xmlns/", prefix: "xmlns", local: "x" } ] + , [ "attribute", { name: "xmlns:y", value: "y1", uri: "http://www.w3.org/2000/xmlns/", prefix: "xmlns", local: "y" } ] + , [ "attribute", { name: "x:a", value: "x1", uri: "x1", prefix: "x", local: "a" } ] + , [ "attribute", { name: "y:a", value: "y1", uri: "y1", prefix: "y", local: "a" } ] + , [ "opentag", { name: "root", uri: "", prefix: "", local: "root", + attributes: { "xmlns:x": { name: "xmlns:x", value: "x1", uri: "http://www.w3.org/2000/xmlns/", prefix: "xmlns", local: "x" } + , "xmlns:y": { name: "xmlns:y", value: "y1", uri: "http://www.w3.org/2000/xmlns/", prefix: "xmlns", local: "y" } + , "x:a": { name: "x:a", value: "x1", uri: "x1", prefix: "x", local: "a" } + , "y:a": { name: "y:a", value: "y1", uri: "y1", prefix: "y", local: "a" } }, + ns: { x: 'x1', y: 'y1' }, + isSelfClosing: false } ] + + , [ "opennamespace", { prefix: "x", uri: "x2" } ] + , [ "attribute", { name: "xmlns:x", value: "x2", uri: "http://www.w3.org/2000/xmlns/", prefix: "xmlns", local: "x" } ] + , [ "opentag", { name: "rebind", uri: "", prefix: "", local: "rebind", + attributes: { "xmlns:x": { name: "xmlns:x", value: "x2", uri: "http://www.w3.org/2000/xmlns/", prefix: "xmlns", local: "x" } }, + ns: { x: 'x2' }, + isSelfClosing: false } ] + + , [ "attribute", { name: "x:a", value: "x2", uri: "x2", prefix: "x", local: "a" } ] + , [ "attribute", { name: "y:a", value: "y1", uri: "y1", prefix: "y", local: "a" } ] + , [ "opentag", { name: "check", uri: "", prefix: "", local: "check", + attributes: { "x:a": { name: "x:a", value: "x2", uri: "x2", prefix: "x", local: "a" } + , "y:a": { name: "y:a", value: "y1", uri: "y1", prefix: "y", local: "a" } }, + ns: { x: 'x2' }, + isSelfClosing: true } ] + + , [ "closetag", "check" ] + + , [ "closetag", "rebind" ] + , [ "closenamespace", { prefix: "x", uri: "x2" } ] + + , [ "attribute", { name: "x:a", value: "x1", uri: "x1", prefix: "x", local: "a" } ] + , [ "attribute", { name: "y:a", value: "y1", uri: "y1", prefix: "y", local: "a" } ] + , [ "opentag", { name: "check", uri: "", prefix: "", local: "check", + attributes: { "x:a": { name: "x:a", value: "x1", uri: "x1", prefix: "x", local: "a" } + , "y:a": { name: "y:a", value: "y1", uri: "y1", prefix: "y", local: "a" } }, + ns: { x: 'x1', y: 'y1' }, + isSelfClosing: true } ] + , [ "closetag", "check" ] + + , [ "closetag", "root" ] + , [ "closenamespace", { prefix: "x", uri: "x1" } ] + , [ "closenamespace", { prefix: "y", uri: "y1" } ] + ] + , strict : true + , opt : { xmlns: true } + } + ) + diff --git a/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/xmlns-strict.js b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/xmlns-strict.js new file mode 100644 index 00000000..b5e3e518 --- /dev/null +++ b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/xmlns-strict.js @@ -0,0 +1,74 @@ + +require(__dirname).test + ( { xml : + ""+ + ""+ + ""+ + ""+ + ""+ + ""+ + ""+ + ""+ + ""+ + "" + + , expect : + [ [ "opentag", { name: "root", prefix: "", local: "root", uri: "", + attributes: {}, ns: {}, isSelfClosing: false } ] + + , [ "attribute", { name: "attr", value: "normal", prefix: "", local: "attr", uri: "" } ] + , [ "opentag", { name: "plain", prefix: "", local: "plain", uri: "", + attributes: { "attr": { name: "attr", value: "normal", uri: "", prefix: "", local: "attr", uri: "" } }, + ns: {}, isSelfClosing: true } ] + , [ "closetag", "plain" ] + + , [ "opennamespace", { prefix: "", uri: "uri:default" } ] + + , [ "attribute", { name: "xmlns", value: "uri:default", prefix: "xmlns", local: "", uri: "http://www.w3.org/2000/xmlns/" } ] + , [ "opentag", { name: "ns1", prefix: "", local: "ns1", uri: "uri:default", + attributes: { "xmlns": { name: "xmlns", value: "uri:default", prefix: "xmlns", local: "", uri: "http://www.w3.org/2000/xmlns/" } }, + ns: { "": "uri:default" }, isSelfClosing: false } ] + + , [ "attribute", { name: "attr", value: "normal", prefix: "", local: "attr", uri: "" } ] + , [ "opentag", { name: "plain", prefix: "", local: "plain", uri: "uri:default", ns: { '': 'uri:default' }, + attributes: { "attr": { name: "attr", value: "normal", prefix: "", local: "attr", uri: "" } }, + isSelfClosing: true } ] + , [ "closetag", "plain" ] + + , [ "closetag", "ns1" ] + + , [ "closenamespace", { prefix: "", uri: "uri:default" } ] + + , [ "opennamespace", { prefix: "a", uri: "uri:nsa" } ] + + , [ "attribute", { name: "xmlns:a", value: "uri:nsa", prefix: "xmlns", local: "a", uri: "http://www.w3.org/2000/xmlns/" } ] + + , [ "opentag", { name: "ns2", prefix: "", local: "ns2", uri: "", + attributes: { "xmlns:a": { name: "xmlns:a", value: "uri:nsa", prefix: "xmlns", local: "a", uri: "http://www.w3.org/2000/xmlns/" } }, + ns: { a: "uri:nsa" }, isSelfClosing: false } ] + + , [ "attribute", { name: "attr", value: "normal", prefix: "", local: "attr", uri: "" } ] + , [ "opentag", { name: "plain", prefix: "", local: "plain", uri: "", + attributes: { "attr": { name: "attr", value: "normal", prefix: "", local: "attr", uri: "" } }, + ns: { a: 'uri:nsa' }, + isSelfClosing: true } ] + , [ "closetag", "plain" ] + + , [ "attribute", { name: "a:attr", value: "namespaced", prefix: "a", local: "attr", uri: "uri:nsa" } ] + , [ "opentag", { name: "a:ns", prefix: "a", local: "ns", uri: "uri:nsa", + attributes: { "a:attr": { name: "a:attr", value: "namespaced", prefix: "a", local: "attr", uri: "uri:nsa" } }, + ns: { a: 'uri:nsa' }, + isSelfClosing: true } ] + , [ "closetag", "a:ns" ] + + , [ "closetag", "ns2" ] + + , [ "closenamespace", { prefix: "a", uri: "uri:nsa" } ] + + , [ "closetag", "root" ] + ] + , strict : true + , opt : { xmlns: true } + } + ) + diff --git a/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/xmlns-unbound-element.js b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/xmlns-unbound-element.js new file mode 100644 index 00000000..9d031a2b --- /dev/null +++ b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/xmlns-unbound-element.js @@ -0,0 +1,33 @@ +require(__dirname).test( + { strict : true + , opt : { xmlns: true } + , expect : + [ [ "error", "Unbound namespace prefix: \"unbound:root\"\nLine: 0\nColumn: 15\nChar: >"] + , [ "opentag", { name: "unbound:root", uri: "unbound", prefix: "unbound", local: "root" + , attributes: {}, ns: {}, isSelfClosing: true } ] + , [ "closetag", "unbound:root" ] + ] + } +).write(""); + +require(__dirname).test( + { strict : true + , opt : { xmlns: true } + , expect : + [ [ "opennamespace", { prefix: "unbound", uri: "someuri" } ] + , [ "attribute", { name: 'xmlns:unbound', value: 'someuri' + , prefix: 'xmlns', local: 'unbound' + , uri: 'http://www.w3.org/2000/xmlns/' } ] + , [ "opentag", { name: "unbound:root", uri: "someuri", prefix: "unbound", local: "root" + , attributes: { 'xmlns:unbound': { + name: 'xmlns:unbound' + , value: 'someuri' + , prefix: 'xmlns' + , local: 'unbound' + , uri: 'http://www.w3.org/2000/xmlns/' } } + , ns: { "unbound": "someuri" }, isSelfClosing: true } ] + , [ "closetag", "unbound:root" ] + , [ "closenamespace", { prefix: 'unbound', uri: 'someuri' }] + ] + } +).write(""); diff --git a/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/xmlns-unbound.js b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/xmlns-unbound.js new file mode 100644 index 00000000..b740e261 --- /dev/null +++ b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/xmlns-unbound.js @@ -0,0 +1,15 @@ + +require(__dirname).test( + { strict : true + , opt : { xmlns: true } + , expect : + [ ["error", "Unbound namespace prefix: \"unbound\"\nLine: 0\nColumn: 28\nChar: >"] + + , [ "attribute", { name: "unbound:attr", value: "value", uri: "unbound", prefix: "unbound", local: "attr" } ] + , [ "opentag", { name: "root", uri: "", prefix: "", local: "root", + attributes: { "unbound:attr": { name: "unbound:attr", value: "value", uri: "unbound", prefix: "unbound", local: "attr" } }, + ns: {}, isSelfClosing: true } ] + , [ "closetag", "root" ] + ] + } +).write("") diff --git a/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/xmlns-xml-default-ns.js b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/xmlns-xml-default-ns.js new file mode 100644 index 00000000..b1984d25 --- /dev/null +++ b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/xmlns-xml-default-ns.js @@ -0,0 +1,31 @@ +var xmlns_attr = +{ + name: "xmlns", value: "http://foo", prefix: "xmlns", + local: "", uri : "http://www.w3.org/2000/xmlns/" +}; + +var attr_attr = +{ + name: "attr", value: "bar", prefix: "", + local : "attr", uri : "" +}; + + +require(__dirname).test + ( { xml : + "" + , expect : + [ [ "opennamespace", { prefix: "", uri: "http://foo" } ] + , [ "attribute", xmlns_attr ] + , [ "attribute", attr_attr ] + , [ "opentag", { name: "elm", prefix: "", local: "elm", uri : "http://foo", + ns : { "" : "http://foo" }, + attributes: { xmlns: xmlns_attr, attr: attr_attr }, + isSelfClosing: true } ] + , [ "closetag", "elm" ] + , [ "closenamespace", { prefix: "", uri: "http://foo"} ] + ] + , strict : true + , opt : {xmlns: true} + } + ) diff --git a/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/xmlns-xml-default-prefix-attribute.js b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/xmlns-xml-default-prefix-attribute.js new file mode 100644 index 00000000..e41f2187 --- /dev/null +++ b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/xmlns-xml-default-prefix-attribute.js @@ -0,0 +1,36 @@ +require(__dirname).test( + { xml : "" + , expect : + [ [ "attribute" + , { name: "xml:lang" + , local: "lang" + , prefix: "xml" + , uri: "http://www.w3.org/XML/1998/namespace" + , value: "en" + } + ] + , [ "opentag" + , { name: "root" + , uri: "" + , prefix: "" + , local: "root" + , attributes: + { "xml:lang": + { name: "xml:lang" + , local: "lang" + , prefix: "xml" + , uri: "http://www.w3.org/XML/1998/namespace" + , value: "en" + } + } + , ns: {} + , isSelfClosing: true + } + ] + , ["closetag", "root"] + ] + , strict : true + , opt : { xmlns: true } + } +) + diff --git a/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/xmlns-xml-default-prefix.js b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/xmlns-xml-default-prefix.js new file mode 100644 index 00000000..a85b4787 --- /dev/null +++ b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/xmlns-xml-default-prefix.js @@ -0,0 +1,21 @@ +require(__dirname).test( + { xml : "" + , expect : + [ + [ "opentag" + , { name: "xml:root" + , uri: "http://www.w3.org/XML/1998/namespace" + , prefix: "xml" + , local: "root" + , attributes: {} + , ns: {} + , isSelfClosing: true + } + ] + , ["closetag", "xml:root"] + ] + , strict : true + , opt : { xmlns: true } + } +) + diff --git a/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/xmlns-xml-default-redefine.js b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/xmlns-xml-default-redefine.js new file mode 100644 index 00000000..d35d5a0c --- /dev/null +++ b/node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/xmlns-xml-default-redefine.js @@ -0,0 +1,41 @@ +require(__dirname).test( + { xml : "" + , expect : + [ ["error" + , "xml: prefix must be bound to http://www.w3.org/XML/1998/namespace\n" + + "Actual: ERROR\n" + + "Line: 0\nColumn: 27\nChar: '" + ] + , [ "attribute" + , { name: "xmlns:xml" + , local: "xml" + , prefix: "xmlns" + , uri: "http://www.w3.org/2000/xmlns/" + , value: "ERROR" + } + ] + , [ "opentag" + , { name: "xml:root" + , uri: "http://www.w3.org/XML/1998/namespace" + , prefix: "xml" + , local: "root" + , attributes: + { "xmlns:xml": + { name: "xmlns:xml" + , local: "xml" + , prefix: "xmlns" + , uri: "http://www.w3.org/2000/xmlns/" + , value: "ERROR" + } + } + , ns: {} + , isSelfClosing: true + } + ] + , ["closetag", "xml:root"] + ] + , strict : true + , opt : { xmlns: true } + } +) + diff --git a/node_modules/aws-sdk/node_modules/xml2js/package.json b/node_modules/aws-sdk/node_modules/xml2js/package.json new file mode 100644 index 00000000..7ac7d5a1 --- /dev/null +++ b/node_modules/aws-sdk/node_modules/xml2js/package.json @@ -0,0 +1,105 @@ +{ + "name": "xml2js", + "description": "Simple XML to JavaScript object converter.", + "keywords": [ + "xml", + "json" + ], + "homepage": "https://github.com/Leonidas-from-XIV/node-xml2js", + "version": "0.2.4", + "author": { + "name": "Marek Kubica", + "email": "marek@xivilization.net", + "url": "http://xivilization.net" + }, + "contributors": [ + { + "name": "maqr", + "email": "maqr.lollerskates@gmail.com", + "url": "https://github.com/maqr" + }, + { + "name": "Ben Weaver", + "url": "http://benweaver.com/" + }, + { + "name": "Jae Kwon", + "url": "https://github.com/jaekwon" + }, + { + "name": "Jim Robert" + }, + { + "name": "Ștefan Rusu", + "url": "http://www.saltwaterc.eu/" + }, + { + "name": "Carter Cole", + "email": "carter.cole@cartercole.com", + "url": "http://cartercole.com/" + }, + { + "name": "Kurt Raschke", + "email": "kurt@kurtraschke.com", + "url": "http://www.kurtraschke.com/" + }, + { + "name": "Contra", + "email": "contra@australia.edu", + "url": "https://github.com/Contra" + }, + { + "name": "Marcelo Diniz", + "email": "marudiniz@gmail.com", + "url": "https://github.com/mdiniz" + }, + { + "name": "Michael Hart", + "url": "https://github.com/mhart" + }, + { + "name": "Zachary Scott", + "email": "zachary@zacharyscott.net", + "url": "http://zacharyscott.net/" + }, + { + "name": "Raoul Millais", + "url": "https://github.com/raoulmillais" + }, + { + "name": "Salsita Software", + "url": "http://www.salsitasoft.com/" + }, + { + "name": "Mike Schilling", + "email": "mike@emotive.com", + "url": "http://www.emotive.com/" + } + ], + "main": "./lib/xml2js", + "directories": { + "lib": "./lib" + }, + "scripts": { + "test": "zap" + }, + "repository": { + "type": "git", + "url": "https://github.com/Leonidas-from-XIV/node-xml2js.git" + }, + "dependencies": { + "sax": ">=0.4.2" + }, + "devDependencies": { + "coffee-script": ">=1.0.1", + "zap": ">=0.2.5", + "docco": ">=0.3.0" + }, + "readme": "node-xml2js\n===========\n\nEver had the urge to parse XML? And wanted to access the data in some sane,\neasy way? Don't want to compile a C parser, for whatever reason? Then xml2js is\nwhat you're looking for!\n\nDescription\n===========\n\nSimple XML to JavaScript object converter. Uses\n[sax-js](https://github.com/isaacs/sax-js/).\n\nNote: If you're looking for a full DOM parser, you probably want\n[JSDom](https://github.com/tmpvar/jsdom).\n\nInstallation\n============\n\nSimplest way to install `xml2js` is to use [npm](http://npmjs.org), just `npm\ninstall xml2js` which will download xml2js and all dependencies.\n\nUsage\n=====\n\nNo extensive tutorials required because you are a smart developer! The task of\nparsing XML should be an easy one, so let's make it so! Here's some examples.\n\nShoot-and-forget usage\n----------------------\n\nYou want to parse XML as simple and easy as possible? It's dangerous to go\nalone, take this:\n\n```javascript\nvar parseString = require('xml2js').parseString;\nvar xml = \"Hello xml2js!\"\nparseString(xml, function (err, result) {\n console.dir(result);\n});\n```\n\nCan't get easier than this, right? This works starting with `xml2js` 0.2.3.\nWith CoffeeScript it looks like this:\n\n```coffeescript\nparseString = require('xml2js').parseString\nxml = \"Hello xml2js!\"\nparseString xml, (err, result) ->\n console.dir result\n```\n\nIf you need some special options, fear not, `xml2js` supports a number of\noptions (see below), you can specify these as second argument:\n\n```javascript\nparseString(xml, {trim: true}, function (err, result) {\n});\n```\n\nSimple as pie usage\n-------------------\n\nThat's right, if you have been using xml-simple or a home-grown\nwrapper, this is was added in 0.1.11 just for you:\n\n```javascript\nvar fs = require('fs'),\n xml2js = require('xml2js');\n\nvar parser = new xml2js.Parser();\nfs.readFile(__dirname + '/foo.xml', function(err, data) {\n parser.parseString(data, function (err, result) {\n console.dir(result);\n console.log('Done');\n });\n});\n```\n\nLook ma, no event listeners!\n\nYou can also use `xml2js` from\n[CoffeeScript](http://jashkenas.github.com/coffee-script/), further reducing\nthe clutter:\n\n```coffeescript\nfs = require 'fs',\nxml2js = require 'xml2js'\n\nparser = new xml2js.Parser()\nfs.readFile __dirname + '/foo.xml', (err, data) ->\n parser.parseString data, (err, result) ->\n console.dir result\n console.log 'Done.'\n```\n\n\"Traditional\" usage\n-------------------\n\nAlternatively you can still use the traditional `addListener` variant that was\nsupported since forever:\n\n```javascript\nvar fs = require('fs'),\n xml2js = require('xml2js');\n\nvar parser = new xml2js.Parser();\nparser.addListener('end', function(result) {\n console.dir(result);\n console.log('Done.');\n});\nfs.readFile(__dirname + '/foo.xml', function(err, data) {\n parser.parseString(data);\n});\n```\n\nIf you want to parse multiple files, you have multiple possibilites:\n\n * You can create one `xml2js.Parser` per file. That's the recommended one\n and is promised to always *just work*.\n * You can call `reset()` on your parser object.\n * You can hope everything goes well anyway. This behaviour is not\n guaranteed work always, if ever. Use option #1 if possible. Thanks!\n\nSo you wanna some JSON?\n-----------------------\n\nJust wrap the `result` object in a call to `JSON.stringify` like this\n`JSON.stringify(result)`. You get a string containing the JSON representation\nof the parsed object that you can feed to JSON-hungry consumers.\n\nDisplaying results\n------------------\n\nYou might wonder why, using `console.dir` or `console.log` the output at some\nlevel is only `[Object]`. Don't worry, this is not because xml2js got lazy.\nThat's because Node uses `util.inspect` to convert the object into strings and\nthat function stops after `depth=2` which is a bit low for most XML.\n\nTo display the whole deal, you can use `console.log(util.inspect(result, false,\nnull))`, which displays the whole result.\n\nSo much for that, but what if you use\n[eyes](https://github.com/cloudhead/eyes.js) for nice colored output and it\ntruncates the output with `…`? Don't fear, there's also a solution for that,\nyou just need to increase the `maxLength` limit by creating a custom inspector\n`var inspect = require('eyes').inspector({maxLength: false})` and then you can\neasily `inspect(result)`.\n\nOptions\n=======\n\nApart from the default settings, there is a number of options that can be\nspecified for the parser. Options are specified by ``new Parser({optionName:\nvalue})``. Possible options are:\n\n * `attrkey` (default: `$`): Prefix that is used to access the attributes.\n Version 0.1 default was `@`.\n * `charkey` (default: `_`): Prefix that is used to access the character\n content. Version 0.1 default was `#`.\n * `explicitCharkey` (default: `false`)\n * `trim` (default: `false`): Trim the whitespace at the beginning and end of\n text nodes.\n * `normalizeTags` (default: `false`): Normalize all tag names to lowercase.\n * `normalize` (default: `false`): Trim whitespaces inside text nodes.\n * `explicitRoot` (default: `true`): Set this if you want to get the root\n node in the resulting object.\n * `emptyTag` (default: `undefined`): what will the value of empty nodes be.\n Default is `{}`.\n * `explicitArray` (default: `true`): Always put child nodes in an array if\n true; otherwise an array is created only if there is more than one.\n * `ignoreAttrs` (default: `false`): Ignore all XML attributes and only create\n text nodes.\n * `mergeAttrs` (default: `false`): Merge attributes and child elements as\n properties of the parent, instead of keying attributes off a child\n attribute object. This option is ignored if `ignoreAttrs` is `false`.\n * `validator` (default `null`): You can specify a callable that validates\n the resulting structure somehow, however you want. See unit tests\n for an example.\n * `xmlns` (default `false`): Give each element a field usually called '$ns'\n (the first character is the same as attrkey) that contains its local name\n and namespace URI.\n\nUpdating to new version\n=======================\n\nVersion 0.2 changed the default parsing settings, but version 0.1.14 introduced\nthe default settings for version 0.2, so these settings can be tried before the\nmigration.\n\n```javascript\nvar xml2js = require('xml2js');\nvar parser = new xml2js.Parser(xml2js.defaults[\"0.2\"]);\n```\n\nTo get the 0.1 defaults in version 0.2 you can just use\n`xml2js.defaults[\"0.1\"]` in the same place. This provides you with enough time\nto migrate to the saner way of parsing in xml2js 0.2. We try to make the\nmigration as simple and gentle as possible, but some breakage cannot be\navoided.\n\nSo, what exactly did change and why? In 0.2 we changed some defaults to parse\nthe XML in a more universal and sane way. So we disabled `normalize` and `trim`\nso xml2js does not cut out any text content. You can reenable this at will of\ncourse. A more important change is that we return the root tag in the resulting\nJavaScript structure via the `explicitRoot` setting, so you need to access the\nfirst element. This is useful for anybody who wants to know what the root node\nis and preserves more information. The last major change was to enable\n`explicitArray`, so everytime it is possible that one might embed more than one\nsub-tag into a tag, xml2js >= 0.2 returns an array even if the array just\nincludes one element. This is useful when dealing with APIs that return\nvariable amounts of subtags.\n\nRunning tests, development\n==========================\n\n[![Build Status](https://secure.travis-ci.org/Leonidas-from-XIV/node-xml2js.png?branch=master)](https://travis-ci.org/Leonidas-from-XIV/node-xml2js)\n\nThe development requirements are handled by npm, you just need to install them.\nWe also have a number of unit tests, they can be run using `npm test` directly\nfrom the project root. This runs zap to discover all the tests and execute\nthem.\n\nIf you like to contribute, keep in mind that xml2js is written in CoffeeScript,\nso don't develop on the JavaScript files that are checked into the repository\nfor convenience reasons. Also, please write some unit test to check your\nbehaviour and if it is some user-facing thing, add some documentation to this\nREADME, so people will know it exists. Thanks in advance!\n", + "readmeFilename": "README.md", + "bugs": { + "url": "https://github.com/Leonidas-from-XIV/node-xml2js/issues" + }, + "_id": "xml2js@0.2.4", + "_from": "xml2js@0.2.4" +} diff --git a/node_modules/aws-sdk/node_modules/xml2js/src/xml2js.coffee b/node_modules/aws-sdk/node_modules/xml2js/src/xml2js.coffee new file mode 100644 index 00000000..95899e27 --- /dev/null +++ b/node_modules/aws-sdk/node_modules/xml2js/src/xml2js.coffee @@ -0,0 +1,198 @@ +sax = require 'sax' +events = require 'events' + +# Underscore has a nice function for this, but we try to go without dependencies +isEmpty = (thing) -> + return typeof thing is "object" && thing? && Object.keys(thing).length is 0 + +exports.defaults = + "0.1": + explicitCharkey: false + trim: true + # normalize implicates trimming, just so you know + normalize: true + # normalize tag names to lower case + normalizeTags: false + # set default attribute object key + attrkey: "@" + # set default char object key + charkey: "#" + # always put child nodes in an array + explicitArray: false + # ignore all attributes regardless + ignoreAttrs: false + # merge attributes and child elements onto parent object. this may + # cause collisions. + mergeAttrs: false + explicitRoot: false + validator: null, + xmlns : false + "0.2": + explicitCharkey: false + trim: false + normalize: false + normalizeTags: false + attrkey: "$" + charkey: "_" + explicitArray: true + ignoreAttrs: false + mergeAttrs: false + explicitRoot: true + validator: null, + xmlns : false + +class exports.ValidationError extends Error + constructor: (message) -> + @message = message + +class exports.Parser extends events.EventEmitter + constructor: (opts) -> + # copy this versions default options + @options = {} + @options[key] = value for own key, value of exports.defaults["0.2"] + # overwrite them with the specified options, if any + @options[key] = value for own key, value of opts + # define the key used for namespaces + if @options.xmlns + @options.xmlnskey = @options.attrkey + "ns" + + @reset() + + reset: => + # remove all previous listeners for events, to prevent event listener + # accumulation + @removeAllListeners() + # make the SAX parser. tried trim and normalize, but they are not + # very helpful + @saxParser = sax.parser true, { + trim: false, + normalize: false, + xmlns: @options.xmlns + } + + # emit one error event if the sax parser fails. this is mostly a hack, but + # the sax parser isn't state of the art either. + err = false + @saxParser.onerror = (error) => + if ! err + err = true + @emit "error", error + + # always use the '#' key, even if there are no subkeys + # setting this property by and is deprecated, yet still supported. + # better pass it as explicitCharkey option to the constructor + @EXPLICIT_CHARKEY = @options.explicitCharkey + @resultObject = null + stack = [] + # aliases, so we don't have to type so much + attrkey = @options.attrkey + charkey = @options.charkey + + @saxParser.onopentag = (node) => + obj = {} + obj[charkey] = "" + unless @options.ignoreAttrs + for own key of node.attributes + if attrkey not of obj and not @options.mergeAttrs + obj[attrkey] = {} + if @options.mergeAttrs + obj[key] = node.attributes[key] + else + obj[attrkey][key] = node.attributes[key] + + # need a place to store the node name + obj["#name"] = if @options.normalizeTags then node.name.toLowerCase() else node.name + if (@options.xmlns) + obj[@options.xmlnskey] = {uri: node.uri, local: node.local} + stack.push obj + + @saxParser.onclosetag = => + obj = stack.pop() + nodeName = obj["#name"] + delete obj["#name"] + + s = stack[stack.length - 1] + # remove the '#' key altogether if it's blank + if obj[charkey].match(/^\s*$/) + delete obj[charkey] + else + obj[charkey] = obj[charkey].trim() if @options.trim + obj[charkey] = obj[charkey].replace(/\s{2,}/g, " ").trim() if @options.normalize + # also do away with '#' key altogether, if there's no subkeys + # unless EXPLICIT_CHARKEY is set + if Object.keys(obj).length == 1 and charkey of obj and not @EXPLICIT_CHARKEY + obj = obj[charkey] + + if @options.emptyTag != undefined && isEmpty obj + obj = @options.emptyTag + + if @options.validator? + xpath = "/" + (node["#name"] for node in stack).concat(nodeName).join("/") + obj = @options.validator(xpath, s and s[nodeName], obj) + + # check whether we closed all the open tags + if stack.length > 0 + if not @options.explicitArray + if nodeName not of s + s[nodeName] = obj + else if s[nodeName] instanceof Array + s[nodeName].push obj + else + old = s[nodeName] + s[nodeName] = [old] + s[nodeName].push obj + else + if not (s[nodeName] instanceof Array) + s[nodeName] = [] + s[nodeName].push obj + else + # if explicitRoot was specified, wrap stuff in the root tag name + if @options.explicitRoot + # avoid circular references + old = obj + obj = {} + obj[nodeName] = old + + @resultObject = obj + @emit "end", @resultObject + + @saxParser.ontext = @saxParser.oncdata = (text) => + s = stack[stack.length - 1] + if s + s[charkey] += text + + parseString: (str, cb) => + if cb? and typeof cb is "function" + @on "end", (result) -> + @reset() + cb null, result + @on "error", (err) -> + @reset() + cb err + + if str.toString().trim() is '' + @emit "end", null + return true + + try + @saxParser.write str.toString() + catch ex + @emit("error", ex.message) + +exports.parseString = (str, a, b) -> + # let's determine what we got as arguments + if b? + if typeof b == 'function' + cb = b + if typeof a == 'object' + options = a + else + # well, b is not set, so a has to be a callback + if typeof a == 'function' + cb = a + # and options should be empty - default + options = {} + + # the rest is super-easy + parser = new exports.Parser options + parser.parseString str, cb diff --git a/node_modules/aws-sdk/node_modules/xml2js/test/fixtures/sample.xml b/node_modules/aws-sdk/node_modules/xml2js/test/fixtures/sample.xml new file mode 100644 index 00000000..d47718f0 --- /dev/null +++ b/node_modules/aws-sdk/node_modules/xml2js/test/fixtures/sample.xml @@ -0,0 +1,50 @@ + + Character data here! + + + + Line One + Line Two + + + + This Foo(1) is + Foo(2) + character + Foo(3) + data! + Foo(4) + + Qux. + Quux. + + + Baz. + Foo.Bar. + + + + something + something else + something third + + + 1 + 2 + 3 + 4 + 5 + 6 + + + + + Bar. + + 42 + 43 + + + + + diff --git a/node_modules/aws-sdk/node_modules/xml2js/test/xml2js.test.coffee b/node_modules/aws-sdk/node_modules/xml2js/test/xml2js.test.coffee new file mode 100644 index 00000000..e6ca7799 --- /dev/null +++ b/node_modules/aws-sdk/node_modules/xml2js/test/xml2js.test.coffee @@ -0,0 +1,233 @@ +# use zap to run tests, it also detects CoffeeScript files +xml2js = require '../lib/xml2js' +fs = require 'fs' +util = require 'util' +assert = require 'assert' +path = require 'path' + +fileName = path.join __dirname, '/fixtures/sample.xml' + +skeleton = (options, checks) -> + (test) -> + xmlString = options?.__xmlString + delete options?.__xmlString + x2js = new xml2js.Parser options + x2js.addListener 'end', (r) -> + checks r + test.finish() + if not xmlString + fs.readFile fileName, (err, data) -> + x2js.parseString data + else + x2js.parseString xmlString +### +The `validator` function validates the value at the XPath. It also transforms the value +if necessary to conform to the schema or other validation information being used. If there +is an existing value at this path it is supplied in `currentValue` (e.g. this is the second or +later item in an array). +If the validation fails it should throw a `ValidationError`. +### +validator = (xpath, currentValue, newValue) -> + if xpath == '/sample/validatortest/numbertest' + return Number(newValue) + else if xpath in ['/sample/arraytest', '/sample/validatortest/emptyarray', '/sample/validatortest/oneitemarray'] + if not ('item' of newValue) + return {'item': []} + else if xpath in ['/sample/arraytest/item', '/sample/validatortest/emptyarray/item', '/sample/validatortest/oneitemarray/item'] + if not currentValue + return newValue + else if xpath == '/validationerror' + throw new xml2js.ValidationError("Validation error!") + return newValue + +# shortcut, because it is quite verbose +equ = assert.equal + +module.exports = + 'test parse with defaults': skeleton(undefined, (r) -> + console.log 'Result object: ' + util.inspect r, false, 10 + equ r.sample.chartest[0].$.desc, 'Test for CHARs' + equ r.sample.chartest[0]._, 'Character data here!' + equ r.sample.cdatatest[0].$.desc, 'Test for CDATA' + equ r.sample.cdatatest[0].$.misc, 'true' + equ r.sample.cdatatest[0]._, 'CDATA here!' + equ r.sample.nochartest[0].$.desc, 'No data' + equ r.sample.nochartest[0].$.misc, 'false' + equ r.sample.listtest[0].item[0]._, '\n This is\n \n character\n \n data!\n \n ' + equ r.sample.listtest[0].item[0].subitem[0], 'Foo(1)' + equ r.sample.listtest[0].item[0].subitem[1], 'Foo(2)' + equ r.sample.listtest[0].item[0].subitem[2], 'Foo(3)' + equ r.sample.listtest[0].item[0].subitem[3], 'Foo(4)' + equ r.sample.listtest[0].item[1], 'Qux.' + equ r.sample.listtest[0].item[2], 'Quux.' + # determine number of items in object + equ Object.keys(r.sample.tagcasetest[0]).length, 3) + + 'test parse with explicitCharkey': skeleton(explicitCharkey: true, (r) -> + console.log 'Result object: ' + util.inspect r, false, 10 + equ r.sample.chartest[0].$.desc, 'Test for CHARs' + equ r.sample.chartest[0]._, 'Character data here!' + equ r.sample.cdatatest[0].$.desc, 'Test for CDATA' + equ r.sample.cdatatest[0].$.misc, 'true' + equ r.sample.cdatatest[0]._, 'CDATA here!' + equ r.sample.nochartest[0].$.desc, 'No data' + equ r.sample.nochartest[0].$.misc, 'false' + equ r.sample.listtest[0].item[0]._, '\n This is\n \n character\n \n data!\n \n ' + equ r.sample.listtest[0].item[0].subitem[0]._, 'Foo(1)' + equ r.sample.listtest[0].item[0].subitem[1]._, 'Foo(2)' + equ r.sample.listtest[0].item[0].subitem[2]._, 'Foo(3)' + equ r.sample.listtest[0].item[0].subitem[3]._, 'Foo(4)' + equ r.sample.listtest[0].item[1]._, 'Qux.' + equ r.sample.listtest[0].item[2]._, 'Quux.') + + 'test parse with mergeAttrs': skeleton(mergeAttrs: true, (r) -> + console.log 'Result object: ' + util.inspect r, false, 10 + equ r.sample.chartest[0].desc, 'Test for CHARs' + equ r.sample.chartest[0]._, 'Character data here!' + equ r.sample.cdatatest[0].desc, 'Test for CDATA' + equ r.sample.cdatatest[0].misc, 'true' + equ r.sample.cdatatest[0]._, 'CDATA here!' + equ r.sample.nochartest[0].desc, 'No data' + equ r.sample.nochartest[0].misc, 'false' + equ r.sample.listtest[0].item[0].subitem[0], 'Foo(1)' + equ r.sample.listtest[0].item[0].subitem[1], 'Foo(2)' + equ r.sample.listtest[0].item[0].subitem[2], 'Foo(3)' + equ r.sample.listtest[0].item[0].subitem[3], 'Foo(4)' + equ r.sample.listtest[0].item[1], 'Qux.' + equ r.sample.listtest[0].item[2], 'Quux.') + + 'test text trimming, normalize': skeleton(trim: true, normalize: true, (r) -> + equ r.sample.whitespacetest[0]._, 'Line One Line Two') + + 'test text trimming, no normalizing': skeleton(trim: true, normalize: false, (r) -> + equ r.sample.whitespacetest[0]._, 'Line One\n Line Two') + + 'test text no trimming, normalize': skeleton(trim: false, normalize: true, (r) -> + equ r.sample.whitespacetest[0]._, 'Line One Line Two') + + 'test text no trimming, no normalize': skeleton(trim: false, normalize: false, (r) -> + equ r.sample.whitespacetest[0]._, '\n Line One\n Line Two\n ') + + 'test enabled root node elimination': skeleton(__xmlString: '', explicitRoot: false, (r) -> + console.log 'Result object: ' + util.inspect r, false, 10 + assert.deepEqual r, {}) + + 'test disabled root node elimination': skeleton(__xmlString: '', explicitRoot: true, (r) -> + assert.deepEqual r, {root: {}}) + + 'test default empty tag result': skeleton(undefined, (r) -> + assert.deepEqual r.sample.emptytest, [{}]) + + 'test empty tag result specified null': skeleton(emptyTag: null, (r) -> + equ r.sample.emptytest[0], null) + + 'test invalid empty XML file': skeleton(__xmlString: ' ', (r) -> + equ r, null) + + 'test enabled normalizeTags': skeleton(normalizeTags: true, (r) -> + console.log 'Result object: ' + util.inspect r, false, 10 + equ Object.keys(r.sample.tagcasetest).length, 1) + + 'test parse with custom char and attribute object keys': skeleton(attrkey: 'attrobj', charkey: 'charobj', (r) -> + console.log 'Result object: ' + util.inspect r, false, 10 + equ r.sample.chartest[0].attrobj.desc, 'Test for CHARs' + equ r.sample.chartest[0].charobj, 'Character data here!' + equ r.sample.cdatatest[0].attrobj.desc, 'Test for CDATA' + equ r.sample.cdatatest[0].attrobj.misc, 'true' + equ r.sample.cdatatest[0].charobj, 'CDATA here!' + equ r.sample.nochartest[0].attrobj.desc, 'No data' + equ r.sample.nochartest[0].attrobj.misc, 'false') + + 'test child node without explicitArray': skeleton(explicitArray: false, (r) -> + console.log 'Result object: ' + util.inspect r, false, 10 + equ r.sample.arraytest.item[0].subitem, 'Baz.' + equ r.sample.arraytest.item[1].subitem[0], 'Foo.' + equ r.sample.arraytest.item[1].subitem[1], 'Bar.') + + 'test child node with explicitArray': skeleton(explicitArray: true, (r) -> + console.log 'Result object: ' + util.inspect r, false, 10 + equ r.sample.arraytest[0].item[0].subitem[0], 'Baz.' + equ r.sample.arraytest[0].item[1].subitem[0], 'Foo.' + equ r.sample.arraytest[0].item[1].subitem[1], 'Bar.') + + 'test ignore attributes': skeleton(ignoreAttrs: true, (r) -> + console.log 'Result object: ' + util.inspect r, false, 10 + equ r.sample.chartest, 'Character data here!' + equ r.sample.cdatatest, 'CDATA here!' + assert.deepEqual r.sample.nochartest[0], {} + equ r.sample.listtest[0].item[0]._, '\n This is\n \n character\n \n data!\n \n ' + equ r.sample.listtest[0].item[0].subitem[0], 'Foo(1)' + equ r.sample.listtest[0].item[0].subitem[1], 'Foo(2)' + equ r.sample.listtest[0].item[0].subitem[2], 'Foo(3)' + equ r.sample.listtest[0].item[0].subitem[3], 'Foo(4)' + equ r.sample.listtest[0].item[1], 'Qux.' + equ r.sample.listtest[0].item[2], 'Quux.') + + 'test simple callback mode': (test) -> + x2js = new xml2js.Parser() + fs.readFile fileName, (err, data) -> + equ err, null + x2js.parseString data, (err, r) -> + equ err, null + # just a single test to check whether we parsed anything + equ r.sample.chartest[0]._, 'Character data here!' + test.finish() + + 'test double parse': (test) -> + x2js = new xml2js.Parser() + fs.readFile fileName, (err, data) -> + equ err, null + x2js.parseString data, (err, r) -> + equ err, null + # make sure we parsed anything + equ r.sample.chartest[0]._, 'Character data here!' + x2js.parseString data, (err, r) -> + equ err, null + equ r.sample.chartest[0]._, 'Character data here!' + test.finish() + + 'test simple function without options': (test) -> + fs.readFile fileName, (err, data) -> + xml2js.parseString data, (err, r) -> + equ err, null + equ r.sample.chartest[0]._, 'Character data here!' + test.finish() + + 'test simple function with options': (test) -> + fs.readFile fileName, (err, data) -> + # well, {} still counts as option, right? + xml2js.parseString data, {}, (err, r) -> + equ err, null + equ r.sample.chartest[0]._, 'Character data here!' + test.finish() + + 'test validator': skeleton(validator: validator, (r) -> + console.log 'Result object: ' + util.inspect r, false, 10 + equ typeof r.sample.validatortest[0].stringtest[0], 'string' + equ typeof r.sample.validatortest[0].numbertest[0], 'number' + assert.ok r.sample.validatortest[0].emptyarray[0].item instanceof Array + equ r.sample.validatortest[0].emptyarray[0].item.length, 0 + assert.ok r.sample.validatortest[0].oneitemarray[0].item instanceof Array + equ r.sample.validatortest[0].oneitemarray[0].item.length, 1 + equ r.sample.validatortest[0].oneitemarray[0].item[0], 'Bar.' + assert.ok r.sample.arraytest[0].item instanceof Array + equ r.sample.arraytest[0].item.length, 2 + equ r.sample.arraytest[0].item[0].subitem[0], 'Baz.' + equ r.sample.arraytest[0].item[1].subitem[0], 'Foo.' + equ r.sample.arraytest[0].item[1].subitem[1], 'Bar.') + + 'test validation error': (test) -> + x2js = new xml2js.Parser({validator: validator}) + x2js.parseString '', (err, r) -> + equ err, 'Validation error!' + test.finish() + + 'test xmlns': skeleton(xmlns: true, (r) -> + console.log 'Result object: ' + util.inspect r, false, 10 + equ r.sample["pfx:top"][0].$ns.local, 'top' + equ r.sample["pfx:top"][0].$ns.uri, 'http://foo.com' + equ r.sample["pfx:top"][0].$["pfx:attr"].value, 'baz' + equ r.sample["pfx:top"][0].$["pfx:attr"].local, 'attr' + equ r.sample["pfx:top"][0].$["pfx:attr"].uri, 'http://foo.com' + equ r.sample["pfx:top"][0].middle[0].$ns.local, 'middle' + equ r.sample["pfx:top"][0].middle[0].$ns.uri, 'http://bar.com') diff --git a/node_modules/aws-sdk/node_modules/xmlbuilder/.npmignore b/node_modules/aws-sdk/node_modules/xmlbuilder/.npmignore new file mode 100644 index 00000000..29db5275 --- /dev/null +++ b/node_modules/aws-sdk/node_modules/xmlbuilder/.npmignore @@ -0,0 +1,8 @@ +.gitignore +.travis.yml +Makefile +.git/ +src/ +test/ +node_modules/ + diff --git a/node_modules/aws-sdk/node_modules/xmlbuilder/README.md b/node_modules/aws-sdk/node_modules/xmlbuilder/README.md new file mode 100644 index 00000000..4025ea51 --- /dev/null +++ b/node_modules/aws-sdk/node_modules/xmlbuilder/README.md @@ -0,0 +1,73 @@ +# xmlbuilder-js + +An XMLBuilder for [node.js](http://nodejs.org/) similar to +[java-xmlbuilder](http://code.google.com/p/java-xmlbuilder/). + +[![Build Status](https://secure.travis-ci.org/oozcitak/xmlbuilder-js.png)](http://travis-ci.org/oozcitak/xmlbuilder-js) + +### Installation: + +``` sh +npm install xmlbuilder +``` + +### Important: + +I had to break compatibility while adding multiple instances in 0.1.3. +As a result, version from v0.1.3 are **not** compatible with previous versions. + +### Usage: + +``` js +var builder = require('xmlbuilder'); +var xml = builder.create('root') + .ele('xmlbuilder', {'for': 'node-js'}) + .ele('repo', {'type': 'git'}, 'git://github.com/oozcitak/xmlbuilder-js.git') + .end({ pretty: true}); + +console.log(xml); +``` + +will result in: + +``` xml + + + + git://github.com/oozcitak/xmlbuilder-js.git + + +``` + +If you need to do some processing: + +``` js +var root = builder.create('squares'); +root.com('f(x) = x^2'); +for(var i = 1; i <= 5; i++) +{ + var item = root.ele('data'); + item.att('x', i); + item.att('y', i * i); +} +``` + +This will result in: + +``` xml + + + + + + + + + +``` + +See the [Usage](https://github.com/oozcitak/xmlbuilder-js/wiki/Usage) page in the wiki for more detailed instructions. + +### License: + +`xmlbuilder-js` is [MIT Licensed](http://opensource.org/licenses/mit-license.php). diff --git a/node_modules/aws-sdk/node_modules/xmlbuilder/lib/XMLBuilder.js b/node_modules/aws-sdk/node_modules/xmlbuilder/lib/XMLBuilder.js new file mode 100644 index 00000000..2850c8ad --- /dev/null +++ b/node_modules/aws-sdk/node_modules/xmlbuilder/lib/XMLBuilder.js @@ -0,0 +1,119 @@ +// Generated by CoffeeScript 1.3.3 +(function() { + var XMLBuilder, XMLFragment; + + XMLFragment = require('./XMLFragment'); + + XMLBuilder = (function() { + + function XMLBuilder(name, xmldec, doctype) { + var att, child, _ref; + this.children = []; + this.rootObject = null; + if (this.is(name, 'Object')) { + _ref = [name, xmldec], xmldec = _ref[0], doctype = _ref[1]; + name = null; + } + if (name != null) { + name = '' + name || ''; + if (xmldec == null) { + xmldec = { + 'version': '1.0' + }; + } + } + if ((xmldec != null) && !(xmldec.version != null)) { + throw new Error("Version number is required"); + } + if (xmldec != null) { + xmldec.version = '' + xmldec.version || ''; + if (!xmldec.version.match(/1\.[0-9]+/)) { + throw new Error("Invalid version number: " + xmldec.version); + } + att = { + version: xmldec.version + }; + if (xmldec.encoding != null) { + xmldec.encoding = '' + xmldec.encoding || ''; + if (!xmldec.encoding.match(/[A-Za-z](?:[A-Za-z0-9._-]|-)*/)) { + throw new Error("Invalid encoding: " + xmldec.encoding); + } + att.encoding = xmldec.encoding; + } + if (xmldec.standalone != null) { + att.standalone = xmldec.standalone ? "yes" : "no"; + } + child = new XMLFragment(this, '?xml', att); + this.children.push(child); + } + if (doctype != null) { + att = {}; + if (name != null) { + att.name = name; + } + if (doctype.ext != null) { + doctype.ext = '' + doctype.ext || ''; + att.ext = doctype.ext; + } + child = new XMLFragment(this, '!DOCTYPE', att); + this.children.push(child); + } + if (name != null) { + this.begin(name); + } + } + + XMLBuilder.prototype.begin = function(name, xmldec, doctype) { + var doc, root; + if (!(name != null)) { + throw new Error("Root element needs a name"); + } + if (this.rootObject) { + this.children = []; + this.rootObject = null; + } + if (xmldec != null) { + doc = new XMLBuilder(name, xmldec, doctype); + return doc.root(); + } + name = '' + name || ''; + root = new XMLFragment(this, name, {}); + root.isRoot = true; + root.documentObject = this; + this.children.push(root); + this.rootObject = root; + return root; + }; + + XMLBuilder.prototype.root = function() { + return this.rootObject; + }; + + XMLBuilder.prototype.end = function(options) { + return toString(options); + }; + + XMLBuilder.prototype.toString = function(options) { + var child, r, _i, _len, _ref; + r = ''; + _ref = this.children; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + child = _ref[_i]; + r += child.toString(options); + } + return r; + }; + + XMLBuilder.prototype.is = function(obj, type) { + var clas; + clas = Object.prototype.toString.call(obj).slice(8, -1); + return (obj != null) && clas === type; + }; + + return XMLBuilder; + + })(); + + module.exports = XMLBuilder; + +}).call(this); diff --git a/node_modules/aws-sdk/node_modules/xmlbuilder/lib/XMLFragment.js b/node_modules/aws-sdk/node_modules/xmlbuilder/lib/XMLFragment.js new file mode 100644 index 00000000..7a0fff59 --- /dev/null +++ b/node_modules/aws-sdk/node_modules/xmlbuilder/lib/XMLFragment.js @@ -0,0 +1,422 @@ +// Generated by CoffeeScript 1.3.3 +(function() { + var XMLFragment, + __hasProp = {}.hasOwnProperty; + + XMLFragment = (function() { + + function XMLFragment(parent, name, attributes, text) { + this.isRoot = false; + this.documentObject = null; + this.parent = parent; + this.name = name; + this.attributes = attributes; + this.value = text; + this.children = []; + } + + XMLFragment.prototype.element = function(name, attributes, text) { + var child, key, val, _ref, _ref1; + if (!(name != null)) { + throw new Error("Missing element name"); + } + name = '' + name || ''; + this.assertLegalChar(name); + if (attributes == null) { + attributes = {}; + } + if (this.is(attributes, 'String') && this.is(text, 'Object')) { + _ref = [text, attributes], attributes = _ref[0], text = _ref[1]; + } else if (this.is(attributes, 'String')) { + _ref1 = [{}, attributes], attributes = _ref1[0], text = _ref1[1]; + } + for (key in attributes) { + if (!__hasProp.call(attributes, key)) continue; + val = attributes[key]; + val = '' + val || ''; + attributes[key] = this.escape(val); + } + child = new XMLFragment(this, name, attributes); + if (text != null) { + text = '' + text || ''; + text = this.escape(text); + this.assertLegalChar(text); + child.raw(text); + } + this.children.push(child); + return child; + }; + + XMLFragment.prototype.insertBefore = function(name, attributes, text) { + var child, i, key, val, _ref, _ref1; + if (this.isRoot) { + throw new Error("Cannot insert elements at root level"); + } + if (!(name != null)) { + throw new Error("Missing element name"); + } + name = '' + name || ''; + this.assertLegalChar(name); + if (attributes == null) { + attributes = {}; + } + if (this.is(attributes, 'String') && this.is(text, 'Object')) { + _ref = [text, attributes], attributes = _ref[0], text = _ref[1]; + } else if (this.is(attributes, 'String')) { + _ref1 = [{}, attributes], attributes = _ref1[0], text = _ref1[1]; + } + for (key in attributes) { + if (!__hasProp.call(attributes, key)) continue; + val = attributes[key]; + val = '' + val || ''; + attributes[key] = this.escape(val); + } + child = new XMLFragment(this.parent, name, attributes); + if (text != null) { + text = '' + text || ''; + text = this.escape(text); + this.assertLegalChar(text); + child.raw(text); + } + i = this.parent.children.indexOf(this); + this.parent.children.splice(i, 0, child); + return child; + }; + + XMLFragment.prototype.insertAfter = function(name, attributes, text) { + var child, i, key, val, _ref, _ref1; + if (this.isRoot) { + throw new Error("Cannot insert elements at root level"); + } + if (!(name != null)) { + throw new Error("Missing element name"); + } + name = '' + name || ''; + this.assertLegalChar(name); + if (attributes == null) { + attributes = {}; + } + if (this.is(attributes, 'String') && this.is(text, 'Object')) { + _ref = [text, attributes], attributes = _ref[0], text = _ref[1]; + } else if (this.is(attributes, 'String')) { + _ref1 = [{}, attributes], attributes = _ref1[0], text = _ref1[1]; + } + for (key in attributes) { + if (!__hasProp.call(attributes, key)) continue; + val = attributes[key]; + val = '' + val || ''; + attributes[key] = this.escape(val); + } + child = new XMLFragment(this.parent, name, attributes); + if (text != null) { + text = '' + text || ''; + text = this.escape(text); + this.assertLegalChar(text); + child.raw(text); + } + i = this.parent.children.indexOf(this); + this.parent.children.splice(i + 1, 0, child); + return child; + }; + + XMLFragment.prototype.remove = function() { + var i, _ref; + if (this.isRoot) { + throw new Error("Cannot remove the root element"); + } + i = this.parent.children.indexOf(this); + [].splice.apply(this.parent.children, [i, i - i + 1].concat(_ref = [])), _ref; + return this.parent; + }; + + XMLFragment.prototype.text = function(value) { + var child; + if (!(value != null)) { + throw new Error("Missing element text"); + } + value = '' + value || ''; + value = this.escape(value); + this.assertLegalChar(value); + child = new XMLFragment(this, '', {}, value); + this.children.push(child); + return this; + }; + + XMLFragment.prototype.cdata = function(value) { + var child; + if (!(value != null)) { + throw new Error("Missing CDATA text"); + } + value = '' + value || ''; + this.assertLegalChar(value); + if (value.match(/]]>/)) { + throw new Error("Invalid CDATA text: " + value); + } + child = new XMLFragment(this, '', {}, ''); + this.children.push(child); + return this; + }; + + XMLFragment.prototype.comment = function(value) { + var child; + if (!(value != null)) { + throw new Error("Missing comment text"); + } + value = '' + value || ''; + value = this.escape(value); + this.assertLegalChar(value); + if (value.match(/--/)) { + throw new Error("Comment text cannot contain double-hypen: " + value); + } + child = new XMLFragment(this, '', {}, ''); + this.children.push(child); + return this; + }; + + XMLFragment.prototype.raw = function(value) { + var child; + if (!(value != null)) { + throw new Error("Missing raw text"); + } + value = '' + value || ''; + child = new XMLFragment(this, '', {}, value); + this.children.push(child); + return this; + }; + + XMLFragment.prototype.up = function() { + if (this.isRoot) { + throw new Error("This node has no parent. Use doc() if you need to get the document object."); + } + return this.parent; + }; + + XMLFragment.prototype.root = function() { + var child; + if (this.isRoot) { + return this; + } + child = this.parent; + while (!child.isRoot) { + child = child.parent; + } + return child; + }; + + XMLFragment.prototype.document = function() { + return this.root().documentObject; + }; + + XMLFragment.prototype.end = function(options) { + return this.document().toString(options); + }; + + XMLFragment.prototype.prev = function() { + var i; + if (this.isRoot) { + throw new Error("Root node has no siblings"); + } + i = this.parent.children.indexOf(this); + if (i < 1) { + throw new Error("Already at the first node"); + } + return this.parent.children[i - 1]; + }; + + XMLFragment.prototype.next = function() { + var i; + if (this.isRoot) { + throw new Error("Root node has no siblings"); + } + i = this.parent.children.indexOf(this); + if (i === -1 || i === this.parent.children.length - 1) { + throw new Error("Already at the last node"); + } + return this.parent.children[i + 1]; + }; + + XMLFragment.prototype.clone = function(deep) { + var clonedSelf; + clonedSelf = new XMLFragment(this.parent, this.name, this.attributes, this.value); + if (deep) { + this.children.forEach(function(child) { + var clonedChild; + clonedChild = child.clone(deep); + clonedChild.parent = clonedSelf; + return clonedSelf.children.push(clonedChild); + }); + } + return clonedSelf; + }; + + XMLFragment.prototype.importXMLBuilder = function(xmlbuilder) { + var clonedRoot; + clonedRoot = xmlbuilder.root().clone(true); + clonedRoot.parent = this; + this.children.push(clonedRoot); + clonedRoot.isRoot = false; + return this; + }; + + XMLFragment.prototype.attribute = function(name, value) { + var _ref; + if (!(name != null)) { + throw new Error("Missing attribute name"); + } + if (!(value != null)) { + throw new Error("Missing attribute value"); + } + name = '' + name || ''; + value = '' + value || ''; + if ((_ref = this.attributes) == null) { + this.attributes = {}; + } + this.attributes[name] = this.escape(value); + return this; + }; + + XMLFragment.prototype.removeAttribute = function(name) { + if (!(name != null)) { + throw new Error("Missing attribute name"); + } + name = '' + name || ''; + delete this.attributes[name]; + return this; + }; + + XMLFragment.prototype.toString = function(options, level) { + var attName, attValue, child, indent, newline, pretty, r, space, _i, _len, _ref, _ref1; + pretty = (options != null) && options.pretty || false; + indent = (options != null) && options.indent || ' '; + newline = (options != null) && options.newline || '\n'; + level || (level = 0); + space = new Array(level + 1).join(indent); + r = ''; + if (pretty) { + r += space; + } + if (!(this.value != null)) { + r += '<' + this.name; + } else { + r += '' + this.value; + } + _ref = this.attributes; + for (attName in _ref) { + attValue = _ref[attName]; + if (this.name === '!DOCTYPE') { + r += ' ' + attValue; + } else { + r += ' ' + attName + '="' + attValue + '"'; + } + } + if (this.children.length === 0) { + if (!(this.value != null)) { + r += this.name === '?xml' ? '?>' : this.name === '!DOCTYPE' ? '>' : '/>'; + } + if (pretty) { + r += newline; + } + } else if (pretty && this.children.length === 1 && this.children[0].value) { + r += '>'; + r += this.children[0].value; + r += ''; + r += newline; + } else { + r += '>'; + if (pretty) { + r += newline; + } + _ref1 = this.children; + for (_i = 0, _len = _ref1.length; _i < _len; _i++) { + child = _ref1[_i]; + r += child.toString(options, level + 1); + } + if (pretty) { + r += space; + } + r += ''; + if (pretty) { + r += newline; + } + } + return r; + }; + + XMLFragment.prototype.escape = function(str) { + return str.replace(/&/g, '&').replace(//g, '>').replace(/'/g, ''').replace(/"/g, '"'); + }; + + XMLFragment.prototype.assertLegalChar = function(str) { + var chars, chr; + chars = /[\u0000-\u0008\u000B-\u000C\u000E-\u001F\uD800-\uDFFF\uFFFE-\uFFFF]/; + chr = str.match(chars); + if (chr) { + throw new Error("Invalid character (" + chr + ") in string: " + str); + } + }; + + XMLFragment.prototype.is = function(obj, type) { + var clas; + clas = Object.prototype.toString.call(obj).slice(8, -1); + return (obj != null) && clas === type; + }; + + XMLFragment.prototype.ele = function(name, attributes, text) { + return this.element(name, attributes, text); + }; + + XMLFragment.prototype.txt = function(value) { + return this.text(value); + }; + + XMLFragment.prototype.dat = function(value) { + return this.cdata(value); + }; + + XMLFragment.prototype.att = function(name, value) { + return this.attribute(name, value); + }; + + XMLFragment.prototype.com = function(value) { + return this.comment(value); + }; + + XMLFragment.prototype.doc = function() { + return this.document(); + }; + + XMLFragment.prototype.e = function(name, attributes, text) { + return this.element(name, attributes, text); + }; + + XMLFragment.prototype.t = function(value) { + return this.text(value); + }; + + XMLFragment.prototype.d = function(value) { + return this.cdata(value); + }; + + XMLFragment.prototype.a = function(name, value) { + return this.attribute(name, value); + }; + + XMLFragment.prototype.c = function(value) { + return this.comment(value); + }; + + XMLFragment.prototype.r = function(value) { + return this.raw(value); + }; + + XMLFragment.prototype.u = function() { + return this.up(); + }; + + return XMLFragment; + + })(); + + module.exports = XMLFragment; + +}).call(this); diff --git a/node_modules/aws-sdk/node_modules/xmlbuilder/lib/index.js b/node_modules/aws-sdk/node_modules/xmlbuilder/lib/index.js new file mode 100644 index 00000000..a930f5b0 --- /dev/null +++ b/node_modules/aws-sdk/node_modules/xmlbuilder/lib/index.js @@ -0,0 +1,15 @@ +// Generated by CoffeeScript 1.3.3 +(function() { + var XMLBuilder; + + XMLBuilder = require('./XMLBuilder'); + + module.exports.create = function(name, xmldec, doctype) { + if (name != null) { + return new XMLBuilder(name, xmldec, doctype).root(); + } else { + return new XMLBuilder(); + } + }; + +}).call(this); diff --git a/node_modules/aws-sdk/node_modules/xmlbuilder/package.json b/node_modules/aws-sdk/node_modules/xmlbuilder/package.json new file mode 100644 index 00000000..e901012f --- /dev/null +++ b/node_modules/aws-sdk/node_modules/xmlbuilder/package.json @@ -0,0 +1,41 @@ +{ + "name": "xmlbuilder", + "version": "0.4.2", + "keywords": [ + "xml", + "xmlbuilder" + ], + "homepage": "http://github.com/oozcitak/xmlbuilder-js", + "description": "An XML builder for node.js", + "author": { + "name": "Ozgur Ozcitak", + "email": "oozcitak@gmail.com" + }, + "licenses": [ + { + "type": "MIT", + "url": "http://opensource.org/licenses/mit-license.php" + } + ], + "repository": { + "type": "git", + "url": "git://github.com/oozcitak/xmlbuilder-js.git" + }, + "bugs": { + "url": "http://github.com/oozcitak/xmlbuilder-js/issues" + }, + "main": "./lib/index", + "engines": { + "node": ">=0.2.0" + }, + "devDependencies": { + "coffee-script": "1.1.x" + }, + "scripts": { + "test": "make test" + }, + "readme": "# xmlbuilder-js\n\nAn XMLBuilder for [node.js](http://nodejs.org/) similar to \n[java-xmlbuilder](http://code.google.com/p/java-xmlbuilder/).\n\n[![Build Status](https://secure.travis-ci.org/oozcitak/xmlbuilder-js.png)](http://travis-ci.org/oozcitak/xmlbuilder-js)\n\n### Installation:\n\n``` sh\nnpm install xmlbuilder\n```\n\n### Important:\n\nI had to break compatibility while adding multiple instances in 0.1.3. \nAs a result, version from v0.1.3 are **not** compatible with previous versions.\n\n### Usage:\n\n``` js\nvar builder = require('xmlbuilder');\nvar xml = builder.create('root')\n .ele('xmlbuilder', {'for': 'node-js'})\n .ele('repo', {'type': 'git'}, 'git://github.com/oozcitak/xmlbuilder-js.git')\n .end({ pretty: true});\n \nconsole.log(xml);\n```\n\nwill result in:\n\n``` xml\n\n\n \n git://github.com/oozcitak/xmlbuilder-js.git\n \n\n```\n\nIf you need to do some processing:\n\n``` js\nvar root = builder.create('squares');\nroot.com('f(x) = x^2');\nfor(var i = 1; i <= 5; i++)\n{\n var item = root.ele('data');\n item.att('x', i);\n item.att('y', i * i);\n}\n```\n\nThis will result in:\n\n``` xml\n\n\n \n \n \n \n \n \n\n```\n\nSee the [Usage](https://github.com/oozcitak/xmlbuilder-js/wiki/Usage) page in the wiki for more detailed instructions.\n\n### License:\n\n`xmlbuilder-js` is [MIT Licensed](http://opensource.org/licenses/mit-license.php).\n", + "readmeFilename": "README.md", + "_id": "xmlbuilder@0.4.2", + "_from": "xmlbuilder@0.4.2" +} diff --git a/node_modules/aws-sdk/package.json b/node_modules/aws-sdk/package.json new file mode 100644 index 00000000..9f8bb4ad --- /dev/null +++ b/node_modules/aws-sdk/package.json @@ -0,0 +1,106 @@ +{ + "name": "aws-sdk", + "description": "AWS SDK for JavaScript", + "version": "2.0.0-rc13", + "author": { + "name": "Amazon Web Services", + "url": "http://aws.amazon.com/" + }, + "homepage": "https://github.com/aws/aws-sdk-js", + "contributors": [ + { + "name": "Loren Segal", + "email": "lsegal@amazon.com" + }, + { + "name": "Trevor Rowe", + "email": "trevrowe@amazon.com" + } + ], + "devDependencies": { + "repl.history": "*", + "jasmine-node": "*", + "semver": "*", + "coffee-script": "1.6.3", + "eslint": "git://github.com/lsegal/eslint#add-filename-to-rules", + "cucumber": "*", + "coffeeify": "*" + }, + "dependencies": { + "aws-sdk-apis": "2.x", + "xml2js": "0.2.4", + "xmlbuilder": "0.4.2" + }, + "main": "lib/aws.js", + "directories": { + "lib": "lib" + }, + "engines": { + "node": ">= 0.6.0" + }, + "repository": { + "type": "git", + "url": "git://github.com/aws/aws-sdk-js" + }, + "bugs": { + "url": "http://github.com/aws/aws-sdk-js/issues" + }, + "licenses": [ + { + "type": "Apache 2.0", + "url": "http://github.com/aws/aws-sdk-js/raw/master/LICENSE.txt" + } + ], + "keywords": [ + "api", + "amazon", + "aws", + "ec2", + "simpledb", + "s3", + "sqs", + "ses", + "sns", + "route53", + "rds", + "elasticache", + "cloudfront", + "fps", + "cloudformation", + "cloudwatch", + "dynamodb", + "iam", + "swf", + "autoscaling", + "cloudsearch", + "elb", + "loadbalancing", + "emr", + "mapreduce", + "importexport", + "storagegateway", + "workflow", + "ebs", + "vpc", + "beanstalk", + "glacier", + "kinesis", + "cloudtrail" + ], + "scripts": { + "test": "npm -s run-script lint && npm -s run-script unit && npm -s run-script browsertest && ([ -f configuration ] && npm -s run-script integration || true)", + "unit": "jasmine-node --noColor --coffee test", + "browsertest": "rake browser:test", + "integration": "cucumber.js", + "lint": "eslint --rulesdir eslint-rules lib", + "console": "./scripts/console" + }, + "readme": "# AWS SDK for JavaScript [![Version](https://badge.fury.io/js/aws-sdk.png)](http://badge.fury.io/js/aws-sdk) [![Build Status](https://travis-ci.org/aws/aws-sdk-js.png?branch=master)](https://travis-ci.org/aws/aws-sdk-js)\n\nThe official AWS SDK for JavaScript, available for browsers and mobile devices,\nor Node.js backends\n\nRelease notes can be found at http://aws.amazon.com/releasenotes/SDK/JavaScript\n\n## Installing\n\n### In the Browser\n\nTo use the SDK in the browser, simply add the following script tag to your\nHTML pages:\n\n \n\n### In Node.js\n\nThe preferred way to install the AWS SDK for Node.js is to use the\n[npm](http://npmjs.org) package manager for Node.js. Simply type the following\ninto a terminal window:\n\n```sh\nnpm install aws-sdk\n```\n\n## Usage and Getting Started\n\nYou can find a getting started guide at:\n\nhttp://docs.aws.amazon.com/AWSJavaScriptSDK/guide/\n\n## Supported Services\n\n

Note:\nAlthough all services are supported in the browser version of the SDK,\nnot all of the services are available in the default hosted build (using the\nscript tag provided above). A list of services in the hosted build are provided\nin the \"Working With Services\"\nsection of the browser SDK guide, including instructions on how to build a\ncustom version of the SDK with extra services.\n

\n\nThe SDK currently supports the following services:\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Service NameClass NameAPI Version
Amazon CloudFrontAWS.CloudFront2012-05-05
2013-11-11
Amazon CloudSearchAWS.CloudSearch2011-02-01
2013-01-01
Amazon CloudWatchAWS.CloudWatch2010-08-01
Amazon DynamoDBAWS.DynamoDB2011-12-05
2012-08-10
Amazon Elastic Compute CloudAWS.EC22014-02-01
Amazon Elastic MapReduceAWS.EMR2009-03-31
Amazon Elastic TranscoderAWS.ElasticTranscoder2012-09-25
Amazon ElastiCacheAWS.ElastiCache2013-06-15
Amazon GlacierAWS.Glacier2012-06-01
Amazon KinesisAWS.Kinesis2013-12-02
Amazon RedshiftAWS.Redshift2012-12-01
Amazon Relational Database ServiceAWS.RDS2013-01-10
2013-02-12
2013-09-09
Amazon Route 53AWS.Route532013-04-01
Amazon Simple Email ServiceAWS.SES2010-12-01
Amazon Simple Notification ServiceAWS.SNS2010-03-31
Amazon Simple Queue ServiceAWS.SQS2012-11-05
Amazon Simple Storage ServiceAWS.S32006-03-01
Amazon Simple Workflow ServiceAWS.SimpleWorkflow2012-01-25
Amazon SimpleDBAWS.SimpleDB2009-04-15
Auto ScalingAWS.AutoScaling2011-01-01
AWS CloudFormationAWS.CloudFormation2010-05-15
AWS CloudTrailAWS.CloudTrail2013-11-01
AWS Data PipelineAWS.DataPipeline2012-10-29
AWS Direct ConnectAWS.DirectConnect2012-10-25
AWS Elastic BeanstalkAWS.ElasticBeanstalk2010-12-01
AWS Identity and Access ManagementAWS.IAM2010-05-08
AWS Import/ExportAWS.ImportExport2010-06-01
AWS OpsWorksAWS.OpsWorks2013-02-18
AWS Security Token ServiceAWS.STS2011-06-15
AWS Storage GatewayAWS.StorageGateway2012-06-30
2013-06-30
AWS SupportAWS.Support2013-04-15
Elastic Load BalancingAWS.ELB2012-06-01
\n\n## License\n\nThis SDK is distributed under the\n[Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0).\n\n```no-highlight\nCopyright 2012-2014. Amazon Web Services, Inc. All Rights Reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n```\n", + "readmeFilename": "README.md", + "_id": "aws-sdk@2.0.0-rc13", + "dist": { + "shasum": "12674f837831a8c500af12debe28305a1b418977" + }, + "_from": "aws-sdk@~>2.0.0", + "_resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.0.0-rc13.tgz" +} diff --git a/node_modules/aws-sdk/scripts/console b/node_modules/aws-sdk/scripts/console new file mode 100644 index 00000000..261c8879 --- /dev/null +++ b/node_modules/aws-sdk/scripts/console @@ -0,0 +1,65 @@ +#!/usr/bin/env node + +var repl = require('repl').start('aws-sdk> '), + replEval = repl.eval, + replHistory = require('repl.history'), + defaultOptions = { + logger: process.stdout, + region: process.env.AWS_REGION || 'us-east-1' + }; + + +function customEval(cmd, context, filename, callback) { + replEval(cmd, context, filename, function(err, value) { + if (err) { + callback(err, null); + return; + } + + if (value && value.constructor === AWS.Request) { + if (!value.__hasBeenSent__) { + value.__hasBeenSent__ = true; + try { + value.on('complete', function consoleDataExtraction(resp) { + context.data = resp.data; + context.error = resp.error; + callback(resp.error, resp.data); + }); + context.request = value; + context.data = null; + context.error = null; + context.response = value.send(); + } catch (err2) { + callback(err2, null); + return; + } + } + } else { + callback(null, value); + } + }); +} + +var AWS = repl.context.AWS = require('../lib/aws'); +repl.eval = customEval; + +// context variables +repl.context.data = null; +repl.context.error = null; +repl.context.request = null; +repl.context.response = null; + +// setup REPL history +replHistory(repl, process.env.HOME + '/.node_history'); + +// load services as defined instances +for (var key in AWS) { + if (AWS[key].serviceIdentifier) { + var svcClass = AWS[key]; + var svc = new svcClass(defaultOptions); + svc.with = function(config) { + return new this.constructor.__super__(AWS.util.merge(this.config, config)); + }; + repl.context[svcClass.serviceIdentifier] = svc; + } +} diff --git a/node_modules/aws-sdk/scripts/coverage b/node_modules/aws-sdk/scripts/coverage new file mode 100644 index 00000000..5fdf53e7 --- /dev/null +++ b/node_modules/aws-sdk/scripts/coverage @@ -0,0 +1,126 @@ +#!/usr/bin/env node + +var fs = require('fs'); +var path = require('path'); + +var FFI = require('node-ffi'); +var libc = new FFI.Library(null, {'system': ['int32', ['string']]}); +var exec = libc.system; + +var jsRequire = require.extensions['.js']; +require.extensions['.js'] = function(module, filename) { + var baseFile = path.relative(path.join(__dirname, '..'), filename); + if (baseFile.match(/^lib\//)) { + filename = filename.replace(/\/lib\//, '/lib-cov/'); + } + jsRequire(module, filename); +} + +function printStats(file, covered, total) { + var maxFileLength = 26; + var pad = maxFileLength - file.length; + for (var i = 0; i < pad; i++) file += ' '; + console.log(file + ' ' + + (parseFloat(covered) / parseFloat(total) * 100).toFixed(2) + '%' + + ((covered != total) ? ' ' : ' ') + + '(' + covered + '/' + total + ')'); +} + +function cleanup() { + exec('rm -rf lib-cov'); +} + +process.on('uncaughtException', function(err) { + cleanup(); + throw err; +}); + +process.on('exit', function() { + var out = 'NO COVERAGE'; + if (typeof(_$jscoverage) !== 'undefined') { + var stats = {} + var entireCovered = 0; + var entireTotal = 0; + out = ''; + var cov = _$jscoverage; + for (var file in cov) { + stats[file] = {covered: 0, total: 0}; + var id = file.replace(/[\.\/]/, '_'); + var total = cov[file].length; + var uncovered = 0; + for (var idx in cov[file]) { + if (cov[file][idx] === 0) uncovered++; + } + var covered = total - uncovered; + stats[file].covered = covered; + stats[file].total = total; + entireCovered += covered; + entireTotal += total; + + out += '

' + file + ' (' + covered + '/' + total + ', ' + + (parseFloat(covered) / parseFloat(total) * 100).toFixed(2) + + '% covered) [+]

\n'; + var lineAccess = []; + + out += ""; + for (var lineNo in cov[file].source) { + lineNo = parseInt(lineNo); + out += ""; + out += "\n"; + } + out += "\n\n"; + } + out += ''; + } + var head = ""; + var body = out; + body = "

Total coverage: " + (parseFloat(entireCovered) / parseFloat(entireTotal) * 100).toFixed(2) + "%

\n" + body; + var page = "\n\n"+head+"\n\n\n"+body+"\n\n\n"; + fs.writeFileSync('coverage.html', page); + + console.log('Test coverage:\n'); + var files = []; + for (var file in stats) { + files.push([file, stats[file]]); + } + files.sort(function(a, b) { + var aVal = parseFloat(a[1].covered) / parseFloat(a[1].total); + var bVal = parseFloat(b[1].covered) / parseFloat(b[1].total); + return (aVal > bVal ? -1 : 1); + }); + for (var item in files) { + var file = files[item][0]; + var stats = files[item][1]; + printStats(file, stats.covered, stats.total) + } + + console.log(''); + printStats('Total', entireCovered, entireTotal); + + cleanup(); +}); + +exec('./node_modules/visionmedia-jscoverage/jscoverage lib lib-cov') +require(path.join(__dirname, '../node_modules/jasmine-node/lib/jasmine-node/cli.js')); diff --git a/node_modules/aws-sdk/testem.json b/node_modules/aws-sdk/testem.json new file mode 100644 index 00000000..925b9a63 --- /dev/null +++ b/node_modules/aws-sdk/testem.json @@ -0,0 +1,4 @@ +{ + "framework": "jasmine", + "test_page": "dist/tests.html" +} diff --git a/node_modules/coalesce/.npmignore b/node_modules/coalesce/.npmignore new file mode 100644 index 00000000..836ae9d0 --- /dev/null +++ b/node_modules/coalesce/.npmignore @@ -0,0 +1 @@ +play/ \ No newline at end of file diff --git a/node_modules/coalesce/Procfile b/node_modules/coalesce/Procfile new file mode 100644 index 00000000..0a818360 --- /dev/null +++ b/node_modules/coalesce/Procfile @@ -0,0 +1 @@ +web: node init.js \ No newline at end of file diff --git a/node_modules/coalesce/README.md b/node_modules/coalesce/README.md new file mode 100644 index 00000000..e879d0ec --- /dev/null +++ b/node_modules/coalesce/README.md @@ -0,0 +1,375 @@ +Coalesce +======== + +_Fuses your code into an emergent superstructure._ + +[![The Tech Talk](http://dl.dropboxusercontent.com/u/4374976/screenshots/coalesce.png)](http://vimeo.com/85853754) + +As simple as: +``` +npm install coalesce && node -e "require('coalesce')({port:8888, sec: -2})" +``` + +That is it, now you can create infinite new projects, like this one: + +**hello.html** +``` + + + +
+ Hello ! +
+ + + +``` +**hello.js** +``` +module.exports = require('theory') +('hello', function(a){ + + a.com.send({ what: "World", where: {on: 'magic'} }); + + return (document.hello.to.onkeyup = function(m){ + + m && m.what? document.hello.to.value = m.what : + a.com.send({what: document.hello.to.value, where: 'magic' }); + + }); + +}); +``` +Save these two files in a subfolder called 'play' in the same directory as the install. (Don't want to copy/paste? Just clone this repo and run `node init.js` in it instead of the npm command.) + +Now load in 2 windows, side by side, the inputs will synchronize when you type! + +Curiosity perked? Check out the two test apps in the playground by simply navigating to them in your browser. Or, read on. Here are some quick hints at why it is awesome (skip this to continue to code examples). + +##Summary of Thoughts## +1. Your module is automatically available to be asynchronously required anywhere else, node or browser - allowing you to manage your dependencies in your JS and not the HTML. +2. Your modules get magically deployed and initialized when a browser requests them, or if otherwise specified in a startup configuration. +3. Your module can optionally receive the request and provide a response, even though it runs in a separate process, already distributed and in parallel. Same setup for multiple machines when connected. +4. Your module's primary communication practically runs off of function calls, even if it is across systems or multiple systems. Module to module communication is easy, loosely coupled directly to their functions. +5. Not opinionated, works whether your code only wants to be RESTful, or only a thick client with sockets, or entirely P2P being relayed through the server. + +###...continued code examples### +But then you are like, "yo, where is my $?" and I reply "I ain't your sugar daddy, foo'." so you then: +``` +module.exports = require('theory') +('hello', function(a){ + + // your initialization code here. + + return { world: $('input').val() }; // the module you export. + +},['http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js']); +``` +Yupe, that is right, you can declare and manage your dependencies all within your javascript! + +All you need in your HTML is one script tag that requires your app from inside, as seen above: +``` + +``` +Now once your modularized code loads, it won't execute until all of your dependencies are loaded. + +This finally makes it easy to manage any type of large project. +If one of your dependencies is also a module, which has dependencies within it, everything asynchronously cascades. +The Theory library makes sure any Inception style depth level of dependencies is all stacked up properly before your code runs. + +Hey, afterall, Cobb's wife Mal lives in the Unconstructed Dream Space, and she is named after me*mAl*locate, which is a nightmare for your memory. +(if you didn't laugh... ignore this ever happened) + +So you are probably like, hey, that is what Theory does, but what is Coalesce? +>Coalesce is the web that connects all of your modules, both Node and in the browser. +But it provides more than just a seamless TCP / HTTP / AJAX / Websocket communication layer for your apps, it also automatically distributes and deploys them. + +This is kind of a throwback to PHP, but don't worry, in a good way. +Restart Coalesce with `node -e "require('coalesce')({port:8888})"`, you run this once and it acts as the master web server. +You then create your app - let's overwrite hello.js, again, to this: +``` +module.exports = require('theory') +('hello', function(a){ + + console.log("Running in both Node and on the page."); + +}); +``` +When you fire up from your browser, your browser makes a request to load 'hello.js'. +Coalesce then attempts to execute 'hello.js' as a separate Node process. +If it crashes, it assumes it is a client only script, like jQuery, and serves it as a static file and remembers to do so in future. +(Note: The assumptions and static server behaviors can be modified or overwritten, as described in the API). +However, if the code can run in Node it does, and in particular, if it is a Theory module, it automagically integrates. + +Now take this example, let's overwrite hello.js again: +``` +module.exports = require('theory') +('hello', function(a){ + + console.log("Running in both Node and on the page."); + + if( root.page ){ + a.com.send("Hello World, from the page!"); + } + + return (function(m){ + + if( root.node ){ + console.log(m.what); + } + + }); + +}); +``` +Now when you refresh you should see your Node console print out the message that had been sent from the browser. +There are several things to learn from this. + +###Conclusion### +1. Coalesce should have automatically roll reloaded (since hot reloading is dangerous) your server side hello.js for you without needing to restart Coalesce. +2. Your module is exported and available on both client and server via `theory.hello` namespace, which is a function that takes the parameter `m` for 'message'. +3. Your single file app should be running on both the server and the client, by using the globally available `root.node` and `root.page` we can determine the corresponding logic. +4. Your module is initialized with a copy of Theory in the parameter, called `a` which is local to your module and provides an interface to your module's dependencies. +5. It also holds the default utilities of Theory, such as the communication layer in `a.com` which is used to send a message to your server side 'hello' module. +6. The returned function exported out in (3) receives this message, and then logs it out. + +Note, this is the same thing that happened earlier with the synchronizing inputs - except since that was client side only +(the module crashed when it tried to access the `document` element, which is undefined in node) and security was disabled via `{sec: -2}`, +the message relayed through the server to all other windows where they were on 'magic' and displayed the message in the input. +(Javascript's native `keyup` listener was bound to the exported module, which was responsible for then sending the input value). + +At this point, you feel like you were following along, but now everything just exploded and you are probably confused. + +The reason why, is because in just 20 LOC or less, you get access to a ton of power, which is exposed to you via raw primitives. + +Remember, elegant complexity is created from the emergence of simplicity. This is coalescence. + +## Messages ## +Before we talk about how to intercept HTTP requests and such, you must understand how the magic behaves. +Coalesce hates opinionated frameworks, and is as unopinionated as possible. The one catch is how a message is structured. +Messages are the glue that causes all your apps to work in unison, so they are vital to the core of everything. +Pardon the cross-disciplinary worlds, but Coalesce borrows the 'W's of journalism to describe information. + +**Who . What . When . Where . Why . How** + +These little goodies are what produce the powerful flexibility of Coalesce, and therefore are required for the magic to happen. +If you cannot accept this one opinion, which enables you to be free from opinions everywhere else, then Coalesce is not for you. + +- **Who** An expandable object containing data relating to the recipient and the sender. + - `{who: 'Mark'}` expands into `{who: { to: 'Mark' }}` which indicates the message is to be sent to Mark. + - In Node, `m.who.tid` is the ID of the specific tab that sent the socket message. + - In Node, `m.who.sid` is the session ID from the original HTTP request. + - Server Examples: + - `a.com.send({ what: "This is sent back to the same tab which sent me this message.", who: m.who.tid })` + - `a.com.send({ what: "I will be sent to every tab that is in this session.", who: m.who.sid })` +- **What** An expandable anything. This is the crux of the data you are actually sending, everything else is just metadata relating to the payload. + - Client Examples: + - `a.com.send("Hello world!")` expands into and is accessible via `m.what`. + - `a.com.send({ foo: 'bar' })` the value of 'bar' is accessible via `m.what.foo`. + - `a.com.send({ foo: 'bar', who: 'Mark' })` expands into `{ who: {to: 'Mark'}, what: {foo: 'bar'} }`. + - `a.com.send({ what: {foo: 'bar'}, who: {to: 'Mark'} })` is already expanded. +- **When** Is a hyper precise millisecond timestamp of when the message was created. + - It is 17 digits long, which is 4 digits longer than the normal `new Date().getTime()`. + - It is not expandable. +- **Where** Is an expandable object pertaining to pub/sub and where the message has been processed. + - `{where: 'magic'}` expands into `{where: {at: 'magic'}}` which broadcasts the message to subscribers of the 'magic' channel. + - `{where: {on: 'magic'}}` subscribes and broadcasts to the 'magic' channel. + - `{where: {off: 'magic'}}` broadcasts and unsubscribes to the 'magic' channel. +- **Why** Is not used, but can be optionally added if you want to provide an arbitrary comment about why the message was sent. +- **How** Mandatory Metadata Object. + - `m.how.way` holds the magical key which routes which way the object goes, by default is the name of the module. + - Can overwrite the 'way' property to communicate with other modules, or directly to functions of a module using the dot notation. + - Usage of the 'way' property, for now, will be described elsewhere. + - You can attach any critical metadata, such as version numbers, etc. + +Because communication between modules is so important, the Theory library provides many helper functions. +Despite this, it is strongly recommended and encouraged you write your own helper functions ontop of the helper functions. +Not to get too meta, but the Theory library also has helper functions to assist you in writing your own helper functions. +If this is not already an emphasis enough on how important this is, +then also note that the entire security of your app is controlled by what information you allow to flow through these APIs you create. +Because Coalesce is not opinionated, you have to enforce your own validation, sanitation, and app specific authorization. + +Therefore, writing your own abstraction ontop of the communication layer will substantially ease your own development and prevent vulnerabilities. + +## Intercepting HTTP ## + +Now we get to start to use Coalesce's API. +This means we're going to use the more robust and explicit form of declaring a module, rather than just the shorthand we have been using. +``` +module.exports = require('theory') +({name: 'hello' +, author: 'Mark Nadal' +, version: 5 +, dependencies: [ + 'fs' +],state: { way: 'server' } +, invincible: true +, init: function(a){ + return { + server: function(m){ + // HTTP Intercept: + console.log(m); + a.fs.writeFileSync(__dirname+'./lastReq.js', "alert('The last request was at "+Date()+"')"); + m.what.body = "alert('Hello World!')"; + a.com.reply(m); + } + } +}}); +``` +Now refresh the page, we should get an ugly ol'alert message. What we are learning... + +1. Rather than parameters of name, initializing function, and optional dependencies - we can just have a single parameter that is similar to a package.json file. +2. This also allows you to wrap it inside another self calling closure that returns an object, if you would like. This is the style seen in the examples, but not demonstrated here. +3. The `state` property tells Coalesce where your module will intercept HTTP requests. In this case, we want to receive it in the 'server' function of our exported module. +4. Because Coalesce will assume a script is client side only if it crashes, we activate the `invincible` tag to tell Coalesce to respawn this module server side if it does crash. +5. As the console will show, we have access to the request `m.what.url`, `m.what.headers`, and `m.what.cookies`. +6. In the same way the communication module is available via `a.com`, our dependencies are available, so we can easily use the filesystem module via `a.fs`. A dependency of `['./subdir/module-name']` is accessible via `a['module-name']`. +7. We can modify the response, by setting a `m.what.body`, `m.what.type`, and so on. +8. `a.com.reply` is a helper that accepts the message passed into the function, which you modify directly, and sends it back to whatever had sent it. It is used by Coalesce for HTTP replies, and by `a.com.ask` client side. +9. You should never write code with alert messages, writing useless data directly to the filesystem on every request, and inline javascript code. Bleck, do as I say, not as I do. + +So let's fiddle with the http function by overwriting it with this: +``` + // HTTP Intercept: + console.log(m); + m.what.url.pathname = '/play/lastReq.js'; + m.what.type = 'js'; + a.com.reply(m); +``` +Refresh and bam. It delivered the file we created previously by changing the route of the pathname. + +This is interesting, though, because a lot of times we don't want our REST endpoint to be at some ugly path to filename, let alone then only be used to redirect to some other filename. We want the opposite, we want some pretty (extensionless) endpoint name which maps request(s) to our process. That way we could do things like `/hello` or `/hello/user/mark` or `/hello?name=mark`. Not all apps are like this, and therefore Coalesce should not force this, nor should it prevent it. + +In order to configure this, we can't dynamically wait for our app to automatically be deployed - because the browser will never be requesting that file, but the pretty route instead! Therefore we must tell Coalesce to run our app at start up, so that way it will be ready and listening on that route. First, we need to update or create the initialization. + +**init.js** +``` +require('coalesce')({ + port: 8888 + ,run: ['./play/hello'] +}); +``` +Save or replace this to the install or repo folder, and restart Coalesce now with `node init.js`. Next update your hello.js to have a state proprety of `{ way: 'server', match: '/asdf', flow: -1 }`. Some quick points: + +1. Coalesce takes a single parameter which is an options object. +2. You declare your routes in your app itself with the state property, not in the configuration - this makes things super flexible. +3. Flow controls the priority or weight or ordering of your route. The static file server is at `0`, so negative numbers allow you to catch and respond to a request before the file on disk is sent - thus blocking or overwriting it, if you want, for security purposes. Positive numbers will only be received if the file doesn't already exist. +4. Match is pretty much self descriptive, it is the path relative to the server that you want to listen on. You can also have dynamic routes, using basic string pattern matching symbols, that map into parameters. +5. For anything more complex, do not use the `state.match`, instead send a regex as a string on `state.regex` and `state.flags` which Coalesce will evaluate. + +Alright, now let's update the http function of our hello.js file again: +``` + // HTTP Intercept: + console.log(m.what.url); + m.what.body = "Hello, "+ (m.what.url.query.name || 'World') +"!"; + a.com.reply(m); +``` +Awesome sauce, hit up and look what it says! Now try playing around with it yourself. That's all for now on this topic, folks. + +## Intercepting Sockets ## +This is done by default, upon `a.com.send` and mapped directly to your main module function. You can also communicate to other modules, via `a.com('yourOtherModule').send`, which will always pass through the server side module first. Once received, you then decide if you want to `a.com.reply` back to the client, or `m.where` client side you want to `a.com.send` it out to. Server to browser communication can only be emitted from and to the same module, unless you enable the `relay` property in the security options on your Coalesce initialization - but warning, this is a security vulnerability. This relay option was necessary for the examples to work. + +Despite this flexibility of intricacy, it is going to be highly recommended that you use Redis' pubsub anyways inside of your module, because it gives you an extra layer of control over the flow points of your app. Consider this comparison, by default Coalesce provides: + +1. Client emit --> 2. Server receive, sanitize, validate, process. Emit --> to another module 3. process, then Server emit --> 4. Client(s) receive. + +Adding in Redis, you can get this kind of fine grain precision: + +1. Client emit --> 2. Server receive, sanitize, validate, process in the context of the sender. Publish to recipients --> 3. Server receives, processes in the context of recipient, then Server emits --> each 4. Client receives. + +If you think about this it pretty much gives you complete control over every possible aspect of any type of app logic, yet it is all within a fairly elegant flow structure. Although you are left with the added complexity of having to manage and handle Redis subscriptions for the clients in the server and making sure everything is atomic, especially in the context of your app being possibly run in parallel processes. Coalesce will not do this for you, because it treads on too many opinions, however helper modules for this may be released in the future to ease managing this for you - then you just include the corresponding module which matches whatever particular assumption you need for that specific app. + +## API ## + +### Config Options ### + +- `host` the hostname you want for the server. *`'localhost'`* +- `port` the port which you want the server to listen on. *`80`* +- `dir` the root directory for the server. *(defaults to the directory of file requiring coalesce)* +- `sec` the security options object. + - `relay` allows messages to pass through the server to other clients automatically if there is no matching module to route to. *`false`* + - `incognito` no session cookie tracking, equivalent to a browser's incognito mode, except for the server. *`false`* + - `key` same as https.createServer's key option, such as the contents of a key.pem file. *`''`* + - `cert` same as https.createServer's cert option, such as the contents of a cert.pem file. *`''`* + - rather than declaring `sec` as an object, you can set its value to one of the following **shorthands**: + - `-2` == `{relay: true, incognito: true}` +- `run` an array of paths you want to run when the server spins up. *`[]`* +- `hook` some special hooks for debugging purposes that will get embedded into Coalesce such as: + - `pre` a function which gets called at the beginning of every request. Good for any global request monitoring, like `console.log`ing the `req.url` for logging purposes. *`function(req,res){ }`* + - `aft` a function which gets called after the request is handled. *`function(req,res){ }`* + - `err` a function which gets called in case the static server encounters an error. *`function(req,res){ }`* +- `com` the SockJS config options object, see SockJS's docs. + +**miscellaneous:** + +- `no_global_theory_src` prevents auto linking and caching Theory for global server side reference as well as client side HTML reference. *`false`* +- `impatient` the millisecond timeout of how long a request should wait for a module to auto deploy itself and intercept the request before Coalesce hands it to the static server. *`3000`* + +Example: +``` +var Coalesce = require('coalesce') + ,opt = {}; + +opt.port = 8888; +opt.sec = { relay: true }; +opt.hook = { pre: function(req,res){ + console.log(req.url); +}} +opt.impatient = 5*1000; +opt.com = { + log: function(level, m){ + if(level === 'error') + console.log(m); + } +} + +Coalesce(opt); + +console.log("Coalesce @ "+ opt.port); +``` + +### Module Options ### + +- `state` the state object, for intercepting HTTP requests, as detailed in the examples. *`{}`* + - `m.what.headers` are the default headers from the request. + - `m.what.method` whether 'post' or 'get' etc., always lower case. + - `m.what.url` is an object concerning the URL. + - `m.what.cookies` is the cookie object from the request. To set your own cookie, just add a property, like `m.what.cookies.name = 'value'`. Or if you want to add options, do `m.what.cookies.name = {value: 'value', httpOnly: true, 'Max-Age': 99999}` instead. + - `m.what.form` if a form happened to be submitted, this is it. + - `m.what.files` if files were uploaded, this is where you deal with them. + - `m.what.body` assign anything to this, and it will become the body of the response. + - `m.what.type` allows you to set the Content-Type. + - `m.what.encoding` to set the Content-Encoding. + - `m.what.cache` use `0` for forcing no cache, or manually provide a cache control value. + - `m.what.status` in case you need to set an explicit status code. + - `m.what.redirect` to redirect to another URL. +- `invincible` a boolean as to whether you want this module to respawn server side, in case it crashes. *`false`* + +Example: +>scroll up to see the example in the HTTP intercept section. + +### Messages ### +>scroll up to see Messages section. + +## Random Ramblings... ## +This is just tossing up a quick getting started guide, but it obviously is pretty vague. +So I'll just explain as much as I can really quickly in a garbled mess. +Programming is just 9 primitives - booleans, numbers, strings, texts, arrays, objects combined with loops, functions, and if statements. +Given these constructs, you then have and do 3 basic things - data, manipulation, and communication. +The Theory library provides a solid foundation for this, an abstraction layer for modular Javascript regardless of server, client, or IE6. +Coalesce creates the communication layer between all these modules, whether server to server, client to client, or server to client and vice versa, +for all protocols - TCP, HTTP, Websocket, or AJAX, all with proper dependency, routing, and event pub/sub. +This means when you write beautiful modules for your app, Coalesce automatically becomes a distributed scalable system because your files are physically separated. + +## Future ## +Obviously this is still under development, and my todo list is huge. Immediately, there needs to be configuration options for adding message queues (Redis, ZeroMQ, etc.), swapping websocket libraries (SockJS, Socket.IO, ws, etc.), and cookie storage, and so on - these are all things that should "plug-in" to replace the sensible defaults. Tests are critical to add. Further out, it is intended to be cross-machine, not just cross-processes, the setup and config for that should be easy-peasy. Perhaps not within the scope of Coalesce core, but to facilitate with cross-machine fusing, it would make sense if scaling features existed to detect disk/cpu/ram overload and then auto-spawn new machines that then linked up. Lots of devops there! + +Here is to the future, help me create it! In the meanwhile, please experiment and play with it, and join me! + +*Note:* If you run into any problems or if anything is confusing or not easy please let me know. I'll help you and then make sure to clarify and update things. Thanks! + +Crafted with love by Mark Nadal, whom is not responsible for any liabilities from the use of this code. diff --git a/node_modules/coalesce/assemble.sh b/node_modules/coalesce/assemble.sh new file mode 100644 index 00000000..df41d86a --- /dev/null +++ b/node_modules/coalesce/assemble.sh @@ -0,0 +1,236 @@ +#!/bin/bash +#To initiate this script, remember to dos2unix if on windows, then run the following, +#where $USER and $IP is the default username and IP of your remote Ubuntu 12.04 machine: +#scp assemble.sh $USER@$IP:/home/$USER/ && ssh $USER@$IP 'bash ./assemble.sh' + +#NODE=http://nodejs.org/dist/v0.8.15/node-v0.8.15-linux-x64.tar.gz #binary +NODE=http://nodejs.org/dist/v0.8.15/node-v0.8.15.tar.gz +MONGO=http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.4.1.tgz +REDIS=http://redis.googlecode.com/files/redis-2.6.6.tar.gz +PHANTOM=http://phantomjs.googlecode.com/files/phantomjs-1.5.0-linux-x86_64-dynamic.tar.gz +ZMQ=http://download.zeromq.org/zeromq-3.2.0-rc1.tar.gz + +IP=`curl -s checkip.dyndns.org | grep -Eo '[0-9\.]+'` +USER=`whoami` + +echo "creating theory" + +cd ~ +if [ -d theory ]; +then + echo "theory folder already exists" +else + mkdir theory +fi + +echo "getting core" +sudo apt-get update -y +sudo apt-get install wget curl zsh git-core build-essential openssl libssl-dev upstart monit libtool autoconf uuid-dev lvm2 xfsprogs -y +sudo apt-get install mdadm --no-install-recommends -y + +cd ~/theory +if [ -e /usr/local/bin/node ]; +then + echo "node already installed." +else + #TODO: REPLACE THE FOLLOWING BUILD WITH NAVE INSTEAD, TO MAKE THINGS FAST! + echo "installing node" + wget -O node.tar.gz $NODE + mkdir node + tar -zxf node.tar.gz -C node --strip-components 1 + cd node + ./configure + make + sudo make install + echo "node installed" +fi + +cd ~/theory +if [ -e /data/db ]; +then + echo "drives already configured" +else + #Mark's version + echo "configuring drives" + DRIVES=`sudo node -e "var proc = require('child_process'); + proc.exec('lsblk -l',function(e,stdout){ + stdout = stdout.split(/\n/g);var s=''; + for(var i=1; i /proc/sys/net/ipv4/ip_local_port_range + echo "fs.file-max = 999999 + net.ipv4.tcp_rmem = 4096 4096 16777216 + net.ipv4.tcp_wmem = 4096 4096 16777216" | sudo tee - a /etc/sysctl.conf + sudo mv /etc/cron.weekly/apt-xapian-index /etc/cron.monthly/apt-xapian-index + + PWD=`pwd` + echo "creating and initializing code" + sudo ln -s $PWD /usr/local/bin/theory + mkdir code + echo "var http = require('http'); +http.createServer(function (req, res) { + res.writeHead(200, {'Content-Type': 'text/plain'}); + res.end('Hello World'); +}).listen(80);console.log('running at 80');" > code/init.js + mkdir git + cd git + git init --bare + PWD=`pwd` + echo "====== DO LOCALLY ======" + echo "git init" + echo "git add ." + echo "git commit -m 'init'" + echo "git remote add web ssh://$USER@$IP$PWD" + echo "git push web master" + echo "====== END LOCAL ======" + echo "#!/bin/sh +sudo stop theory +GIT_WORK_TREE=/usr/local/bin/theory/code git checkout -f +sudo start theory +echo 'deployed'" > hooks/post-receive + chmod +x hooks/post-receive + cd ~/theory + sudo echo "limit nofile 999999 999999 + +description 'start theory' +author 'theory' + +start on runlevel [2345] +stop on shutdown + +respawn + +script + sudo NODE_ENV=production /usr/local/bin/node /usr/local/bin/theory/code/init.js >> /var/log/theory.log 2>&1 +end script" > theory.conf + sudo mv theory.conf /etc/init/ + + sudo echo "set daemon 7 +include /etc/monit/conf.d/* + +check system theory +set httpd port 8080 and + allow theory:symphony +" > monitrc + sudo mv monitrc /etc/monit/ + + sudo echo "check host theory_init with address 127.0.0.1 +start program = '/sbin/start theory' +stop program = '/sbin/stop theory' +if failed port 80 protocol HTTP + request / + with timeout 2 seconds + then restart +" > theory + sudo mv theory /etc/monit/conf.d/ + sudo chown -fR ubuntu ~/theory + sudo chown -fR $USER ~/theory +fi + +sudo start theory +echo "DONE :) $IP" + +# STUFF TO WORK ON: +#SCALE ON: (in node) +#os.freemem() / os.totalmem() 80% ~ 100% for a few days +#node-aws auto controls diff --git a/node_modules/coalesce/coalesce.js b/node_modules/coalesce/coalesce.js new file mode 100644 index 00000000..6f0ecf41 --- /dev/null +++ b/node_modules/coalesce/coalesce.js @@ -0,0 +1,721 @@ +module.exports=require('theory')((function(){ + var web = {}; + web.name = 'web'; + web.version = 1.9; + web.author = 'Mark'; + web.dependencies = [ + 'fs' + ,'url' + ,'path' + ,'http' + ,'https' + ,'child_process' + ]; + web.init = (function(a){ + function web(opt){ + return web.configure(opt); + } var fs = a.fs + , path = a.path + , URL = a.url; + web.opt = {}; + web.configure = (function(opt){ + if(opt.how){ return } + module.reqdir = a.path.dirname((module.parent||{}).filename); + opt = a.obj.is(opt)? opt : {}; + opt.host = opt.host||'localhost'; + opt.port = opt.port||80; + opt.dir = opt.dir || module.reqdir || __dirname; + if(a.bi.is(opt.sec)){ + opt.sec = {}; + } else if(a.num.is(opt.sec)){ + opt.sec = (opt.sec === -2)? {relay: true, incognito: true} : opt.sec; // incognito, eh? + }else if(a.obj.is(opt.sec)){ + + } else { + opt.sec = {}; + } + opt.session = opt.session||{}; + opt.session.sid = opt.session.sid||(function(){ return a.text.random(16) }); + opt.session.tid = opt.session.tid||(function(){ return a.text.random(16) }); + opt.session.expire = opt.session.expire||1000*60*60*24*7*4; + opt.session.wait = opt.session.wait||1000*60*2; + opt.cache = opt.cache||{}; + opt.cache.age = opt.cache.age||0; + opt.com = opt.com||{}; + opt.com.prefix = opt.com.prefix||'/com'; + opt.com.url = opt.com.url||"http"+((opt.sec.key&&opt.sec.cert)?'s':'')+"://" + +opt.host+(opt.port?':'+opt.port:'') + +(opt.com.path||"/node_modules/sockjs/sockjs-0.3.min.js"); + if(a.list.is(opt.run)){ + var run = opt.run; + opt.run = {}; + opt.run.is = run; + } opt.run = opt.run||{}; + opt.run.impatient = opt.run.impatient||1000*3; + opt.hook = opt.hook||{}; + opt.hook.pre = opt.hook.pre||(function(){}); + opt.hook.aft = opt.hook.aft||(function(){}); + opt.hook.err = opt.hook.err||(function(){}); + opt.hook.reply = opt.hook.reply||(function(){}); + opt.node = opt.node||{}; + opt.node.mid = opt.node.mid || a.text.r(16); + web.opt = a.obj(opt).u(web.opt||{}); + web.theorize(); + web.run(opt.run.is); + web.state(); + return web; + }); + a.text.find.js = /\.js$/i; + web.state = (function(){ + function state($){ + state.com = sock.createServer({ + sockjs_url: web.opt.com.url + }); + state.dir = new ns.Server(web.opt.dir); + if(web.opt.sec.key && web.opt.sec.cert){ + state.on = a.https.createServer({key: web.opt.sec.key, cert: web.opt.sec.cert}); + } else { + state.on = a.http.createServer(); + } + state.on.addListener('request',state.req); + state.on.addListener('upgrade',function(req,res){ + if(state.sent(res)){ return } + res.end(); + }); + state.on.listen(web.opt.port); + state.com.on('connection',state.con); + state.com.installHandlers(state.on,web.opt.com); + if(web.opt.node && web.opt.node.src){ + if(!a.list.is(web.opt.node.src)){ + web.opt.node.src = [web.opt.node.src]; + } + a.list(web.opt.node.src).each(function(url){ + var toe = toes.create(url); + web.node.cons[url] = toe; + toe.on('error', function(e){ console.log('ut-oh', e) }); // need to add this before the connection event. + toe.on('connection', function(){ + toe.writable = true; + toe.mid = url; + toe.write(a.text.ify(a.com.meta({ + what: {auth: web.opt.node.key, to: url} + ,where: {mid: web.opt.node.mid} + }))); + state.con(toe); + }); + }); + } + return web; + } + var mime = require('mime') + , ns = require('node-static') + , formidable = require('formidable') + , toes = require('sockjs-client') + , sock = require('sockjs'); + state.ways = []; + state.sort = (function(A,B){ + if(!A || !B){ return 0 } + A = A.flow; B = B.flow; + if(A < B){ return -1 } + else if(A > B){ return 1 } + else { return 0 } + }); + state.map = (function(req,map){ + var url = req.url || url; + map = map || state.ways; + return a.list(map).each(function(v,i){ + if(!a.obj.is(v)){ return } + if(v.flow < (req.flow||-Infinity)){ return } + v.params = v.params || []; + if(a.text.is(v.match)){ + v.regex = state.regex(v); + } if(a.text.is(v.regex)){ + v.regex = new RegExp(v.regex,v.flags); + } if(a.test(v.regex).of(RegExp)){ + var r = v.regex.exec(url.pathname); + if(r){ + url.params = state.regex(v,r||[]); + return v; + } + } if(a.fns.is(v.match)){ + if(v.match(url)){ return v} + } + })||{flow:Infinity,on:state.err}; + return (0 <= r.flow && (fs.existsSync||path.existsSync)(url.file))? + url.file : r.file || url.file; + }); + state.regex = (function(m,r){ // via expressjs + try{ + var path = m.match, keys = m.params||[], params = {}, sensitive, strict; + if(r){ m = r; + for (var i = 1, len = m.length; i < len; ++i) { + var key = keys[i - 1]; + var val = 'string' == typeof m[i] + ? decodeURIComponent(m[i]) : m[i]; + if (key) { + params[key.name] = val; + } else { + params[i] = val; + } + } + return params; + } + if (path instanceof RegExp) return path; + if (Array.isArray(path)) path = '(' + path.join('|') + ')'; + path = path + .concat(strict ? '' : '/?') + .replace(/\/\(/g, '(?:/') + .replace(/(\/)?(\.)?:(\w+)(?:(\(.*?\)))?(\?)?(\*)?/g, function(_, slash, format, key, capture, optional, star){ + keys.push({ name: key, optional: !! optional }); + slash = slash || ''; + return '' + + (optional ? '' : slash) + + '(?:' + + (optional ? slash : '') + + (format || '') + (capture || (format && '([^/.]+?)' || '([^/]+?)')) + ')' + + (optional || '') + + (star ? '(/*)?' : ''); + }) + .replace(/([\/.])/g, '\\$1') + .replace(/\*/g, '(.*)'); + return new RegExp('^' + path + '$', sensitive ? '' : 'i'); + } catch(e){ console.log("something has gone expressively wrong."); } + }); + state.sent = (function(res){ + if(res.headerSent) { return true } + }); + state.url = (function(req){ + var url = a.obj.is(req.url)? req.url : URL.parse(req.url,true); + url.ext = url.ext || path.extname(url.pathname).replace(/^\./,''); + return url; + }); + state.file = (function(req,dir){ + return path.normalize(path.join(dir||web.opt.dir,req.url.pathname)); + }); + state.way = (function(req){ + var p = a.text.is(req||'')? req : (req.map.file || req.file) || ''; + return path.basename(p,path.extname(p)); + }); + state.err = (function(req,res){ + web.cookie.set(res,req.cookies); + state.dir.serve(req,res,function(e,r){ + if(!e){ return web.opt.hook.aft(req,res) } + if(!req.flow){ return state.req(req,res,++req.flow) } + if(web.opt.hook.err(req,res,e,r)){ return } + if(state.sent(res)){ return } + res.writeHead(e.status, e.headers); + res.end(); + }); + }); + state.ways.push({ + way: 'state' + ,match: '*' + ,flow: 0 + ,on: state.err + }) + state.req = (function(req,res){ + req.url = state.url(req); + req.file = state.file(req); + req.map = state.map(req); + req.flow = req.map.flow; + req.cookies = web.cookie.parse(req); + req.cookies.sid = req.cookies.sid || web.opt.session.sid(); + web.opt.hook.pre(req,res); + if(web.theorize(req,res)){ return } + if(req.flow === Infinity){ return state.err(req,res) } + a.fns.flow([function(next){ + web.run.it({ + file: req.map.file || req.file + ,invincible: req.map.file + ,reply: state.msg + },function(v){ + if(v && (v=((v=state.way(req))+'.' + +a(web.run.on,v+'.meta.state.way'))) + ){ + if(a.text(req.method).low() == 'post'){ + var form = new formidable.IncomingForm(); + req.form = {}; req.files = {}; + form.on('field',function(k,v){ + req.form[k] = v; + }).on('file',function(k,v){ + if(!req.files[k]){ req.files[k] = [] } + (req.files[k]||[]).push(v); + }).on('error',function(e){ + console.log("formidable error:",e); + if(form.done){ return } + next(form.done = v); + }).on('end', function(){ + if(form.done){ return } + next(form.done = v); + }); + return form.parse(req); + } return next(v); + } state.err(req,res); + }); + },function(way,next){ + var m = a.com.meta({how:{way:way,web:'state'},where:{pid:0}}); + m.what.url = req.url; + m.what.form = req.form; + m.what.files = req.files; + m.what.cookies = req.cookies; + m.what.headers = req.headers; + m.what.method = a.text(req.method).low(); + web.reply(m,function(m){ + web.opt.hook.reply(m); + if(m && m.what !== undefined){ + if(m.what.type !== undefined){ + var type = mime.lookup(m.what.type||'') + ,chs = mime.charsets.lookup(type); + res.setHeader('Content-Type', type + (chs ? '; charset=' + chs : '')); + } if(m.what.encoding !== undefined){ + res.setHeader('Content-Encoding', m.what.encoding); + } if(m.what.cache !== undefined){ + if(m.what.cache === 0){ + res.setHeader('Cache-Control', 'no-cache, no-store, must-revalidate'); + res.setHeader('Pragma', 'no-cache'); + res.setHeader('Expires', 0); + } else { + res.setHeader('Cache-Control', m.what.cache); + } + } web.cookie.set(res,m.what.cookies||req.cookies); + if(m.what.status !== undefined){ + res.statusCode = m.what.status; + } if(m.what.redirect !== undefined){ + res.setHeader('Location', m.what.redirect); + res.statusCode = m.what.status || 302; + if(state.sent(res)){ return } + return res.end(); + } if(m.what.body !== undefined){ + if(state.sent(res)){ return } + res.end(a.text.is(m.what.body)?m.what.body:a.text.ify(m.what.body)); + return web.opt.hook.aft(req,res); + } req.url.pathname = m.what.pathname||a(m.what,'url.pathname')||req.url.pathname; + if(req.flow === 0){ return state.err(req,res) } + req.flow = (m.what.flow === null)? Infinity : + a.num.is(m.what.flow)? m.what.flow : (req.flow + 1); + } next(req,res); + }); + }],state.req); + }); + state.msg = (function(m,opt,con){ + if(!a.obj.is(m)) return; + var way = a(m,'how.way')||a(m,'way')||'' + ,opt = opt||{}, g; + way = a.text(way).clip('.',0,1); + if(opt != way){ + if(web.run.on[way] && (g = web.run.on[way].meta) && !g.fatal){ + var to = web.run.to(way); + if(way !== g.name && m && m.how && m.how.way){ + m.how.way = m.how.way.replace(way, g.name); + } + to.com && to.com.send && to.com.send(m); + to.count++; + return; + } else + if(a[way]){ // TODO: Warning this is a no-joke condition! It is now on bottom, but should still think about bug edge cases like "test". + a(a(m,'how.way')+'->')(m); + return; + }else{} + if(!web.opt.sec.relay){ + return; + } + } + if((con = state.sub(m)) && (m.where.on||m.where.off||m.where.at)){ + m.where.at = m.where.on||m.where.off||m.where.at; + delete m.where.on; + delete m.where.off; + web.event.emit(m.where.at,m); + // toes should go here too! + return; + } + if((con = state.con.s[m.who.to]) && con.writable){ + return con.write(a.text.ify(state.con.clean(m))); + } + a.obj(web.node.cons).each(function(con,i){ // distinguish between 'reply' and 'send'! + if(!con || !con.write){ return } + con.write(a.text.ify(m)); + }); + }); + state.sub = (function(m,opt,con){ + if( !a.obj.is(m) || !a.obj.is(m.where) || + !a(m,'who.tid') || !(con = state.con.s[m.who.tid])) return; + if(m.where.off){ + if(!con.hear[m.where.off]) return; + web.event.off(con.hear[m.where.off]); + delete con.hear[m.where.off]; + return con; + } if(con.hear[m.where.on]) return con; + con.hear[m.where.on] = web.event.on(m.where.on,function(m){ + if(!con.writable || con.tid == m.who.tid || !state.con.s[con.id]) return; + con.write(a.text.ify(state.con.clean(m))); + }); + return con; + }); + state.con = (function(con){ + con.hear = {}; + state.con.s[con.id] = con; + con.on('data',function(m){ + m = a.com.meta(a.obj.ify(m),con); + if(web.node.auth(con,m)){ return } + web.cookie.tid(con,m,function(v){ + if(!v){ return } + if(web.name == a.list(m.how.way.split('.')).at(1)){ + m.how.way = ''; + } m.where.pid = (m.where.pid === process.pid)? 0 : m.where.pid; + state.msg(m); + }); + }); + con.on('close',function(m){ + console.log(con.id+" disconnected."); + a.obj(con.hear).each(function(v,i){ + web.event.off(v); + }); + delete state.con.s[con.id]; + if(con.mid){ + delete web.node.cons[con.mid]; + } + }); + con.on('error', function(e){ // TODO: if mid try to reconnect! + console.log('con error', e); + }); + }); + state.con.s = {}; + state.con.clean = (function(m){ + if(!m) return {}; + m.who = {tid:m.who.tid,sid:m.who.sid + ,to:m.who.to,from:m.who.from + ,of:m.who.of,via:m.who.via + }; + return m; + }); + return state; + })(); + web.reply = (function(m,fn){ + if(fn){ + web.run.res[m.when] = fn; + web.state.msg(m,m.how.way); + return; + } + if(fn = web.run.res[m.when]){ + fn(m); + delete web.run.res[m.when]; + return; + } + }); + web.cookie = (function(){ + function cookie($){ + return web; + } + cookie.tryst = {}; + cookie.parse = (function(m){ + var l,p,c={}; + if(a(m,'headers.cookie')){ + l = m.headers.cookie.split(/\s?;\s?/ig); + a.list(l).each(function(v,i){ + p = v.split(/=/); + c[p[0]] = p.slice(1).join('='); + }); + } return c; + }); + cookie.set = (function(res,c,tid){ + var h = res.getHeader('Set-Cookie') || [], m; + if(a.text.is(h)){ h = [h] }; c = c || {}; + if(c.sid){ + c.sid = {value: c.sid.value || c.sid.val || c.sid, HttpOnly:true}; + } + if(c.tid){ + if(!tid){ delete c.tid; } + else{ + c.tid = {value: c.tid.value || c.sid.tal || c.tid, HttpOnly:false}; + } + } + c = a.obj(c).each(function(v,i,t){ + if(a.text.is(v)){ + v = {value: v}; + } if(a.obj.is(v)){ + i = i+'='+v.value || v.val || ''; + m = a.obj(v).each(function(w,j,q){ q(a.text.low(j),w) })||{}; + m.httponly = a.obj(m).has('httponly')? m.httponly : true; + m.path = m.path || '/'; + if(m.path){ i += "; path=" + m.path } + if(m.expires){ i += "; expires=" + m.expires } + if(m.domain){ i += "; domain=" + m.domain } + if(m.secure){ i += "; secure" } + if(m.httponly){ i += "; HttpOnly" } + t(i); + } + })||[]; + res.setHeader('Set-Cookie', a.list(h).fuse(c)); + }); + cookie.tid = (function(req,m,fn){ + if(fn){ + if(req.mid){ + return fn(true); + } + if(req.sid || req.tid){ + m.who = a.obj(req.who||{}).u(m.who); + m.how = a.obj(req.how||{}).u(m.how); + m.where = a.obj(req.where||{}).u(m.where); + m.who.tid = req.tid; + m.who.sid = req.sid; + return fn(true); + } if(m.who.tid){ + // GETEX REDIS HERE + var s, t = a.time.is(), w, ws; + if(s = cookie.tryst[m.who.tid]){ + web.state.con.s[req.tid = m.who.tid] = req; + req.sid = m.who.sid = s.sid; + if((w = a.text(m.how.way).clip('.',0,1)) && (ws=a(web.run.on,w+'.meta.stream.on'))){ + var n = a.com.meta({what:s,who:m.who,how:{way:(w+='.'+ws),web:'stream'},where:{pid:0}}); + n.what.data = m.what; + web.reply(n,function(n){ + delete n.who.to; + delete n.where.pid; + delete n.how.way; + delete n.how.web; + req.who = n.who; + req.how = n.how; + req.where = n.where; + cookie.tid(req,m,fn); + }); + } else { + fn(true); + } + } else { + if(web.opt.sec.incognito){ req.sid = req.tid = m.who.tid; fn(true) } + } delete cookie.tryst[m.who.tid]; + a.obj(cookie.tryst).each(function(v,i){ + if(web.opt.session.wait < t - v.ts){ + delete cookie.tryst[i]; + } + }); + } + } if(req.url){ + req.cookies = req.cookies||{}; + // SETEX REDIS HERE + + cookie.tryst[req.cookies.tid = web.opt.session.tid()] + = {sid: req.cookies.sid, ts: a.time.is() + , cookies: a.obj(req.cookies).each(function(v,i,t){ + if(a.obj.is(v)){ + t(i, v.value || v.val || ''); + }else{ + t(i, v || ''); + } + }) + } + return req.cookies; + } + }); + return cookie; + })(); + web.node = (function(){ + function node(){ + + } + node.auth = function(con,m){ + if(con.sid || con.tid){ return } + if(con.mid){ + if(m.where){ m.where.mid = m.where.mid || con.mid } + return; + } + if(m && m.where && m.where.mid && m.what && m.what.auth){ + console.log('node auth', m); + //console.log("auth machine..."); + if(!web.opt.node || !web.opt.node.key){ + con.close(); + console.log("none"); + return true; + } + if(m.where.mid === web.opt.node.mid){ + con.close(); + console.log("self"); + return true; + } + if(m.what.auth === web.opt.node.key){ + con.mid = m.where.mid; + web.node.cons[con.mid] = con; + console.log("machine auth success"); + return true; + } + con.close(); + return true; + } + } + node.cons = {}; + return node; + })(); + web.run = (function(){ + function run($){ + if(!$){ return web } + if(!a.list.is($)){ + $ = [$]; + } a.list($).each(function(v,i,t){ + var p = v; p = p.slice(0,3) == '../'? module.reqdir+'/'+p : p; + p = p.slice(0,2) == './'? module.reqdir + p.slice(1) : p; + p = a.text.find.js.test(p)? p : p + '.js'; + run.it({ + file:p + ,reply: web.state.msg + },function(v){ }); + }); + return web; + } + var spawn = a.child_process.spawn + , fork = a.child_process.fork; + run.on = {}; + run.res = {}; + run.it = (function(m,fn){ + if(!m){ return } + var opt = m.what || m + , way = opt.way = web.state.way(opt.file); + if(way === theory.name){ return fn(false) } + if(opt.file == (module.parent||{}).filename){ return fn(false) } + if(!a.text.find.js.test(opt.file)){ return fn(false) } // ? why again ? + if(!(fs.existsSync||path.existsSync)(opt.file)){ return fn(false) } + if(!opt.respawn && run.on[way]){ + if(a(run.on,way+'.meta.state')){ return fn(true) } // change API + return fn(false); + } + console.log("RUN :-->"+" testing "+opt.file) + var ts = a.time.is() + , p = fork(opt.file,[],{env:process.env}) + , gear = run.on[way] || (run.on[way]={meta:{},cogs:{}}) + , cog = gear.cogs[p.pid] = {com:p, pid:p.pid, start:ts, count:0} + gear.meta.invincible = opt.invincible; + p.on('message',function(m){ + m = a.obj.ify(m); + if(a(m,'onOpen.readyState')===1){ + a.time.stop(opt.impatient); + if(m && m.mod && m.mod.state){ m.mod.state.file = opt.file } + else { fn(0); fn = function(){} } + gear.meta = a.obj(m.mod).u(gear.meta); + if(gear.meta && gear.meta.name){ + run.on[gear.meta.name] = gear; + } + web.state.ways.push(a(m,'mod.state')); + web.state.ways.sort(web.state.sort); + opt.invincible = gear.meta.invincible + run.track(opt,opt.reply); + fn(p.pid||true); fn = function(){}; + return; + } opt.reply(m,(gear.meta&&gear.meta.name)||way); + }); + p.on('exit',function(d,e){ + if(cog.end){ + delete gear.cogs[p.pid]; + return; + } if(gear.meta.invincible){ + cog.end = a.time.is(); + console.log("RUN :-->"+" respawn: "+d+" >> "+way+" survived "+(cog.end - cog.start)/1000+" seconds. >> respawn: "+e); + delete gear.cogs[p.pid]; + opt.respawn = true; + run.it(opt,(function(){})); + return; + } a.time.stop(opt.impatient); + fn(false); fn = function(){}; + gear.meta.fatal = true; + cog.end = a.time.is(); + delete cog.com; cog.com = {send:function(){}}; + console.log("RUN :-->"+" exit: "+d+" >> "+way+" survived "+(cog.end - cog.start)/1000+" seconds. >> exit: "+e); + }); + if(opt.respawn){ return } + opt.impatient = a.time.wait(function(){ + fn(false); fn = function(){}; + },web.opt.run.impatient); + }); + run.tracked = {}; + run.track = (function(opt,cb){ // depreciate + if(run.tracked[opt.way||opt.file]){ return } + fs.watchFile(opt.file,function(c,o){ + opt.respawn = true; + run.it(opt,(function(p){ + if(!p) return; + a.obj(a(run.on,opt.way+'.cogs')).each(function(v,i){ + if(v.pid === p) return; + if(v.end){ + v.com && v.com.kill && v.com.kill(); // not killing? + return; + } + v.end = a.time.is(); + }); + }),cb); + }); + run.tracked[opt.way||opt.file] = true; + }); + run.to = (function(way){ // TODO: Use different algorithm? Such as oldest-used first. + var low; + a.obj(a(run.on,way+'.cogs')).each(function(v,i){ + low = (!v.end && v.count < (low||(low=v)).count)? v : low; + }); + return low||{}; + }); + return run; + })(); + web.event = (function(){ + function event(e){ + if(e){ + e.on = event.on; + e.off = event.off; + e.emit = event.emit; + return e; + } return event; + } + event.w = event.w||{}; + event.emit = (function(w,m){ + a.obj(event.w[w]||{}).each(function(c,i){ + if(c(m) === null){ + delete event.w[i]; + } + }); + return event.w[w]; + }); + event.on = (function(w,c){ + if(!w) return {}; + var r = a.time.now(); + (event.w[w]||(event.w[w]={}))[r] = c; + return r; + }); + event.off = (function(w){ + if(event.w[w]){ + delete event.w[w]; + } else { + a.obj(event.w).each(function(v,i){ + delete v[w]; + if(a.obj.empty(v)){ + delete event.w[i]; + } + }); + } + }); + return event; + })(); + web.theorize = (function(req,res){ + if(req){ + if(a.text.low(web.state.way(req.url.pathname)) === theory.name){ + req.cookies = web.cookie.tid(req); + if(!web.opt.no_global_theory_src){ + web.cookie.set(res,req.cookies,req.cookies.tid); + if(web.state.sent(res)){ return } + res.writeHead(200, { 'Content-Type': 'text/javascript; charset=utf-8' }); + res.end(a.theory_js,'utf-8'); + return true; + } + } + } if(!web.opt.no_global_theory_src){ + a.theory_js = a.theory_js||fs.readFileSync(process.env.totheory,'utf8'); + if( (fs.existsSync||path.existsSync)(module.reqdir+'/node_modules') && + (fs.existsSync||path.existsSync)(__dirname+'/node_modules/theory') && + !(fs.existsSync||path.existsSync)(module.reqdir+'/node_modules/theory')){ + fs.mkdirSync(module.reqdir+'/node_modules/theory') + fs.writeFileSync(module.reqdir+'/node_modules/theory/index.js' + ,"module.exports=require('" + +path.relative(module.reqdir+'/node_modules/theory' + ,process.env.totheory).replace(/\\/ig,'/') + +"');"); + } + } + }); + return a.web = web; + }); + return web; +})()); \ No newline at end of file diff --git a/node_modules/coalesce/init.js b/node_modules/coalesce/init.js new file mode 100644 index 00000000..0d2ea42d --- /dev/null +++ b/node_modules/coalesce/init.js @@ -0,0 +1 @@ +require('./coalesce')({port: (process.env.PORT||8888), sec: -2}); \ No newline at end of file diff --git a/node_modules/coalesce/license b/node_modules/coalesce/license new file mode 100644 index 00000000..97d7a7ff --- /dev/null +++ b/node_modules/coalesce/license @@ -0,0 +1,7 @@ +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. \ No newline at end of file diff --git a/node_modules/coalesce/node_modules/formidable/.npmignore b/node_modules/coalesce/node_modules/formidable/.npmignore new file mode 100644 index 00000000..4fbabb33 --- /dev/null +++ b/node_modules/coalesce/node_modules/formidable/.npmignore @@ -0,0 +1,4 @@ +/test/tmp/ +*.upload +*.un~ +*.http diff --git a/node_modules/coalesce/node_modules/formidable/.travis.yml b/node_modules/coalesce/node_modules/formidable/.travis.yml new file mode 100644 index 00000000..f1d0f13c --- /dev/null +++ b/node_modules/coalesce/node_modules/formidable/.travis.yml @@ -0,0 +1,4 @@ +language: node_js +node_js: + - 0.4 + - 0.6 diff --git a/node_modules/coalesce/node_modules/formidable/Makefile b/node_modules/coalesce/node_modules/formidable/Makefile new file mode 100644 index 00000000..89458724 --- /dev/null +++ b/node_modules/coalesce/node_modules/formidable/Makefile @@ -0,0 +1,14 @@ +SHELL := /bin/bash + +test: + @./test/run.js + +build: npm test + +npm: + npm install . + +clean: + rm test/tmp/* + +.PHONY: test clean build diff --git a/node_modules/coalesce/node_modules/formidable/Readme.md b/node_modules/coalesce/node_modules/formidable/Readme.md new file mode 100644 index 00000000..a5ca104b --- /dev/null +++ b/node_modules/coalesce/node_modules/formidable/Readme.md @@ -0,0 +1,311 @@ +# Formidable + +[![Build Status](https://secure.travis-ci.org/felixge/node-formidable.png?branch=master)](http://travis-ci.org/felixge/node-formidable) + +## Purpose + +A node.js module for parsing form data, especially file uploads. + +## Current status + +This module was developed for [Transloadit](http://transloadit.com/), a service focused on uploading +and encoding images and videos. It has been battle-tested against hundreds of GB of file uploads from +a large variety of clients and is considered production-ready. + +## Features + +* Fast (~500mb/sec), non-buffering multipart parser +* Automatically writing file uploads to disk +* Low memory footprint +* Graceful error handling +* Very high test coverage + +## Changelog + +### v1.0.9 + +* Emit progress when content length header parsed (Tim Koschützki) +* Fix Readme syntax due to GitHub changes (goob) +* Replace references to old 'sys' module in Readme with 'util' (Peter Sugihara) + +### v1.0.8 + +* Strip potentially unsafe characters when using `keepExtensions: true`. +* Switch to utest / urun for testing +* Add travis build + +### v1.0.7 + +* Remove file from package that was causing problems when installing on windows. (#102) +* Fix typos in Readme (Jason Davies). + +### v1.0.6 + +* Do not default to the default to the field name for file uploads where + filename="". + +### v1.0.5 + +* Support filename="" in multipart parts +* Explain unexpected end() errors in parser better + +**Note:** Starting with this version, formidable emits 'file' events for empty +file input fields. Previously those were incorrectly emitted as regular file +input fields with value = "". + +### v1.0.4 + +* Detect a good default tmp directory regardless of platform. (#88) + +### v1.0.3 + +* Fix problems with utf8 characters (#84) / semicolons in filenames (#58) +* Small performance improvements +* New test suite and fixture system + +### v1.0.2 + +* Exclude node\_modules folder from git +* Implement new `'aborted'` event +* Fix files in example folder to work with recent node versions +* Make gently a devDependency + +[See Commits](https://github.com/felixge/node-formidable/compare/v1.0.1...v1.0.2) + +### v1.0.1 + +* Fix package.json to refer to proper main directory. (#68, Dean Landolt) + +[See Commits](https://github.com/felixge/node-formidable/compare/v1.0.0...v1.0.1) + +### v1.0.0 + +* Add support for multipart boundaries that are quoted strings. (Jeff Craig) + +This marks the beginning of development on version 2.0 which will include +several architectural improvements. + +[See Commits](https://github.com/felixge/node-formidable/compare/v0.9.11...v1.0.0) + +### v0.9.11 + +* Emit `'progress'` event when receiving data, regardless of parsing it. (Tim Koschützki) +* Use [W3C FileAPI Draft](http://dev.w3.org/2006/webapi/FileAPI/) properties for File class + +**Important:** The old property names of the File class will be removed in a +future release. + +[See Commits](https://github.com/felixge/node-formidable/compare/v0.9.10...v0.9.11) + +### Older releases + +These releases were done before starting to maintain the above Changelog: + +* [v0.9.10](https://github.com/felixge/node-formidable/compare/v0.9.9...v0.9.10) +* [v0.9.9](https://github.com/felixge/node-formidable/compare/v0.9.8...v0.9.9) +* [v0.9.8](https://github.com/felixge/node-formidable/compare/v0.9.7...v0.9.8) +* [v0.9.7](https://github.com/felixge/node-formidable/compare/v0.9.6...v0.9.7) +* [v0.9.6](https://github.com/felixge/node-formidable/compare/v0.9.5...v0.9.6) +* [v0.9.5](https://github.com/felixge/node-formidable/compare/v0.9.4...v0.9.5) +* [v0.9.4](https://github.com/felixge/node-formidable/compare/v0.9.3...v0.9.4) +* [v0.9.3](https://github.com/felixge/node-formidable/compare/v0.9.2...v0.9.3) +* [v0.9.2](https://github.com/felixge/node-formidable/compare/v0.9.1...v0.9.2) +* [v0.9.1](https://github.com/felixge/node-formidable/compare/v0.9.0...v0.9.1) +* [v0.9.0](https://github.com/felixge/node-formidable/compare/v0.8.0...v0.9.0) +* [v0.9.0](https://github.com/felixge/node-formidable/compare/v0.8.0...v0.9.0) +* [v0.9.0](https://github.com/felixge/node-formidable/compare/v0.8.0...v0.9.0) +* [v0.9.0](https://github.com/felixge/node-formidable/compare/v0.8.0...v0.9.0) +* [v0.9.0](https://github.com/felixge/node-formidable/compare/v0.8.0...v0.9.0) +* [v0.9.0](https://github.com/felixge/node-formidable/compare/v0.8.0...v0.9.0) +* [v0.9.0](https://github.com/felixge/node-formidable/compare/v0.8.0...v0.9.0) +* [v0.9.0](https://github.com/felixge/node-formidable/compare/v0.8.0...v0.9.0) +* [v0.1.0](https://github.com/felixge/node-formidable/commits/v0.1.0) + +## Installation + +Via [npm](http://github.com/isaacs/npm): + + npm install formidable@latest + +Manually: + + git clone git://github.com/felixge/node-formidable.git formidable + vim my.js + # var formidable = require('./formidable'); + +Note: Formidable requires [gently](http://github.com/felixge/node-gently) to run the unit tests, but you won't need it for just using the library. + +## Example + +Parse an incoming file upload. + + var formidable = require('formidable'), + http = require('http'), + + util = require('util'); + + http.createServer(function(req, res) { + if (req.url == '/upload' && req.method.toLowerCase() == 'post') { + // parse a file upload + var form = new formidable.IncomingForm(); + form.parse(req, function(err, fields, files) { + res.writeHead(200, {'content-type': 'text/plain'}); + res.write('received upload:\n\n'); + res.end(util.inspect({fields: fields, files: files})); + }); + return; + } + + // show a file upload form + res.writeHead(200, {'content-type': 'text/html'}); + res.end( + '
'+ + '
'+ + '
'+ + ''+ + '
' + ); + }).listen(80); + +## API + +### formidable.IncomingForm + +__new formidable.IncomingForm()__ + +Creates a new incoming form. + +__incomingForm.encoding = 'utf-8'__ + +The encoding to use for incoming form fields. + +__incomingForm.uploadDir = process.env.TMP || '/tmp' || process.cwd()__ + +The directory for placing file uploads in. You can move them later on using +`fs.rename()`. The default directory is picked at module load time depending on +the first existing directory from those listed above. + +__incomingForm.keepExtensions = false__ + +If you want the files written to `incomingForm.uploadDir` to include the extensions of the original files, set this property to `true`. + +__incomingForm.type__ + +Either 'multipart' or 'urlencoded' depending on the incoming request. + +__incomingForm.maxFieldsSize = 2 * 1024 * 1024__ + +Limits the amount of memory a field (not file) can allocate in bytes. +If this value is exceeded, an `'error'` event is emitted. The default +size is 2MB. + +__incomingForm.hash = false__ + +If you want checksums calculated for incoming files, set this to either `'sha1'` or `'md5'`. + +__incomingForm.bytesReceived__ + +The amount of bytes received for this form so far. + +__incomingForm.bytesExpected__ + +The expected number of bytes in this form. + +__incomingForm.parse(request, [cb])__ + +Parses an incoming node.js `request` containing form data. If `cb` is provided, all fields an files are collected and passed to the callback: + + incomingForm.parse(req, function(err, fields, files) { + // ... + }); + +__incomingForm.onPart(part)__ + +You may overwrite this method if you are interested in directly accessing the multipart stream. Doing so will disable any `'field'` / `'file'` events processing which would occur otherwise, making you fully responsible for handling the processing. + + incomingForm.onPart = function(part) { + part.addListener('data', function() { + // ... + }); + } + +If you want to use formidable to only handle certain parts for you, you can do so: + + incomingForm.onPart = function(part) { + if (!part.filename) { + // let formidable handle all non-file parts + incomingForm.handlePart(part); + } + } + +Check the code in this method for further inspiration. + +__Event: 'progress' (bytesReceived, bytesExpected)__ + +Emitted after each incoming chunk of data that has been parsed. Can be used to roll your own progress bar. + +__Event: 'field' (name, value)__ + +Emitted whenever a field / value pair has been received. + +__Event: 'fileBegin' (name, file)__ + +Emitted whenever a new file is detected in the upload stream. Use this even if +you want to stream the file to somewhere else while buffering the upload on +the file system. + +__Event: 'file' (name, file)__ + +Emitted whenever a field / file pair has been received. `file` is an instance of `File`. + +__Event: 'error' (err)__ + +Emitted when there is an error processing the incoming form. A request that experiences an error is automatically paused, you will have to manually call `request.resume()` if you want the request to continue firing `'data'` events. + +__Event: 'aborted'__ + +Emitted when the request was aborted by the user. Right now this can be due to a 'timeout' or 'close' event on the socket. In the future there will be a separate 'timeout' event (needs a change in the node core). + +__Event: 'end' ()__ + +Emitted when the entire request has been received, and all contained files have finished flushing to disk. This is a great place for you to send your response. + +### formidable.File + +__file.size = 0__ + +The size of the uploaded file in bytes. If the file is still being uploaded (see `'fileBegin'` event), this property says how many bytes of the file have been written to disk yet. + +__file.path = null__ + +The path this file is being written to. You can modify this in the `'fileBegin'` event in +case you are unhappy with the way formidable generates a temporary path for your files. + +__file.name = null__ + +The name this file had according to the uploading client. + +__file.type = null__ + +The mime type of this file, according to the uploading client. + +__file.lastModifiedDate = null__ + +A date object (or `null`) containing the time this file was last written to. Mostly +here for compatibility with the [W3C File API Draft](http://dev.w3.org/2006/webapi/FileAPI/). + +__file.hash = null__ + +If hash calculation was set, you can read the hex digest out of this var. + +## License + +Formidable is licensed under the MIT license. + +## Ports + +* [multipart-parser](http://github.com/FooBarWidget/multipart-parser): a C++ parser based on formidable + +## Credits + +* [Ryan Dahl](http://twitter.com/ryah) for his work on [http-parser](http://github.com/ry/http-parser) which heavily inspired multipart_parser.js diff --git a/node_modules/coalesce/node_modules/formidable/TODO b/node_modules/coalesce/node_modules/formidable/TODO new file mode 100644 index 00000000..e1107f2a --- /dev/null +++ b/node_modules/coalesce/node_modules/formidable/TODO @@ -0,0 +1,3 @@ +- Better bufferMaxSize handling approach +- Add tests for JSON parser pull request and merge it +- Implement QuerystringParser the same way as MultipartParser diff --git a/node_modules/coalesce/node_modules/formidable/benchmark/bench-multipart-parser.js b/node_modules/coalesce/node_modules/formidable/benchmark/bench-multipart-parser.js new file mode 100644 index 00000000..bff41f15 --- /dev/null +++ b/node_modules/coalesce/node_modules/formidable/benchmark/bench-multipart-parser.js @@ -0,0 +1,70 @@ +require('../test/common'); +var multipartParser = require('../lib/multipart_parser'), + MultipartParser = multipartParser.MultipartParser, + parser = new MultipartParser(), + Buffer = require('buffer').Buffer, + boundary = '-----------------------------168072824752491622650073', + mb = 100, + buffer = createMultipartBuffer(boundary, mb * 1024 * 1024), + callbacks = + { partBegin: -1, + partEnd: -1, + headerField: -1, + headerValue: -1, + partData: -1, + end: -1, + }; + + +parser.initWithBoundary(boundary); +parser.onHeaderField = function() { + callbacks.headerField++; +}; + +parser.onHeaderValue = function() { + callbacks.headerValue++; +}; + +parser.onPartBegin = function() { + callbacks.partBegin++; +}; + +parser.onPartData = function() { + callbacks.partData++; +}; + +parser.onPartEnd = function() { + callbacks.partEnd++; +}; + +parser.onEnd = function() { + callbacks.end++; +}; + +var start = +new Date(), + nparsed = parser.write(buffer), + duration = +new Date - start, + mbPerSec = (mb / (duration / 1000)).toFixed(2); + +console.log(mbPerSec+' mb/sec'); + +assert.equal(nparsed, buffer.length); + +function createMultipartBuffer(boundary, size) { + var head = + '--'+boundary+'\r\n' + + 'content-disposition: form-data; name="field1"\r\n' + + '\r\n' + , tail = '\r\n--'+boundary+'--\r\n' + , buffer = new Buffer(size); + + buffer.write(head, 'ascii', 0); + buffer.write(tail, 'ascii', buffer.length - tail.length); + return buffer; +} + +process.on('exit', function() { + for (var k in callbacks) { + assert.equal(0, callbacks[k], k+' count off by '+callbacks[k]); + } +}); diff --git a/node_modules/coalesce/node_modules/formidable/example/post.js b/node_modules/coalesce/node_modules/formidable/example/post.js new file mode 100644 index 00000000..f6c15a64 --- /dev/null +++ b/node_modules/coalesce/node_modules/formidable/example/post.js @@ -0,0 +1,43 @@ +require('../test/common'); +var http = require('http'), + util = require('util'), + formidable = require('formidable'), + server; + +server = http.createServer(function(req, res) { + if (req.url == '/') { + res.writeHead(200, {'content-type': 'text/html'}); + res.end( + '
'+ + '
'+ + '
'+ + ''+ + '
' + ); + } else if (req.url == '/post') { + var form = new formidable.IncomingForm(), + fields = []; + + form + .on('error', function(err) { + res.writeHead(200, {'content-type': 'text/plain'}); + res.end('error:\n\n'+util.inspect(err)); + }) + .on('field', function(field, value) { + console.log(field, value); + fields.push([field, value]); + }) + .on('end', function() { + console.log('-> post done'); + res.writeHead(200, {'content-type': 'text/plain'}); + res.end('received fields:\n\n '+util.inspect(fields)); + }); + form.parse(req); + } else { + res.writeHead(404, {'content-type': 'text/plain'}); + res.end('404'); + } +}); +server.listen(TEST_PORT); + +console.log('listening on http://localhost:'+TEST_PORT+'/'); diff --git a/node_modules/coalesce/node_modules/formidable/example/upload.js b/node_modules/coalesce/node_modules/formidable/example/upload.js new file mode 100644 index 00000000..050cdd9d --- /dev/null +++ b/node_modules/coalesce/node_modules/formidable/example/upload.js @@ -0,0 +1,48 @@ +require('../test/common'); +var http = require('http'), + util = require('util'), + formidable = require('formidable'), + server; + +server = http.createServer(function(req, res) { + if (req.url == '/') { + res.writeHead(200, {'content-type': 'text/html'}); + res.end( + '
'+ + '
'+ + '
'+ + ''+ + '
' + ); + } else if (req.url == '/upload') { + var form = new formidable.IncomingForm(), + files = [], + fields = []; + + form.uploadDir = TEST_TMP; + + form + .on('field', function(field, value) { + console.log(field, value); + fields.push([field, value]); + }) + .on('file', function(field, file) { + console.log(field, file); + files.push([field, file]); + }) + .on('end', function() { + console.log('-> upload done'); + res.writeHead(200, {'content-type': 'text/plain'}); + res.write('received fields:\n\n '+util.inspect(fields)); + res.write('\n\n'); + res.end('received files:\n\n '+util.inspect(files)); + }); + form.parse(req); + } else { + res.writeHead(404, {'content-type': 'text/plain'}); + res.end('404'); + } +}); +server.listen(TEST_PORT); + +console.log('listening on http://localhost:'+TEST_PORT+'/'); diff --git a/node_modules/coalesce/node_modules/formidable/index.js b/node_modules/coalesce/node_modules/formidable/index.js new file mode 100644 index 00000000..be410325 --- /dev/null +++ b/node_modules/coalesce/node_modules/formidable/index.js @@ -0,0 +1 @@ +module.exports = require('./lib/formidable'); \ No newline at end of file diff --git a/node_modules/coalesce/node_modules/formidable/lib/file.js b/node_modules/coalesce/node_modules/formidable/lib/file.js new file mode 100644 index 00000000..dad8d5f7 --- /dev/null +++ b/node_modules/coalesce/node_modules/formidable/lib/file.js @@ -0,0 +1,73 @@ +if (global.GENTLY) require = GENTLY.hijack(require); + +var util = require('./util'), + WriteStream = require('fs').WriteStream, + EventEmitter = require('events').EventEmitter, + crypto = require('crypto'); + +function File(properties) { + EventEmitter.call(this); + + this.size = 0; + this.path = null; + this.name = null; + this.type = null; + this.hash = null; + this.lastModifiedDate = null; + + this._writeStream = null; + + for (var key in properties) { + this[key] = properties[key]; + } + + if(typeof this.hash === 'string') { + this.hash = crypto.createHash(properties.hash); + } + + this._backwardsCompatibility(); +} +module.exports = File; +util.inherits(File, EventEmitter); + +// @todo Next release: Show error messages when accessing these +File.prototype._backwardsCompatibility = function() { + var self = this; + this.__defineGetter__('length', function() { + return self.size; + }); + this.__defineGetter__('filename', function() { + return self.name; + }); + this.__defineGetter__('mime', function() { + return self.type; + }); +}; + +File.prototype.open = function() { + this._writeStream = new WriteStream(this.path); +}; + +File.prototype.write = function(buffer, cb) { + var self = this; + this._writeStream.write(buffer, function() { + if(self.hash) { + self.hash.update(buffer); + } + self.lastModifiedDate = new Date(); + self.size += buffer.length; + self.emit('progress', self.size); + cb(); + }); +}; + +File.prototype.end = function(cb) { + var self = this; + this._writeStream.end(function() { + if(self.hash) { + self.hash = self.hash.digest('hex'); + } + self.emit('end'); + cb(); + }); +}; diff --git a/node_modules/coalesce/node_modules/formidable/lib/incoming_form.js b/node_modules/coalesce/node_modules/formidable/lib/incoming_form.js new file mode 100644 index 00000000..060eac29 --- /dev/null +++ b/node_modules/coalesce/node_modules/formidable/lib/incoming_form.js @@ -0,0 +1,384 @@ +if (global.GENTLY) require = GENTLY.hijack(require); + +var fs = require('fs'); +var util = require('./util'), + path = require('path'), + File = require('./file'), + MultipartParser = require('./multipart_parser').MultipartParser, + QuerystringParser = require('./querystring_parser').QuerystringParser, + StringDecoder = require('string_decoder').StringDecoder, + EventEmitter = require('events').EventEmitter, + Stream = require('stream').Stream; + +function IncomingForm(opts) { + if (!(this instanceof IncomingForm)) return new IncomingForm; + EventEmitter.call(this); + + opts=opts||{}; + + this.error = null; + this.ended = false; + + this.maxFieldsSize = opts.maxFieldsSize || 2 * 1024 * 1024; + this.keepExtensions = opts.keepExtensions || false; + this.uploadDir = opts.uploadDir || IncomingForm.UPLOAD_DIR; + this.encoding = opts.encoding || 'utf-8'; + this.headers = null; + this.type = null; + this.hash = false; + + this.bytesReceived = null; + this.bytesExpected = null; + + this._parser = null; + this._flushing = 0; + this._fieldsSize = 0; +}; +util.inherits(IncomingForm, EventEmitter); +exports.IncomingForm = IncomingForm; + +IncomingForm.UPLOAD_DIR = (function() { + var dirs = [process.env.TMP, '/tmp', process.cwd()]; + for (var i = 0; i < dirs.length; i++) { + var dir = dirs[i]; + var isDirectory = false; + + try { + isDirectory = fs.statSync(dir).isDirectory(); + } catch (e) {} + + if (isDirectory) return dir; + } +})(); + +IncomingForm.prototype.parse = function(req, cb) { + this.pause = function() { + try { + req.pause(); + } catch (err) { + // the stream was destroyed + if (!this.ended) { + // before it was completed, crash & burn + this._error(err); + } + return false; + } + return true; + }; + + this.resume = function() { + try { + req.resume(); + } catch (err) { + // the stream was destroyed + if (!this.ended) { + // before it was completed, crash & burn + this._error(err); + } + return false; + } + + return true; + }; + + this.writeHeaders(req.headers); + + var self = this; + req + .on('error', function(err) { + self._error(err); + }) + .on('aborted', function() { + self.emit('aborted'); + }) + .on('data', function(buffer) { + self.write(buffer); + }) + .on('end', function() { + if (self.error) { + return; + } + + var err = self._parser.end(); + if (err) { + self._error(err); + } + }); + + if (cb) { + var fields = {}, files = {}; + this + .on('field', function(name, value) { + fields[name] = value; + }) + .on('file', function(name, file) { + files[name] = file; + }) + .on('error', function(err) { + cb(err, fields, files); + }) + .on('end', function() { + cb(null, fields, files); + }); + } + + return this; +}; + +IncomingForm.prototype.writeHeaders = function(headers) { + this.headers = headers; + this._parseContentLength(); + this._parseContentType(); +}; + +IncomingForm.prototype.write = function(buffer) { + if (!this._parser) { + this._error(new Error('unintialized parser')); + return; + } + + this.bytesReceived += buffer.length; + this.emit('progress', this.bytesReceived, this.bytesExpected); + + var bytesParsed = this._parser.write(buffer); + if (bytesParsed !== buffer.length) { + this._error(new Error('parser error, '+bytesParsed+' of '+buffer.length+' bytes parsed')); + } + + return bytesParsed; +}; + +IncomingForm.prototype.pause = function() { + // this does nothing, unless overwritten in IncomingForm.parse + return false; +}; + +IncomingForm.prototype.resume = function() { + // this does nothing, unless overwritten in IncomingForm.parse + return false; +}; + +IncomingForm.prototype.onPart = function(part) { + // this method can be overwritten by the user + this.handlePart(part); +}; + +IncomingForm.prototype.handlePart = function(part) { + var self = this; + + if (part.filename === undefined) { + var value = '' + , decoder = new StringDecoder(this.encoding); + + part.on('data', function(buffer) { + self._fieldsSize += buffer.length; + if (self._fieldsSize > self.maxFieldsSize) { + self._error(new Error('maxFieldsSize exceeded, received '+self._fieldsSize+' bytes of field data')); + return; + } + value += decoder.write(buffer); + }); + + part.on('end', function() { + self.emit('field', part.name, value); + }); + return; + } + + this._flushing++; + + var file = new File({ + path: this._uploadPath(part.filename), + name: part.filename, + type: part.mime, + hash: self.hash + }); + + this.emit('fileBegin', part.name, file); + + file.open(); + + part.on('data', function(buffer) { + self.pause(); + file.write(buffer, function() { + self.resume(); + }); + }); + + part.on('end', function() { + file.end(function() { + self._flushing--; + self.emit('file', part.name, file); + self._maybeEnd(); + }); + }); +}; + +IncomingForm.prototype._parseContentType = function() { + if (!this.headers['content-type']) { + this._error(new Error('bad content-type header, no content-type')); + return; + } + + if (this.headers['content-type'].match(/urlencoded/i)) { + this._initUrlencoded(); + return; + } + + if (this.headers['content-type'].match(/multipart/i)) { + var m; + if (m = this.headers['content-type'].match(/boundary=(?:"([^"]+)"|([^;]+))/i)) { + this._initMultipart(m[1] || m[2]); + } else { + this._error(new Error('bad content-type header, no multipart boundary')); + } + return; + } + + this._error(new Error('bad content-type header, unknown content-type: '+this.headers['content-type'])); +}; + +IncomingForm.prototype._error = function(err) { + if (this.error) { + return; + } + + this.error = err; + this.pause(); + this.emit('error', err); +}; + +IncomingForm.prototype._parseContentLength = function() { + if (this.headers['content-length']) { + this.bytesReceived = 0; + this.bytesExpected = parseInt(this.headers['content-length'], 10); + this.emit('progress', this.bytesReceived, this.bytesExpected); + } +}; + +IncomingForm.prototype._newParser = function() { + return new MultipartParser(); +}; + +IncomingForm.prototype._initMultipart = function(boundary) { + this.type = 'multipart'; + + var parser = new MultipartParser(), + self = this, + headerField, + headerValue, + part; + + parser.initWithBoundary(boundary); + + parser.onPartBegin = function() { + part = new Stream(); + part.readable = true; + part.headers = {}; + part.name = null; + part.filename = null; + part.mime = null; + headerField = ''; + headerValue = ''; + }; + + parser.onHeaderField = function(b, start, end) { + headerField += b.toString(self.encoding, start, end); + }; + + parser.onHeaderValue = function(b, start, end) { + headerValue += b.toString(self.encoding, start, end); + }; + + parser.onHeaderEnd = function() { + headerField = headerField.toLowerCase(); + part.headers[headerField] = headerValue; + + var m; + if (headerField == 'content-disposition') { + if (m = headerValue.match(/name="([^"]+)"/i)) { + part.name = m[1]; + } + + part.filename = self._fileName(headerValue); + } else if (headerField == 'content-type') { + part.mime = headerValue; + } + + headerField = ''; + headerValue = ''; + }; + + parser.onHeadersEnd = function() { + self.onPart(part); + }; + + parser.onPartData = function(b, start, end) { + part.emit('data', b.slice(start, end)); + }; + + parser.onPartEnd = function() { + part.emit('end'); + }; + + parser.onEnd = function() { + self.ended = true; + self._maybeEnd(); + }; + + this._parser = parser; +}; + +IncomingForm.prototype._fileName = function(headerValue) { + var m = headerValue.match(/filename="(.*?)"($|; )/i) + if (!m) return; + + var filename = m[1].substr(m[1].lastIndexOf('\\') + 1); + filename = filename.replace(/%22/g, '"'); + filename = filename.replace(/&#([\d]{4});/g, function(m, code) { + return String.fromCharCode(code); + }); + return filename; +}; + +IncomingForm.prototype._initUrlencoded = function() { + this.type = 'urlencoded'; + + var parser = new QuerystringParser() + , self = this; + + parser.onField = function(key, val) { + self.emit('field', key, val); + }; + + parser.onEnd = function() { + self.ended = true; + self._maybeEnd(); + }; + + this._parser = parser; +}; + +IncomingForm.prototype._uploadPath = function(filename) { + var name = ''; + for (var i = 0; i < 32; i++) { + name += Math.floor(Math.random() * 16).toString(16); + } + + if (this.keepExtensions) { + var ext = path.extname(filename); + ext = ext.replace(/(\.[a-z0-9]+).*/, '$1') + + name += ext; + } + + return path.join(this.uploadDir, name); +}; + +IncomingForm.prototype._maybeEnd = function() { + if (!this.ended || this._flushing) { + return; + } + + this.emit('end'); +}; diff --git a/node_modules/coalesce/node_modules/formidable/lib/index.js b/node_modules/coalesce/node_modules/formidable/lib/index.js new file mode 100644 index 00000000..7a6e3e10 --- /dev/null +++ b/node_modules/coalesce/node_modules/formidable/lib/index.js @@ -0,0 +1,3 @@ +var IncomingForm = require('./incoming_form').IncomingForm; +IncomingForm.IncomingForm = IncomingForm; +module.exports = IncomingForm; diff --git a/node_modules/coalesce/node_modules/formidable/lib/multipart_parser.js b/node_modules/coalesce/node_modules/formidable/lib/multipart_parser.js new file mode 100644 index 00000000..9ca567cd --- /dev/null +++ b/node_modules/coalesce/node_modules/formidable/lib/multipart_parser.js @@ -0,0 +1,312 @@ +var Buffer = require('buffer').Buffer, + s = 0, + S = + { PARSER_UNINITIALIZED: s++, + START: s++, + START_BOUNDARY: s++, + HEADER_FIELD_START: s++, + HEADER_FIELD: s++, + HEADER_VALUE_START: s++, + HEADER_VALUE: s++, + HEADER_VALUE_ALMOST_DONE: s++, + HEADERS_ALMOST_DONE: s++, + PART_DATA_START: s++, + PART_DATA: s++, + PART_END: s++, + END: s++, + }, + + f = 1, + F = + { PART_BOUNDARY: f, + LAST_BOUNDARY: f *= 2, + }, + + LF = 10, + CR = 13, + SPACE = 32, + HYPHEN = 45, + COLON = 58, + A = 97, + Z = 122, + + lower = function(c) { + return c | 0x20; + }; + +for (var s in S) { + exports[s] = S[s]; +} + +function MultipartParser() { + this.boundary = null; + this.boundaryChars = null; + this.lookbehind = null; + this.state = S.PARSER_UNINITIALIZED; + + this.index = null; + this.flags = 0; +}; +exports.MultipartParser = MultipartParser; + +MultipartParser.stateToString = function(stateNumber) { + for (var state in S) { + var number = S[state]; + if (number === stateNumber) return state; + } +}; + +MultipartParser.prototype.initWithBoundary = function(str) { + this.boundary = new Buffer(str.length+4); + this.boundary.write('\r\n--', 'ascii', 0); + this.boundary.write(str, 'ascii', 4); + this.lookbehind = new Buffer(this.boundary.length+8); + this.state = S.START; + + this.boundaryChars = {}; + for (var i = 0; i < this.boundary.length; i++) { + this.boundaryChars[this.boundary[i]] = true; + } +}; + +MultipartParser.prototype.write = function(buffer) { + var self = this, + i = 0, + len = buffer.length, + prevIndex = this.index, + index = this.index, + state = this.state, + flags = this.flags, + lookbehind = this.lookbehind, + boundary = this.boundary, + boundaryChars = this.boundaryChars, + boundaryLength = this.boundary.length, + boundaryEnd = boundaryLength - 1, + bufferLength = buffer.length, + c, + cl, + + mark = function(name) { + self[name+'Mark'] = i; + }, + clear = function(name) { + delete self[name+'Mark']; + }, + callback = function(name, buffer, start, end) { + if (start !== undefined && start === end) { + return; + } + + var callbackSymbol = 'on'+name.substr(0, 1).toUpperCase()+name.substr(1); + if (callbackSymbol in self) { + self[callbackSymbol](buffer, start, end); + } + }, + dataCallback = function(name, clear) { + var markSymbol = name+'Mark'; + if (!(markSymbol in self)) { + return; + } + + if (!clear) { + callback(name, buffer, self[markSymbol], buffer.length); + self[markSymbol] = 0; + } else { + callback(name, buffer, self[markSymbol], i); + delete self[markSymbol]; + } + }; + + for (i = 0; i < len; i++) { + c = buffer[i]; + switch (state) { + case S.PARSER_UNINITIALIZED: + return i; + case S.START: + index = 0; + state = S.START_BOUNDARY; + case S.START_BOUNDARY: + if (index == boundary.length - 2) { + if (c != CR) { + return i; + } + index++; + break; + } else if (index - 1 == boundary.length - 2) { + if (c != LF) { + return i; + } + index = 0; + callback('partBegin'); + state = S.HEADER_FIELD_START; + break; + } + + if (c != boundary[index+2]) { + return i; + } + index++; + break; + case S.HEADER_FIELD_START: + state = S.HEADER_FIELD; + mark('headerField'); + index = 0; + case S.HEADER_FIELD: + if (c == CR) { + clear('headerField'); + state = S.HEADERS_ALMOST_DONE; + break; + } + + index++; + if (c == HYPHEN) { + break; + } + + if (c == COLON) { + if (index == 1) { + // empty header field + return i; + } + dataCallback('headerField', true); + state = S.HEADER_VALUE_START; + break; + } + + cl = lower(c); + if (cl < A || cl > Z) { + return i; + } + break; + case S.HEADER_VALUE_START: + if (c == SPACE) { + break; + } + + mark('headerValue'); + state = S.HEADER_VALUE; + case S.HEADER_VALUE: + if (c == CR) { + dataCallback('headerValue', true); + callback('headerEnd'); + state = S.HEADER_VALUE_ALMOST_DONE; + } + break; + case S.HEADER_VALUE_ALMOST_DONE: + if (c != LF) { + return i; + } + state = S.HEADER_FIELD_START; + break; + case S.HEADERS_ALMOST_DONE: + if (c != LF) { + return i; + } + + callback('headersEnd'); + state = S.PART_DATA_START; + break; + case S.PART_DATA_START: + state = S.PART_DATA + mark('partData'); + case S.PART_DATA: + prevIndex = index; + + if (index == 0) { + // boyer-moore derrived algorithm to safely skip non-boundary data + i += boundaryEnd; + while (i < bufferLength && !(buffer[i] in boundaryChars)) { + i += boundaryLength; + } + i -= boundaryEnd; + c = buffer[i]; + } + + if (index < boundary.length) { + if (boundary[index] == c) { + if (index == 0) { + dataCallback('partData', true); + } + index++; + } else { + index = 0; + } + } else if (index == boundary.length) { + index++; + if (c == CR) { + // CR = part boundary + flags |= F.PART_BOUNDARY; + } else if (c == HYPHEN) { + // HYPHEN = end boundary + flags |= F.LAST_BOUNDARY; + } else { + index = 0; + } + } else if (index - 1 == boundary.length) { + if (flags & F.PART_BOUNDARY) { + index = 0; + if (c == LF) { + // unset the PART_BOUNDARY flag + flags &= ~F.PART_BOUNDARY; + callback('partEnd'); + callback('partBegin'); + state = S.HEADER_FIELD_START; + break; + } + } else if (flags & F.LAST_BOUNDARY) { + if (c == HYPHEN) { + callback('partEnd'); + callback('end'); + state = S.END; + } else { + index = 0; + } + } else { + index = 0; + } + } + + if (index > 0) { + // when matching a possible boundary, keep a lookbehind reference + // in case it turns out to be a false lead + lookbehind[index-1] = c; + } else if (prevIndex > 0) { + // if our boundary turned out to be rubbish, the captured lookbehind + // belongs to partData + callback('partData', lookbehind, 0, prevIndex); + prevIndex = 0; + mark('partData'); + + // reconsider the current character even so it interrupted the sequence + // it could be the beginning of a new sequence + i--; + } + + break; + case S.END: + break; + default: + return i; + } + } + + dataCallback('headerField'); + dataCallback('headerValue'); + dataCallback('partData'); + + this.index = index; + this.state = state; + this.flags = flags; + + return len; +}; + +MultipartParser.prototype.end = function() { + if (this.state != S.END) { + return new Error('MultipartParser.end(): stream ended unexpectedly: ' + this.explain()); + } +}; + +MultipartParser.prototype.explain = function() { + return 'state = ' + MultipartParser.stateToString(this.state); +}; diff --git a/node_modules/coalesce/node_modules/formidable/lib/querystring_parser.js b/node_modules/coalesce/node_modules/formidable/lib/querystring_parser.js new file mode 100644 index 00000000..63f109ec --- /dev/null +++ b/node_modules/coalesce/node_modules/formidable/lib/querystring_parser.js @@ -0,0 +1,25 @@ +if (global.GENTLY) require = GENTLY.hijack(require); + +// This is a buffering parser, not quite as nice as the multipart one. +// If I find time I'll rewrite this to be fully streaming as well +var querystring = require('querystring'); + +function QuerystringParser() { + this.buffer = ''; +}; +exports.QuerystringParser = QuerystringParser; + +QuerystringParser.prototype.write = function(buffer) { + this.buffer += buffer.toString('ascii'); + return buffer.length; +}; + +QuerystringParser.prototype.end = function() { + var fields = querystring.parse(this.buffer); + for (var field in fields) { + this.onField(field, fields[field]); + } + this.buffer = ''; + + this.onEnd(); +}; \ No newline at end of file diff --git a/node_modules/coalesce/node_modules/formidable/lib/util.js b/node_modules/coalesce/node_modules/formidable/lib/util.js new file mode 100644 index 00000000..e9493e9b --- /dev/null +++ b/node_modules/coalesce/node_modules/formidable/lib/util.js @@ -0,0 +1,6 @@ +// Backwards compatibility ... +try { + module.exports = require('util'); +} catch (e) { + module.exports = require('sys'); +} diff --git a/node_modules/coalesce/node_modules/formidable/node-gently/Makefile b/node_modules/coalesce/node_modules/formidable/node-gently/Makefile new file mode 100644 index 00000000..01f71404 --- /dev/null +++ b/node_modules/coalesce/node_modules/formidable/node-gently/Makefile @@ -0,0 +1,4 @@ +test: + @find test/simple/test-*.js | xargs -n 1 -t node + +.PHONY: test \ No newline at end of file diff --git a/node_modules/coalesce/node_modules/formidable/node-gently/Readme.md b/node_modules/coalesce/node_modules/formidable/node-gently/Readme.md new file mode 100644 index 00000000..f8f0c664 --- /dev/null +++ b/node_modules/coalesce/node_modules/formidable/node-gently/Readme.md @@ -0,0 +1,167 @@ +# Gently + +## Purpose + +A node.js module that helps with stubbing and behavior verification. It allows you to test the most remote and nested corners of your code while keeping being fully unobtrusive. + +## Features + +* Overwrite and stub individual object functions +* Verify that all expected calls have been made in the expected order +* Restore stubbed functions to their original behavior +* Detect object / class names from obj.constructor.name and obj.toString() +* Hijack any required module function or class constructor + +## Installation + +Via [npm](http://github.com/isaacs/npm): + + npm install gently@latest + +## Example + +Make sure your dog is working properly: + + function Dog() {} + + Dog.prototype.seeCat = function() { + this.bark('whuf, whuf'); + this.run(); + } + + Dog.prototype.bark = function(bark) { + require('sys').puts(bark); + } + + var gently = new (require('gently')) + , assert = require('assert') + , dog = new Dog(); + + gently.expect(dog, 'bark', function(bark) { + assert.equal(bark, 'whuf, whuf'); + }); + gently.expect(dog, 'run'); + + dog.seeCat(); + +You can also easily test event emitters with this, for example a simple sequence of 2 events emitted by `fs.WriteStream`: + + var gently = new (require('gently')) + , stream = new (require('fs').WriteStream)('my_file.txt'); + + gently.expect(stream, 'emit', function(event) { + assert.equal(event, 'open'); + }); + + gently.expect(stream, 'emit', function(event) { + assert.equal(event, 'drain'); + }); + +For a full read world example, check out this test case: [test-incoming-form.js](http://github.com/felixge/node-formidable/blob/master/test/simple/test-incoming-form.js) (in [node-formdiable](http://github.com/felixge/node-formidable)). + +## API + +### Gently + +#### new Gently() + +Creates a new gently instance. It listens to the process `'exit'` event to make sure all expectations have been verified. + +#### gently.expect(obj, method, [[count], stubFn]) + +Creates an expectation for an objects method to be called. You can optionally specify the call `count` you are expecting, as well as `stubFn` function that will run instead of the original function. + +Returns a reference to the function that is getting overwritten. + +#### gently.expect([count], stubFn) + +Returns a function that is supposed to be executed `count` times, delegating any calls to the provided `stubFn` function. Naming your stubFn closure will help to properly diagnose errors that are being thrown: + + childProcess.exec('ls', gently.expect(function lsCallback(code) { + assert.equal(0, code); + })); + +#### gently.restore(obj, method) + +Restores an object method that has been previously overwritten using `gently.expect()`. + +#### gently.hijack(realRequire) + +Returns a new require functions that catches a reference to all required modules into `gently.hijacked`. + +To use this function, include a line like this in your `'my-module.js'`. + + if (global.GENTLY) require = GENTLY.hijack(require); + + var sys = require('sys'); + exports.hello = function() { + sys.log('world'); + }; + +Now you can write a test for the module above: + + var gently = global.GENTLY = new (require('gently')) + , myModule = require('./my-module'); + + gently.expect(gently.hijacked.sys, 'log', function(str) { + assert.equal(str, 'world'); + }); + + myModule.hello(); + +#### gently.stub(location, [exportsName]) + +Returns a stub class that will be used instead of the real class from the module at `location` with the given `exportsName`. + +This allows to test an OOP version of the previous example, where `'my-module.js'`. + + if (global.GENTLY) require = GENTLY.hijack(require); + + var World = require('./world'); + + exports.hello = function() { + var world = new World(); + world.hello(); + } + +And `world.js` looks like this: + + var sys = require('sys'); + + function World() { + + } + module.exports = World; + + World.prototype.hello = function() { + sys.log('world'); + }; + +Testing `'my-module.js'` can now easily be accomplished: + + var gently = global.GENTLY = new (require('gently')) + , WorldStub = gently.stub('./world') + , myModule = require('./my-module') + , WORLD; + + gently.expect(WorldStub, 'new', function() { + WORLD = this; + }); + + gently.expect(WORLD, 'hello'); + + myModule.hello(); + +#### gently.hijacked + +An object that holds the references to all hijacked modules. + +#### gently.verify([msg]) + +Verifies that all expectations of this gently instance have been satisfied. If not called manually, this method is called when the process `'exit'` event is fired. + +If `msg` is given, it will appear in any error that might be thrown. + +## License + +Gently is licensed under the MIT license. \ No newline at end of file diff --git a/node_modules/coalesce/node_modules/formidable/node-gently/example/dog.js b/node_modules/coalesce/node_modules/formidable/node-gently/example/dog.js new file mode 100644 index 00000000..022fae0c --- /dev/null +++ b/node_modules/coalesce/node_modules/formidable/node-gently/example/dog.js @@ -0,0 +1,22 @@ +require('../test/common'); +function Dog() {} + +Dog.prototype.seeCat = function() { + this.bark('whuf, whuf'); + this.run(); +} + +Dog.prototype.bark = function(bark) { + require('sys').puts(bark); +} + +var gently = new (require('gently')) + , assert = require('assert') + , dog = new Dog(); + +gently.expect(dog, 'bark', function(bark) { + assert.equal(bark, 'whuf, whuf'); +}); +gently.expect(dog, 'run'); + +dog.seeCat(); \ No newline at end of file diff --git a/node_modules/coalesce/node_modules/formidable/node-gently/example/event_emitter.js b/node_modules/coalesce/node_modules/formidable/node-gently/example/event_emitter.js new file mode 100644 index 00000000..7def134f --- /dev/null +++ b/node_modules/coalesce/node_modules/formidable/node-gently/example/event_emitter.js @@ -0,0 +1,11 @@ +require('../test/common'); +var gently = new (require('gently')) + , stream = new (require('fs').WriteStream)('my_file.txt'); + +gently.expect(stream, 'emit', function(event) { + assert.equal(event, 'open'); +}); + +gently.expect(stream, 'emit', function(event) { + assert.equal(event, 'drain'); +}); \ No newline at end of file diff --git a/node_modules/coalesce/node_modules/formidable/node-gently/index.js b/node_modules/coalesce/node_modules/formidable/node-gently/index.js new file mode 100644 index 00000000..69122bdb --- /dev/null +++ b/node_modules/coalesce/node_modules/formidable/node-gently/index.js @@ -0,0 +1 @@ +module.exports = require('./lib/gently'); \ No newline at end of file diff --git a/node_modules/coalesce/node_modules/formidable/node-gently/lib/gently/gently.js b/node_modules/coalesce/node_modules/formidable/node-gently/lib/gently/gently.js new file mode 100644 index 00000000..8af0e1ec --- /dev/null +++ b/node_modules/coalesce/node_modules/formidable/node-gently/lib/gently/gently.js @@ -0,0 +1,184 @@ +var path = require('path'); + +function Gently() { + this.expectations = []; + this.hijacked = {}; + + var self = this; + process.addListener('exit', function() { + self.verify('process exit'); + }); +}; +module.exports = Gently; + +Gently.prototype.stub = function(location, exportsName) { + function Stub() { + return Stub['new'].apply(this, arguments); + }; + + Stub['new'] = function () {}; + + var stubName = 'require('+JSON.stringify(location)+')'; + if (exportsName) { + stubName += '.'+exportsName; + } + + Stub.prototype.toString = Stub.toString = function() { + return stubName; + }; + + var exports = this.hijacked[location] || {}; + if (exportsName) { + exports[exportsName] = Stub; + } else { + exports = Stub; + } + + this.hijacked[location] = exports; + return Stub; +}; + +Gently.prototype.hijack = function(realRequire) { + var self = this; + return function(location) { + return self.hijacked[location] = (self.hijacked[location]) + ? self.hijacked[location] + : realRequire(location); + }; +}; + +Gently.prototype.expect = function(obj, method, count, stubFn) { + if (typeof obj != 'function' && typeof obj != 'object' && typeof obj != 'number') { + throw new Error + ( 'Bad 1st argument for gently.expect(), ' + + 'object, function, or number expected, got: '+(typeof obj) + ); + } else if (typeof obj == 'function' && (typeof method != 'string')) { + // expect(stubFn) interface + stubFn = obj; + obj = null; + method = null; + count = 1; + } else if (typeof method == 'function') { + // expect(count, stubFn) interface + count = obj; + stubFn = method; + obj = null; + method = null; + } else if (typeof count == 'function') { + // expect(obj, method, stubFn) interface + stubFn = count; + count = 1; + } else if (count === undefined) { + // expect(obj, method) interface + count = 1; + } + + var name = this._name(obj, method, stubFn); + this.expectations.push({obj: obj, method: method, stubFn: stubFn, name: name, count: count}); + + var self = this; + function delegate() { + return self._stubFn(this, obj, method, name, Array.prototype.slice.call(arguments)); + } + + if (!obj) { + return delegate; + } + + var original = (obj[method]) + ? obj[method]._original || obj[method] + : undefined; + + obj[method] = delegate; + return obj[method]._original = original; +}; + +Gently.prototype.restore = function(obj, method) { + if (!obj[method] || !obj[method]._original) { + throw new Error(this._name(obj, method)+' is not gently stubbed'); + } + obj[method] = obj[method]._original; +}; + +Gently.prototype.verify = function(msg) { + if (!this.expectations.length) { + return; + } + + var validExpectations = []; + for (var i = 0, l = this.expectations.length; i < l; i++) { + var expectation = this.expectations[i]; + + if (expectation.count > 0) { + validExpectations.push(expectation); + } + } + + this.expectations = []; // reset so that no duplicate verification attempts are made + + if (!validExpectations.length) { + return; + } + + var expectation = validExpectations[0]; + + throw new Error + ( 'Expected call to '+expectation.name+' did not happen' + + ( (msg) + ? ' ('+msg+')' + : '' + ) + ); +}; + +Gently.prototype._stubFn = function(self, obj, method, name, args) { + var expectation = this.expectations[0], obj, method; + + if (!expectation) { + throw new Error('Unexpected call to '+name+', no call was expected'); + } + + if (expectation.obj !== obj || expectation.method !== method) { + throw new Error('Unexpected call to '+name+', expected call to '+ expectation.name); + } + + expectation.count -= 1; + if (expectation.count === 0) { + this.expectations.shift(); + + // autorestore original if its not a closure + // and no more expectations on that object + var has_more_expectations = this.expectations.reduce(function (memo, expectation) { + return memo || (expectation.obj === obj && expectation.method === method); + }, false); + if (obj !== null && method !== null && !has_more_expectations) { + if (typeof obj[method]._original !== 'undefined') { + obj[method] = obj[method]._original; + delete obj[method]._original; + } else { + delete obj[method]; + } + } + } + + if (expectation.stubFn) { + return expectation.stubFn.apply(self, args); + } +}; + +Gently.prototype._name = function(obj, method, stubFn) { + if (obj) { + var objectName = obj.toString(); + if (objectName == '[object Object]' && obj.constructor.name) { + objectName = '['+obj.constructor.name+']'; + } + return (objectName)+'.'+method+'()'; + } + + if (stubFn.name) { + return stubFn.name+'()'; + } + + return '>> '+stubFn.toString()+' <<'; +}; diff --git a/node_modules/coalesce/node_modules/formidable/node-gently/lib/gently/index.js b/node_modules/coalesce/node_modules/formidable/node-gently/lib/gently/index.js new file mode 100644 index 00000000..64c1977b --- /dev/null +++ b/node_modules/coalesce/node_modules/formidable/node-gently/lib/gently/index.js @@ -0,0 +1 @@ +module.exports = require('./gently'); \ No newline at end of file diff --git a/node_modules/coalesce/node_modules/formidable/node-gently/package.json b/node_modules/coalesce/node_modules/formidable/node-gently/package.json new file mode 100644 index 00000000..9c1b7a00 --- /dev/null +++ b/node_modules/coalesce/node_modules/formidable/node-gently/package.json @@ -0,0 +1,14 @@ +{ + "name": "gently", + "version": "0.9.2", + "directories": { + "lib": "./lib/gently" + }, + "main": "./lib/gently/index", + "dependencies": {}, + "devDependencies": {}, + "engines": { + "node": "*" + }, + "optionalDependencies": {} +} diff --git a/node_modules/coalesce/node_modules/formidable/node-gently/test/common.js b/node_modules/coalesce/node_modules/formidable/node-gently/test/common.js new file mode 100644 index 00000000..978b5c53 --- /dev/null +++ b/node_modules/coalesce/node_modules/formidable/node-gently/test/common.js @@ -0,0 +1,8 @@ +var path = require('path') + , sys = require('sys'); + +require.paths.unshift(path.dirname(__dirname)+'/lib'); + +global.puts = sys.puts; +global.p = function() {sys.error(sys.inspect.apply(null, arguments))};; +global.assert = require('assert'); \ No newline at end of file diff --git a/node_modules/coalesce/node_modules/formidable/node-gently/test/simple/test-gently.js b/node_modules/coalesce/node_modules/formidable/node-gently/test/simple/test-gently.js new file mode 100644 index 00000000..4f8fe2dd --- /dev/null +++ b/node_modules/coalesce/node_modules/formidable/node-gently/test/simple/test-gently.js @@ -0,0 +1,348 @@ +require('../common'); +var Gently = require('gently') + , gently; + +function test(test) { + process.removeAllListeners('exit'); + gently = new Gently(); + test(); +} + +test(function constructor() { + assert.deepEqual(gently.expectations, []); + assert.deepEqual(gently.hijacked, {}); + assert.equal(gently.constructor.name, 'Gently'); +}); + +test(function expectBadArgs() { + var BAD_ARG = 'oh no'; + try { + gently.expect(BAD_ARG); + assert.ok(false, 'throw needs to happen'); + } catch (e) { + assert.equal(e.message, 'Bad 1st argument for gently.expect(), object, function, or number expected, got: '+(typeof BAD_ARG)); + } +}); + +test(function expectObjMethod() { + var OBJ = {}, NAME = 'foobar'; + OBJ.foo = function(x) { + return x; + }; + + gently._name = function() { + return NAME; + }; + + var original = OBJ.foo + , stubFn = function() {}; + + (function testAddOne() { + assert.strictEqual(gently.expect(OBJ, 'foo', stubFn), original); + + assert.equal(gently.expectations.length, 1); + var expectation = gently.expectations[0]; + assert.strictEqual(expectation.obj, OBJ); + assert.strictEqual(expectation.method, 'foo'); + assert.strictEqual(expectation.stubFn, stubFn); + assert.strictEqual(expectation.name, NAME); + assert.strictEqual(OBJ.foo._original, original); + })(); + + (function testAddTwo() { + gently.expect(OBJ, 'foo', 2, stubFn); + assert.equal(gently.expectations.length, 2); + assert.strictEqual(OBJ.foo._original, original); + })(); + + (function testAddOneWithoutMock() { + gently.expect(OBJ, 'foo'); + assert.equal(gently.expectations.length, 3); + })(); + + var stubFnCalled = 0, SELF = {}; + gently._stubFn = function(self, obj, method, name, args) { + stubFnCalled++; + assert.strictEqual(self, SELF); + assert.strictEqual(obj, OBJ); + assert.strictEqual(method, 'foo'); + assert.strictEqual(name, NAME); + assert.deepEqual(args, [1, 2]); + return 23; + }; + assert.equal(OBJ.foo.apply(SELF, [1, 2]), 23); + assert.equal(stubFnCalled, 1); +}); + +test(function expectClosure() { + var NAME = 'MY CLOSURE'; + function closureFn() {}; + + gently._name = function() { + return NAME; + }; + + var fn = gently.expect(closureFn); + assert.equal(gently.expectations.length, 1); + var expectation = gently.expectations[0]; + assert.strictEqual(expectation.obj, null); + assert.strictEqual(expectation.method, null); + assert.strictEqual(expectation.stubFn, closureFn); + assert.strictEqual(expectation.name, NAME); + + var stubFnCalled = 0, SELF = {}; + gently._stubFn = function(self, obj, method, name, args) { + stubFnCalled++; + assert.strictEqual(self, SELF); + assert.strictEqual(obj, null); + assert.strictEqual(method, null); + assert.strictEqual(name, NAME); + assert.deepEqual(args, [1, 2]); + return 23; + }; + assert.equal(fn.apply(SELF, [1, 2]), 23); + assert.equal(stubFnCalled, 1); +}); + +test(function expectClosureCount() { + var stubFnCalled = 0; + function closureFn() {stubFnCalled++}; + + var fn = gently.expect(2, closureFn); + assert.equal(gently.expectations.length, 1); + fn(); + assert.equal(gently.expectations.length, 1); + fn(); + assert.equal(stubFnCalled, 2); +}); + +test(function restore() { + var OBJ = {}, NAME = '[my object].myFn()'; + OBJ.foo = function(x) { + return x; + }; + + gently._name = function() { + return NAME; + }; + + var original = OBJ.foo; + gently.expect(OBJ, 'foo'); + gently.restore(OBJ, 'foo'); + assert.strictEqual(OBJ.foo, original); + + (function testError() { + try { + gently.restore(OBJ, 'foo'); + assert.ok(false, 'throw needs to happen'); + } catch (e) { + assert.equal(e.message, NAME+' is not gently stubbed'); + } + })(); +}); + +test(function _stubFn() { + var OBJ1 = {toString: function() {return '[OBJ 1]'}} + , OBJ2 = {toString: function() {return '[OBJ 2]'}, foo: function () {return 'bar';}} + , SELF = {}; + + gently.expect(OBJ1, 'foo', function(x) { + assert.strictEqual(this, SELF); + return x * 2; + }); + + assert.equal(gently._stubFn(SELF, OBJ1, 'foo', 'dummy_name', [5]), 10); + + (function testAutorestore() { + assert.equal(OBJ2.foo(), 'bar'); + + gently.expect(OBJ2, 'foo', function() { + return 'stubbed foo'; + }); + + gently.expect(OBJ2, 'foo', function() { + return "didn't restore yet"; + }); + + assert.equal(gently._stubFn(SELF, OBJ2, 'foo', 'dummy_name', []), 'stubbed foo'); + assert.equal(gently._stubFn(SELF, OBJ2, 'foo', 'dummy_name', []), "didn't restore yet"); + assert.equal(OBJ2.foo(), 'bar'); + assert.deepEqual(gently.expectations, []); + })(); + + (function testNoMoreCallExpected() { + try { + gently._stubFn(SELF, OBJ1, 'foo', 'dummy_name', [5]); + assert.ok(false, 'throw needs to happen'); + } catch (e) { + assert.equal(e.message, 'Unexpected call to dummy_name, no call was expected'); + } + })(); + + (function testDifferentCallExpected() { + gently.expect(OBJ2, 'bar'); + try { + gently._stubFn(SELF, OBJ1, 'foo', 'dummy_name', [5]); + assert.ok(false, 'throw needs to happen'); + } catch (e) { + assert.equal(e.message, 'Unexpected call to dummy_name, expected call to '+gently._name(OBJ2, 'bar')); + } + + assert.equal(gently.expectations.length, 1); + })(); + + (function testNoMockCallback() { + OBJ2.bar(); + assert.equal(gently.expectations.length, 0); + })(); +}); + +test(function stub() { + var LOCATION = './my_class'; + + (function testRegular() { + var Stub = gently.stub(LOCATION); + assert.ok(Stub instanceof Function); + assert.strictEqual(gently.hijacked[LOCATION], Stub); + assert.ok(Stub['new'] instanceof Function); + assert.equal(Stub.toString(), 'require('+JSON.stringify(LOCATION)+')'); + + (function testConstructor() { + var newCalled = 0 + , STUB + , ARGS = ['foo', 'bar']; + + Stub['new'] = function(a, b) { + assert.equal(a, ARGS[0]); + assert.equal(b, ARGS[1]); + newCalled++; + STUB = this; + }; + + var stub = new Stub(ARGS[0], ARGS[1]); + assert.strictEqual(stub, STUB); + assert.equal(newCalled, 1); + assert.equal(stub.toString(), 'require('+JSON.stringify(LOCATION)+')'); + })(); + + (function testUseReturnValueAsInstance() { + var R = {}; + + Stub['new'] = function() { + return R; + }; + + var stub = new Stub(); + assert.strictEqual(stub, R); + + })(); + })(); + + var EXPORTS_NAME = 'MyClass'; + test(function testExportsName() { + var Stub = gently.stub(LOCATION, EXPORTS_NAME); + assert.strictEqual(gently.hijacked[LOCATION][EXPORTS_NAME], Stub); + assert.equal(Stub.toString(), 'require('+JSON.stringify(LOCATION)+').'+EXPORTS_NAME); + + (function testConstructor() { + var stub = new Stub(); + assert.equal(Stub.toString(), 'require('+JSON.stringify(LOCATION)+').'+EXPORTS_NAME); + })(); + }); +}); + +test(function hijack() { + var LOCATION = './foo' + , REQUIRE_CALLS = 0 + , EXPORTS = {} + , REQUIRE = function() { + REQUIRE_CALLS++; + return EXPORTS; + }; + + var hijackedRequire = gently.hijack(REQUIRE); + hijackedRequire(LOCATION); + assert.strictEqual(gently.hijacked[LOCATION], EXPORTS); + + assert.equal(REQUIRE_CALLS, 1); + + // make sure we are caching the hijacked module + hijackedRequire(LOCATION); + assert.equal(REQUIRE_CALLS, 1); +}); + +test(function verify() { + var OBJ = {toString: function() {return '[OBJ]'}}; + gently.verify(); + + gently.expect(OBJ, 'foo'); + try { + gently.verify(); + assert.ok(false, 'throw needs to happen'); + } catch (e) { + assert.equal(e.message, 'Expected call to [OBJ].foo() did not happen'); + } + + try { + gently.verify('foo'); + assert.ok(false, 'throw needs to happen'); + } catch (e) { + assert.equal(e.message, 'Expected call to [OBJ].foo() did not happen (foo)'); + } +}); + +test(function processExit() { + var verifyCalled = 0; + gently.verify = function(msg) { + verifyCalled++; + assert.equal(msg, 'process exit'); + }; + + process.emit('exit'); + assert.equal(verifyCalled, 1); +}); + +test(function _name() { + (function testNamedClass() { + function Foo() {}; + var foo = new Foo(); + assert.equal(gently._name(foo, 'bar'), '[Foo].bar()'); + })(); + + (function testToStringPreference() { + function Foo() {}; + Foo.prototype.toString = function() { + return '[Superman 123]'; + }; + var foo = new Foo(); + assert.equal(gently._name(foo, 'bar'), '[Superman 123].bar()'); + })(); + + (function testUnamedClass() { + var Foo = function() {}; + var foo = new Foo(); + assert.equal(gently._name(foo, 'bar'), foo.toString()+'.bar()'); + })(); + + (function testNamedClosure() { + function myClosure() {}; + assert.equal(gently._name(null, null, myClosure), myClosure.name+'()'); + })(); + + (function testUnamedClosure() { + var myClosure = function() {2+2 == 5}; + assert.equal(gently._name(null, null, myClosure), '>> '+myClosure.toString()+' <<'); + })(); +}); + +test(function verifyExpectNone() { + var OBJ = {toString: function() {return '[OBJ]'}}; + gently.verify(); + + gently.expect(OBJ, 'foo', 0); + try { + gently.verify(); + } catch (e) { + assert.fail('Exception should not have been thrown'); + } +}); \ No newline at end of file diff --git a/node_modules/coalesce/node_modules/formidable/package.json b/node_modules/coalesce/node_modules/formidable/package.json new file mode 100644 index 00000000..177f84f0 --- /dev/null +++ b/node_modules/coalesce/node_modules/formidable/package.json @@ -0,0 +1,28 @@ +{ + "name": "formidable", + "version": "1.0.11", + "dependencies": {}, + "devDependencies": { + "gently": "0.8.0", + "findit": "0.1.1", + "hashish": "0.0.4", + "urun": "0.0.4", + "utest": "0.0.3" + }, + "directories": { + "lib": "./lib" + }, + "main": "./lib/index", + "scripts": { + "test": "make test" + }, + "engines": { + "node": "*" + }, + "optionalDependencies": {}, + "readme": "# Formidable\n\n[![Build Status](https://secure.travis-ci.org/felixge/node-formidable.png?branch=master)](http://travis-ci.org/felixge/node-formidable)\n\n## Purpose\n\nA node.js module for parsing form data, especially file uploads.\n\n## Current status\n\nThis module was developed for [Transloadit](http://transloadit.com/), a service focused on uploading\nand encoding images and videos. It has been battle-tested against hundreds of GB of file uploads from\na large variety of clients and is considered production-ready.\n\n## Features\n\n* Fast (~500mb/sec), non-buffering multipart parser\n* Automatically writing file uploads to disk\n* Low memory footprint\n* Graceful error handling\n* Very high test coverage\n\n## Changelog\n\n### v1.0.9\n\n* Emit progress when content length header parsed (Tim Koschützki)\n* Fix Readme syntax due to GitHub changes (goob)\n* Replace references to old 'sys' module in Readme with 'util' (Peter Sugihara)\n\n### v1.0.8\n\n* Strip potentially unsafe characters when using `keepExtensions: true`.\n* Switch to utest / urun for testing\n* Add travis build\n\n### v1.0.7\n\n* Remove file from package that was causing problems when installing on windows. (#102)\n* Fix typos in Readme (Jason Davies).\n\n### v1.0.6\n\n* Do not default to the default to the field name for file uploads where\n filename=\"\".\n\n### v1.0.5\n\n* Support filename=\"\" in multipart parts\n* Explain unexpected end() errors in parser better\n\n**Note:** Starting with this version, formidable emits 'file' events for empty\nfile input fields. Previously those were incorrectly emitted as regular file\ninput fields with value = \"\".\n\n### v1.0.4\n\n* Detect a good default tmp directory regardless of platform. (#88)\n\n### v1.0.3\n\n* Fix problems with utf8 characters (#84) / semicolons in filenames (#58)\n* Small performance improvements\n* New test suite and fixture system\n\n### v1.0.2\n\n* Exclude node\\_modules folder from git\n* Implement new `'aborted'` event\n* Fix files in example folder to work with recent node versions\n* Make gently a devDependency\n\n[See Commits](https://github.com/felixge/node-formidable/compare/v1.0.1...v1.0.2)\n\n### v1.0.1\n\n* Fix package.json to refer to proper main directory. (#68, Dean Landolt)\n\n[See Commits](https://github.com/felixge/node-formidable/compare/v1.0.0...v1.0.1)\n\n### v1.0.0\n\n* Add support for multipart boundaries that are quoted strings. (Jeff Craig)\n\nThis marks the beginning of development on version 2.0 which will include\nseveral architectural improvements.\n\n[See Commits](https://github.com/felixge/node-formidable/compare/v0.9.11...v1.0.0)\n\n### v0.9.11\n\n* Emit `'progress'` event when receiving data, regardless of parsing it. (Tim Koschützki)\n* Use [W3C FileAPI Draft](http://dev.w3.org/2006/webapi/FileAPI/) properties for File class\n\n**Important:** The old property names of the File class will be removed in a\nfuture release.\n\n[See Commits](https://github.com/felixge/node-formidable/compare/v0.9.10...v0.9.11)\n\n### Older releases\n\nThese releases were done before starting to maintain the above Changelog:\n\n* [v0.9.10](https://github.com/felixge/node-formidable/compare/v0.9.9...v0.9.10)\n* [v0.9.9](https://github.com/felixge/node-formidable/compare/v0.9.8...v0.9.9)\n* [v0.9.8](https://github.com/felixge/node-formidable/compare/v0.9.7...v0.9.8)\n* [v0.9.7](https://github.com/felixge/node-formidable/compare/v0.9.6...v0.9.7)\n* [v0.9.6](https://github.com/felixge/node-formidable/compare/v0.9.5...v0.9.6)\n* [v0.9.5](https://github.com/felixge/node-formidable/compare/v0.9.4...v0.9.5)\n* [v0.9.4](https://github.com/felixge/node-formidable/compare/v0.9.3...v0.9.4)\n* [v0.9.3](https://github.com/felixge/node-formidable/compare/v0.9.2...v0.9.3)\n* [v0.9.2](https://github.com/felixge/node-formidable/compare/v0.9.1...v0.9.2)\n* [v0.9.1](https://github.com/felixge/node-formidable/compare/v0.9.0...v0.9.1)\n* [v0.9.0](https://github.com/felixge/node-formidable/compare/v0.8.0...v0.9.0)\n* [v0.9.0](https://github.com/felixge/node-formidable/compare/v0.8.0...v0.9.0)\n* [v0.9.0](https://github.com/felixge/node-formidable/compare/v0.8.0...v0.9.0)\n* [v0.9.0](https://github.com/felixge/node-formidable/compare/v0.8.0...v0.9.0)\n* [v0.9.0](https://github.com/felixge/node-formidable/compare/v0.8.0...v0.9.0)\n* [v0.9.0](https://github.com/felixge/node-formidable/compare/v0.8.0...v0.9.0)\n* [v0.9.0](https://github.com/felixge/node-formidable/compare/v0.8.0...v0.9.0)\n* [v0.9.0](https://github.com/felixge/node-formidable/compare/v0.8.0...v0.9.0)\n* [v0.1.0](https://github.com/felixge/node-formidable/commits/v0.1.0)\n\n## Installation\n\nVia [npm](http://github.com/isaacs/npm):\n\n npm install formidable@latest\n\nManually:\n\n git clone git://github.com/felixge/node-formidable.git formidable\n vim my.js\n # var formidable = require('./formidable');\n\nNote: Formidable requires [gently](http://github.com/felixge/node-gently) to run the unit tests, but you won't need it for just using the library.\n\n## Example\n\nParse an incoming file upload.\n\n var formidable = require('formidable'),\n http = require('http'),\n\n util = require('util');\n\n http.createServer(function(req, res) {\n if (req.url == '/upload' && req.method.toLowerCase() == 'post') {\n // parse a file upload\n var form = new formidable.IncomingForm();\n form.parse(req, function(err, fields, files) {\n res.writeHead(200, {'content-type': 'text/plain'});\n res.write('received upload:\\n\\n');\n res.end(util.inspect({fields: fields, files: files}));\n });\n return;\n }\n\n // show a file upload form\n res.writeHead(200, {'content-type': 'text/html'});\n res.end(\n '
'+\n '
'+\n '
'+\n ''+\n '
'\n );\n }).listen(80);\n\n## API\n\n### formidable.IncomingForm\n\n__new formidable.IncomingForm()__\n\nCreates a new incoming form.\n\n__incomingForm.encoding = 'utf-8'__\n\nThe encoding to use for incoming form fields.\n\n__incomingForm.uploadDir = process.env.TMP || '/tmp' || process.cwd()__\n\nThe directory for placing file uploads in. You can move them later on using\n`fs.rename()`. The default directory is picked at module load time depending on\nthe first existing directory from those listed above.\n\n__incomingForm.keepExtensions = false__\n\nIf you want the files written to `incomingForm.uploadDir` to include the extensions of the original files, set this property to `true`.\n\n__incomingForm.type__\n\nEither 'multipart' or 'urlencoded' depending on the incoming request.\n\n__incomingForm.maxFieldsSize = 2 * 1024 * 1024__\n\nLimits the amount of memory a field (not file) can allocate in bytes.\nIf this value is exceeded, an `'error'` event is emitted. The default\nsize is 2MB.\n\n__incomingForm.hash = false__\n\nIf you want checksums calculated for incoming files, set this to either `'sha1'` or `'md5'`.\n\n__incomingForm.bytesReceived__\n\nThe amount of bytes received for this form so far.\n\n__incomingForm.bytesExpected__\n\nThe expected number of bytes in this form.\n\n__incomingForm.parse(request, [cb])__\n\nParses an incoming node.js `request` containing form data. If `cb` is provided, all fields an files are collected and passed to the callback:\n\n incomingForm.parse(req, function(err, fields, files) {\n // ...\n });\n\n__incomingForm.onPart(part)__\n\nYou may overwrite this method if you are interested in directly accessing the multipart stream. Doing so will disable any `'field'` / `'file'` events processing which would occur otherwise, making you fully responsible for handling the processing.\n\n incomingForm.onPart = function(part) {\n part.addListener('data', function() {\n // ...\n });\n }\n\nIf you want to use formidable to only handle certain parts for you, you can do so:\n\n incomingForm.onPart = function(part) {\n if (!part.filename) {\n // let formidable handle all non-file parts\n incomingForm.handlePart(part);\n }\n }\n\nCheck the code in this method for further inspiration.\n\n__Event: 'progress' (bytesReceived, bytesExpected)__\n\nEmitted after each incoming chunk of data that has been parsed. Can be used to roll your own progress bar.\n\n__Event: 'field' (name, value)__\n\nEmitted whenever a field / value pair has been received.\n\n__Event: 'fileBegin' (name, file)__\n\nEmitted whenever a new file is detected in the upload stream. Use this even if\nyou want to stream the file to somewhere else while buffering the upload on\nthe file system.\n\n__Event: 'file' (name, file)__\n\nEmitted whenever a field / file pair has been received. `file` is an instance of `File`.\n\n__Event: 'error' (err)__\n\nEmitted when there is an error processing the incoming form. A request that experiences an error is automatically paused, you will have to manually call `request.resume()` if you want the request to continue firing `'data'` events.\n\n__Event: 'aborted'__\n\nEmitted when the request was aborted by the user. Right now this can be due to a 'timeout' or 'close' event on the socket. In the future there will be a separate 'timeout' event (needs a change in the node core).\n\n__Event: 'end' ()__\n\nEmitted when the entire request has been received, and all contained files have finished flushing to disk. This is a great place for you to send your response.\n\n### formidable.File\n\n__file.size = 0__\n\nThe size of the uploaded file in bytes. If the file is still being uploaded (see `'fileBegin'` event), this property says how many bytes of the file have been written to disk yet.\n\n__file.path = null__\n\nThe path this file is being written to. You can modify this in the `'fileBegin'` event in\ncase you are unhappy with the way formidable generates a temporary path for your files.\n\n__file.name = null__\n\nThe name this file had according to the uploading client.\n\n__file.type = null__\n\nThe mime type of this file, according to the uploading client.\n\n__file.lastModifiedDate = null__\n\nA date object (or `null`) containing the time this file was last written to. Mostly\nhere for compatibility with the [W3C File API Draft](http://dev.w3.org/2006/webapi/FileAPI/).\n\n__file.hash = null__\n\nIf hash calculation was set, you can read the hex digest out of this var.\n\n## License\n\nFormidable is licensed under the MIT license.\n\n## Ports\n\n* [multipart-parser](http://github.com/FooBarWidget/multipart-parser): a C++ parser based on formidable\n\n## Credits\n\n* [Ryan Dahl](http://twitter.com/ryah) for his work on [http-parser](http://github.com/ry/http-parser) which heavily inspired multipart_parser.js\n", + "readmeFilename": "Readme.md", + "description": "[![Build Status](https://secure.travis-ci.org/felixge/node-formidable.png?branch=master)](http://travis-ci.org/felixge/node-formidable)", + "_id": "formidable@1.0.11", + "_from": "formidable@1.0.11" +} diff --git a/node_modules/coalesce/node_modules/formidable/test/common.js b/node_modules/coalesce/node_modules/formidable/test/common.js new file mode 100644 index 00000000..eb432ad6 --- /dev/null +++ b/node_modules/coalesce/node_modules/formidable/test/common.js @@ -0,0 +1,19 @@ +var mysql = require('..'); +var path = require('path'); + +var root = path.join(__dirname, '../'); +exports.dir = { + root : root, + lib : root + '/lib', + fixture : root + '/test/fixture', + tmp : root + '/test/tmp', +}; + +exports.port = 13532; + +exports.formidable = require('..'); +exports.assert = require('assert'); + +exports.require = function(lib) { + return require(exports.dir.lib + '/' + lib); +}; diff --git a/node_modules/coalesce/node_modules/formidable/test/fixture/file/funkyfilename.txt b/node_modules/coalesce/node_modules/formidable/test/fixture/file/funkyfilename.txt new file mode 100644 index 00000000..e7a4785e --- /dev/null +++ b/node_modules/coalesce/node_modules/formidable/test/fixture/file/funkyfilename.txt @@ -0,0 +1 @@ +I am a text file with a funky name! diff --git a/node_modules/coalesce/node_modules/formidable/test/fixture/file/plain.txt b/node_modules/coalesce/node_modules/formidable/test/fixture/file/plain.txt new file mode 100644 index 00000000..9b6903e2 --- /dev/null +++ b/node_modules/coalesce/node_modules/formidable/test/fixture/file/plain.txt @@ -0,0 +1 @@ +I am a plain text file diff --git a/node_modules/coalesce/node_modules/formidable/test/fixture/http/special-chars-in-filename/info.md b/node_modules/coalesce/node_modules/formidable/test/fixture/http/special-chars-in-filename/info.md new file mode 100644 index 00000000..3c9dbe3d --- /dev/null +++ b/node_modules/coalesce/node_modules/formidable/test/fixture/http/special-chars-in-filename/info.md @@ -0,0 +1,3 @@ +* Opera does not allow submitting this file, it shows a warning to the + user that the file could not be found instead. Tested in 9.8, 11.51 on OSX. + Reported to Opera on 08.09.2011 (tracking email DSK-346009@bugs.opera.com). diff --git a/node_modules/coalesce/node_modules/formidable/test/fixture/js/no-filename.js b/node_modules/coalesce/node_modules/formidable/test/fixture/js/no-filename.js new file mode 100644 index 00000000..0bae4494 --- /dev/null +++ b/node_modules/coalesce/node_modules/formidable/test/fixture/js/no-filename.js @@ -0,0 +1,3 @@ +module.exports['generic.http'] = [ + {type: 'file', name: 'upload', filename: '', fixture: 'plain.txt'}, +]; diff --git a/node_modules/coalesce/node_modules/formidable/test/fixture/js/special-chars-in-filename.js b/node_modules/coalesce/node_modules/formidable/test/fixture/js/special-chars-in-filename.js new file mode 100644 index 00000000..eb76fdc1 --- /dev/null +++ b/node_modules/coalesce/node_modules/formidable/test/fixture/js/special-chars-in-filename.js @@ -0,0 +1,21 @@ +var properFilename = 'funkyfilename.txt'; + +function expect(filename) { + return [ + {type: 'field', name: 'title', value: 'Weird filename'}, + {type: 'file', name: 'upload', filename: filename, fixture: properFilename}, + ]; +}; + +var webkit = " ? % * | \" < > . ? ; ' @ # $ ^ & ( ) - _ = + { } [ ] ` ~.txt"; +var ffOrIe = " ? % * | \" < > . ☃ ; ' @ # $ ^ & ( ) - _ = + { } [ ] ` ~.txt"; + +module.exports = { + 'osx-chrome-13.http' : expect(webkit), + 'osx-firefox-3.6.http' : expect(ffOrIe), + 'osx-safari-5.http' : expect(webkit), + 'xp-chrome-12.http' : expect(webkit), + 'xp-ie-7.http' : expect(ffOrIe), + 'xp-ie-8.http' : expect(ffOrIe), + 'xp-safari-5.http' : expect(webkit), +}; diff --git a/node_modules/coalesce/node_modules/formidable/test/fixture/multipart.js b/node_modules/coalesce/node_modules/formidable/test/fixture/multipart.js new file mode 100644 index 00000000..a4761699 --- /dev/null +++ b/node_modules/coalesce/node_modules/formidable/test/fixture/multipart.js @@ -0,0 +1,72 @@ +exports['rfc1867'] = + { boundary: 'AaB03x', + raw: + '--AaB03x\r\n'+ + 'content-disposition: form-data; name="field1"\r\n'+ + '\r\n'+ + 'Joe Blow\r\nalmost tricked you!\r\n'+ + '--AaB03x\r\n'+ + 'content-disposition: form-data; name="pics"; filename="file1.txt"\r\n'+ + 'Content-Type: text/plain\r\n'+ + '\r\n'+ + '... contents of file1.txt ...\r\r\n'+ + '--AaB03x--\r\n', + parts: + [ { headers: { + 'content-disposition': 'form-data; name="field1"', + }, + data: 'Joe Blow\r\nalmost tricked you!', + }, + { headers: { + 'content-disposition': 'form-data; name="pics"; filename="file1.txt"', + 'Content-Type': 'text/plain', + }, + data: '... contents of file1.txt ...\r', + } + ] + }; + +exports['noTrailing\r\n'] = + { boundary: 'AaB03x', + raw: + '--AaB03x\r\n'+ + 'content-disposition: form-data; name="field1"\r\n'+ + '\r\n'+ + 'Joe Blow\r\nalmost tricked you!\r\n'+ + '--AaB03x\r\n'+ + 'content-disposition: form-data; name="pics"; filename="file1.txt"\r\n'+ + 'Content-Type: text/plain\r\n'+ + '\r\n'+ + '... contents of file1.txt ...\r\r\n'+ + '--AaB03x--', + parts: + [ { headers: { + 'content-disposition': 'form-data; name="field1"', + }, + data: 'Joe Blow\r\nalmost tricked you!', + }, + { headers: { + 'content-disposition': 'form-data; name="pics"; filename="file1.txt"', + 'Content-Type': 'text/plain', + }, + data: '... contents of file1.txt ...\r', + } + ] + }; + +exports['emptyHeader'] = + { boundary: 'AaB03x', + raw: + '--AaB03x\r\n'+ + 'content-disposition: form-data; name="field1"\r\n'+ + ': foo\r\n'+ + '\r\n'+ + 'Joe Blow\r\nalmost tricked you!\r\n'+ + '--AaB03x\r\n'+ + 'content-disposition: form-data; name="pics"; filename="file1.txt"\r\n'+ + 'Content-Type: text/plain\r\n'+ + '\r\n'+ + '... contents of file1.txt ...\r\r\n'+ + '--AaB03x--\r\n', + expectError: true, + }; diff --git a/node_modules/coalesce/node_modules/formidable/test/integration/test-fixtures.js b/node_modules/coalesce/node_modules/formidable/test/integration/test-fixtures.js new file mode 100644 index 00000000..66ad259e --- /dev/null +++ b/node_modules/coalesce/node_modules/formidable/test/integration/test-fixtures.js @@ -0,0 +1,89 @@ +var hashish = require('hashish'); +var fs = require('fs'); +var findit = require('findit'); +var path = require('path'); +var http = require('http'); +var net = require('net'); +var assert = require('assert'); + +var common = require('../common'); +var formidable = common.formidable; + +var server = http.createServer(); +server.listen(common.port, findFixtures); + +function findFixtures() { + var fixtures = []; + findit + .sync(common.dir.fixture + '/js') + .forEach(function(jsPath) { + if (!/\.js$/.test(jsPath)) return; + + var group = path.basename(jsPath, '.js'); + hashish.forEach(require(jsPath), function(fixture, name) { + fixtures.push({ + name : group + '/' + name, + fixture : fixture, + }); + }); + }); + + testNext(fixtures); +} + +function testNext(fixtures) { + var fixture = fixtures.shift(); + if (!fixture) return server.close(); + + var name = fixture.name; + var fixture = fixture.fixture; + + uploadFixture(name, function(err, parts) { + if (err) throw err; + + fixture.forEach(function(expectedPart, i) { + var parsedPart = parts[i]; + assert.equal(parsedPart.type, expectedPart.type); + assert.equal(parsedPart.name, expectedPart.name); + + if (parsedPart.type === 'file') { + var filename = parsedPart.value.name; + assert.equal(filename, expectedPart.filename); + } + }); + + testNext(fixtures); + }); +}; + +function uploadFixture(name, cb) { + server.once('request', function(req, res) { + var form = new formidable.IncomingForm(); + form.uploadDir = common.dir.tmp; + form.parse(req); + + function callback() { + var realCallback = cb; + cb = function() {}; + realCallback.apply(null, arguments); + } + + var parts = []; + form + .on('error', callback) + .on('fileBegin', function(name, value) { + parts.push({type: 'file', name: name, value: value}); + }) + .on('field', function(name, value) { + parts.push({type: 'field', name: name, value: value}); + }) + .on('end', function() { + callback(null, parts); + }); + }); + + var socket = net.createConnection(common.port); + var file = fs.createReadStream(common.dir.fixture + '/http/' + name); + + file.pipe(socket); +} diff --git a/node_modules/coalesce/node_modules/formidable/test/legacy/common.js b/node_modules/coalesce/node_modules/formidable/test/legacy/common.js new file mode 100644 index 00000000..2b985981 --- /dev/null +++ b/node_modules/coalesce/node_modules/formidable/test/legacy/common.js @@ -0,0 +1,24 @@ +var path = require('path'), + fs = require('fs'); + +try { + global.Gently = require('gently'); +} catch (e) { + throw new Error('this test suite requires node-gently'); +} + +exports.lib = path.join(__dirname, '../../lib'); + +global.GENTLY = new Gently(); + +global.assert = require('assert'); +global.TEST_PORT = 13532; +global.TEST_FIXTURES = path.join(__dirname, '../fixture'); +global.TEST_TMP = path.join(__dirname, '../tmp'); + +// Stupid new feature in node that complains about gently attaching too many +// listeners to process 'exit'. This is a workaround until I can think of a +// better way to deal with this. +if (process.setMaxListeners) { + process.setMaxListeners(10000); +} diff --git a/node_modules/coalesce/node_modules/formidable/test/legacy/integration/test-multipart-parser.js b/node_modules/coalesce/node_modules/formidable/test/legacy/integration/test-multipart-parser.js new file mode 100644 index 00000000..75232aa4 --- /dev/null +++ b/node_modules/coalesce/node_modules/formidable/test/legacy/integration/test-multipart-parser.js @@ -0,0 +1,80 @@ +var common = require('../common'); +var CHUNK_LENGTH = 10, + multipartParser = require(common.lib + '/multipart_parser'), + MultipartParser = multipartParser.MultipartParser, + parser = new MultipartParser(), + fixtures = require(TEST_FIXTURES + '/multipart'), + Buffer = require('buffer').Buffer; + +Object.keys(fixtures).forEach(function(name) { + var fixture = fixtures[name], + buffer = new Buffer(Buffer.byteLength(fixture.raw, 'binary')), + offset = 0, + chunk, + nparsed, + + parts = [], + part = null, + headerField, + headerValue, + endCalled = ''; + + parser.initWithBoundary(fixture.boundary); + parser.onPartBegin = function() { + part = {headers: {}, data: ''}; + parts.push(part); + headerField = ''; + headerValue = ''; + }; + + parser.onHeaderField = function(b, start, end) { + headerField += b.toString('ascii', start, end); + }; + + parser.onHeaderValue = function(b, start, end) { + headerValue += b.toString('ascii', start, end); + } + + parser.onHeaderEnd = function() { + part.headers[headerField] = headerValue; + headerField = ''; + headerValue = ''; + }; + + parser.onPartData = function(b, start, end) { + var str = b.toString('ascii', start, end); + part.data += b.slice(start, end); + } + + parser.onEnd = function() { + endCalled = true; + } + + buffer.write(fixture.raw, 'binary', 0); + + while (offset < buffer.length) { + if (offset + CHUNK_LENGTH < buffer.length) { + chunk = buffer.slice(offset, offset+CHUNK_LENGTH); + } else { + chunk = buffer.slice(offset, buffer.length); + } + offset = offset + CHUNK_LENGTH; + + nparsed = parser.write(chunk); + if (nparsed != chunk.length) { + if (fixture.expectError) { + return; + } + puts('-- ERROR --'); + p(chunk.toString('ascii')); + throw new Error(chunk.length+' bytes written, but only '+nparsed+' bytes parsed!'); + } + } + + if (fixture.expectError) { + throw new Error('expected parse error did not happen'); + } + + assert.ok(endCalled); + assert.deepEqual(parts, fixture.parts); +}); diff --git a/node_modules/coalesce/node_modules/formidable/test/legacy/simple/test-file.js b/node_modules/coalesce/node_modules/formidable/test/legacy/simple/test-file.js new file mode 100644 index 00000000..52ceedb4 --- /dev/null +++ b/node_modules/coalesce/node_modules/formidable/test/legacy/simple/test-file.js @@ -0,0 +1,104 @@ +var common = require('../common'); +var WriteStreamStub = GENTLY.stub('fs', 'WriteStream'); + +var File = require(common.lib + '/file'), + EventEmitter = require('events').EventEmitter, + file, + gently; + +function test(test) { + gently = new Gently(); + file = new File(); + test(); + gently.verify(test.name); +} + +test(function constructor() { + assert.ok(file instanceof EventEmitter); + assert.strictEqual(file.size, 0); + assert.strictEqual(file.path, null); + assert.strictEqual(file.name, null); + assert.strictEqual(file.type, null); + assert.strictEqual(file.lastModifiedDate, null); + + assert.strictEqual(file._writeStream, null); + + (function testSetProperties() { + var file2 = new File({foo: 'bar'}); + assert.equal(file2.foo, 'bar'); + })(); +}); + +test(function open() { + var WRITE_STREAM; + file.path = '/foo'; + + gently.expect(WriteStreamStub, 'new', function (path) { + WRITE_STREAM = this; + assert.strictEqual(path, file.path); + }); + + file.open(); + assert.strictEqual(file._writeStream, WRITE_STREAM); +}); + +test(function write() { + var BUFFER = {length: 10}, + CB_STUB, + CB = function() { + CB_STUB.apply(this, arguments); + }; + + file._writeStream = {}; + + gently.expect(file._writeStream, 'write', function (buffer, cb) { + assert.strictEqual(buffer, BUFFER); + + gently.expect(file, 'emit', function (event, bytesWritten) { + assert.ok(file.lastModifiedDate instanceof Date); + assert.equal(event, 'progress'); + assert.equal(bytesWritten, file.size); + }); + + CB_STUB = gently.expect(function writeCb() { + assert.equal(file.size, 10); + }); + + cb(); + + gently.expect(file, 'emit', function (event, bytesWritten) { + assert.equal(event, 'progress'); + assert.equal(bytesWritten, file.size); + }); + + CB_STUB = gently.expect(function writeCb() { + assert.equal(file.size, 20); + }); + + cb(); + }); + + file.write(BUFFER, CB); +}); + +test(function end() { + var CB_STUB, + CB = function() { + CB_STUB.apply(this, arguments); + }; + + file._writeStream = {}; + + gently.expect(file._writeStream, 'end', function (cb) { + gently.expect(file, 'emit', function (event) { + assert.equal(event, 'end'); + }); + + CB_STUB = gently.expect(function endCb() { + }); + + cb(); + }); + + file.end(CB); +}); diff --git a/node_modules/coalesce/node_modules/formidable/test/legacy/simple/test-incoming-form.js b/node_modules/coalesce/node_modules/formidable/test/legacy/simple/test-incoming-form.js new file mode 100644 index 00000000..84de439e --- /dev/null +++ b/node_modules/coalesce/node_modules/formidable/test/legacy/simple/test-incoming-form.js @@ -0,0 +1,727 @@ +var common = require('../common'); +var MultipartParserStub = GENTLY.stub('./multipart_parser', 'MultipartParser'), + QuerystringParserStub = GENTLY.stub('./querystring_parser', 'QuerystringParser'), + EventEmitterStub = GENTLY.stub('events', 'EventEmitter'), + StreamStub = GENTLY.stub('stream', 'Stream'), + FileStub = GENTLY.stub('./file'); + +var formidable = require(common.lib + '/index'), + IncomingForm = formidable.IncomingForm, + events = require('events'), + fs = require('fs'), + path = require('path'), + Buffer = require('buffer').Buffer, + fixtures = require(TEST_FIXTURES + '/multipart'), + form, + gently; + +function test(test) { + gently = new Gently(); + gently.expect(EventEmitterStub, 'call'); + form = new IncomingForm(); + test(); + gently.verify(test.name); +} + +test(function constructor() { + assert.strictEqual(form.error, null); + assert.strictEqual(form.ended, false); + assert.strictEqual(form.type, null); + assert.strictEqual(form.headers, null); + assert.strictEqual(form.keepExtensions, false); + assert.strictEqual(form.uploadDir, '/tmp'); + assert.strictEqual(form.encoding, 'utf-8'); + assert.strictEqual(form.bytesReceived, null); + assert.strictEqual(form.bytesExpected, null); + assert.strictEqual(form.maxFieldsSize, 2 * 1024 * 1024); + assert.strictEqual(form._parser, null); + assert.strictEqual(form._flushing, 0); + assert.strictEqual(form._fieldsSize, 0); + assert.ok(form instanceof EventEmitterStub); + assert.equal(form.constructor.name, 'IncomingForm'); + + (function testSimpleConstructor() { + gently.expect(EventEmitterStub, 'call'); + var form = IncomingForm(); + assert.ok(form instanceof IncomingForm); + })(); + + (function testSimpleConstructorShortcut() { + gently.expect(EventEmitterStub, 'call'); + var form = formidable(); + assert.ok(form instanceof IncomingForm); + })(); +}); + +test(function parse() { + var REQ = {headers: {}} + , emit = {}; + + gently.expect(form, 'writeHeaders', function(headers) { + assert.strictEqual(headers, REQ.headers); + }); + + var events = ['error', 'aborted', 'data', 'end']; + gently.expect(REQ, 'on', events.length, function(event, fn) { + assert.equal(event, events.shift()); + emit[event] = fn; + return this; + }); + + form.parse(REQ); + + (function testPause() { + gently.expect(REQ, 'pause'); + assert.strictEqual(form.pause(), true); + })(); + + (function testPauseCriticalException() { + form.ended = false; + + var ERR = new Error('dasdsa'); + gently.expect(REQ, 'pause', function() { + throw ERR; + }); + + gently.expect(form, '_error', function(err) { + assert.strictEqual(err, ERR); + }); + + assert.strictEqual(form.pause(), false); + })(); + + (function testPauseHarmlessException() { + form.ended = true; + + var ERR = new Error('dasdsa'); + gently.expect(REQ, 'pause', function() { + throw ERR; + }); + + assert.strictEqual(form.pause(), false); + })(); + + (function testResume() { + gently.expect(REQ, 'resume'); + assert.strictEqual(form.resume(), true); + })(); + + (function testResumeCriticalException() { + form.ended = false; + + var ERR = new Error('dasdsa'); + gently.expect(REQ, 'resume', function() { + throw ERR; + }); + + gently.expect(form, '_error', function(err) { + assert.strictEqual(err, ERR); + }); + + assert.strictEqual(form.resume(), false); + })(); + + (function testResumeHarmlessException() { + form.ended = true; + + var ERR = new Error('dasdsa'); + gently.expect(REQ, 'resume', function() { + throw ERR; + }); + + assert.strictEqual(form.resume(), false); + })(); + + (function testEmitError() { + var ERR = new Error('something bad happened'); + gently.expect(form, '_error',function(err) { + assert.strictEqual(err, ERR); + }); + emit.error(ERR); + })(); + + (function testEmitAborted() { + gently.expect(form, 'emit',function(event) { + assert.equal(event, 'aborted'); + }); + + emit.aborted(); + })(); + + + (function testEmitData() { + var BUFFER = [1, 2, 3]; + gently.expect(form, 'write', function(buffer) { + assert.strictEqual(buffer, BUFFER); + }); + emit.data(BUFFER); + })(); + + (function testEmitEnd() { + form._parser = {}; + + (function testWithError() { + var ERR = new Error('haha'); + gently.expect(form._parser, 'end', function() { + return ERR; + }); + + gently.expect(form, '_error', function(err) { + assert.strictEqual(err, ERR); + }); + + emit.end(); + })(); + + (function testWithoutError() { + gently.expect(form._parser, 'end'); + emit.end(); + })(); + + (function testAfterError() { + form.error = true; + emit.end(); + })(); + })(); + + (function testWithCallback() { + gently.expect(EventEmitterStub, 'call'); + var form = new IncomingForm(), + REQ = {headers: {}}, + parseCalled = 0; + + gently.expect(form, 'writeHeaders'); + gently.expect(REQ, 'on', 4, function() { + return this; + }); + + gently.expect(form, 'on', 4, function(event, fn) { + if (event == 'field') { + fn('field1', 'foo'); + fn('field1', 'bar'); + fn('field2', 'nice'); + } + + if (event == 'file') { + fn('file1', '1'); + fn('file1', '2'); + fn('file2', '3'); + } + + if (event == 'end') { + fn(); + } + return this; + }); + + form.parse(REQ, gently.expect(function parseCbOk(err, fields, files) { + assert.deepEqual(fields, {field1: 'bar', field2: 'nice'}); + assert.deepEqual(files, {file1: '2', file2: '3'}); + })); + + gently.expect(form, 'writeHeaders'); + gently.expect(REQ, 'on', 4, function() { + return this; + }); + + var ERR = new Error('test'); + gently.expect(form, 'on', 3, function(event, fn) { + if (event == 'field') { + fn('foo', 'bar'); + } + + if (event == 'error') { + fn(ERR); + gently.expect(form, 'on'); + } + return this; + }); + + form.parse(REQ, gently.expect(function parseCbErr(err, fields, files) { + assert.strictEqual(err, ERR); + assert.deepEqual(fields, {foo: 'bar'}); + })); + })(); +}); + +test(function pause() { + assert.strictEqual(form.pause(), false); +}); + +test(function resume() { + assert.strictEqual(form.resume(), false); +}); + + +test(function writeHeaders() { + var HEADERS = {}; + gently.expect(form, '_parseContentLength'); + gently.expect(form, '_parseContentType'); + + form.writeHeaders(HEADERS); + assert.strictEqual(form.headers, HEADERS); +}); + +test(function write() { + var parser = {}, + BUFFER = [1, 2, 3]; + + form._parser = parser; + form.bytesExpected = 523423; + + (function testBasic() { + gently.expect(form, 'emit', function(event, bytesReceived, bytesExpected) { + assert.equal(event, 'progress'); + assert.equal(bytesReceived, BUFFER.length); + assert.equal(bytesExpected, form.bytesExpected); + }); + + gently.expect(parser, 'write', function(buffer) { + assert.strictEqual(buffer, BUFFER); + return buffer.length; + }); + + assert.equal(form.write(BUFFER), BUFFER.length); + assert.equal(form.bytesReceived, BUFFER.length); + })(); + + (function testParserError() { + gently.expect(form, 'emit'); + + gently.expect(parser, 'write', function(buffer) { + assert.strictEqual(buffer, BUFFER); + return buffer.length - 1; + }); + + gently.expect(form, '_error', function(err) { + assert.ok(err.message.match(/parser error/i)); + }); + + assert.equal(form.write(BUFFER), BUFFER.length - 1); + assert.equal(form.bytesReceived, BUFFER.length + BUFFER.length); + })(); + + (function testUninitialized() { + delete form._parser; + + gently.expect(form, '_error', function(err) { + assert.ok(err.message.match(/unintialized parser/i)); + }); + form.write(BUFFER); + })(); +}); + +test(function parseContentType() { + var HEADERS = {}; + + form.headers = {'content-type': 'application/x-www-form-urlencoded'}; + gently.expect(form, '_initUrlencoded'); + form._parseContentType(); + + // accept anything that has 'urlencoded' in it + form.headers = {'content-type': 'broken-client/urlencoded-stupid'}; + gently.expect(form, '_initUrlencoded'); + form._parseContentType(); + + var BOUNDARY = '---------------------------57814261102167618332366269'; + form.headers = {'content-type': 'multipart/form-data; boundary='+BOUNDARY}; + + gently.expect(form, '_initMultipart', function(boundary) { + assert.equal(boundary, BOUNDARY); + }); + form._parseContentType(); + + (function testQuotedBoundary() { + form.headers = {'content-type': 'multipart/form-data; boundary="' + BOUNDARY + '"'}; + + gently.expect(form, '_initMultipart', function(boundary) { + assert.equal(boundary, BOUNDARY); + }); + form._parseContentType(); + })(); + + (function testNoBoundary() { + form.headers = {'content-type': 'multipart/form-data'}; + + gently.expect(form, '_error', function(err) { + assert.ok(err.message.match(/no multipart boundary/i)); + }); + form._parseContentType(); + })(); + + (function testNoContentType() { + form.headers = {}; + + gently.expect(form, '_error', function(err) { + assert.ok(err.message.match(/no content-type/i)); + }); + form._parseContentType(); + })(); + + (function testUnknownContentType() { + form.headers = {'content-type': 'invalid'}; + + gently.expect(form, '_error', function(err) { + assert.ok(err.message.match(/unknown content-type/i)); + }); + form._parseContentType(); + })(); +}); + +test(function parseContentLength() { + var HEADERS = {}; + + form.headers = {}; + form._parseContentLength(); + assert.strictEqual(form.bytesReceived, null); + assert.strictEqual(form.bytesExpected, null); + + form.headers['content-length'] = '8'; + gently.expect(form, 'emit', function(event, bytesReceived, bytesExpected) { + assert.equal(event, 'progress'); + assert.equal(bytesReceived, 0); + assert.equal(bytesExpected, 8); + }); + form._parseContentLength(); + assert.strictEqual(form.bytesReceived, 0); + assert.strictEqual(form.bytesExpected, 8); + + // JS can be evil, lets make sure we are not + form.headers['content-length'] = '08'; + gently.expect(form, 'emit', function(event, bytesReceived, bytesExpected) { + assert.equal(event, 'progress'); + assert.equal(bytesReceived, 0); + assert.equal(bytesExpected, 8); + }); + form._parseContentLength(); + assert.strictEqual(form.bytesExpected, 8); +}); + +test(function _initMultipart() { + var BOUNDARY = '123', + PARSER; + + gently.expect(MultipartParserStub, 'new', function() { + PARSER = this; + }); + + gently.expect(MultipartParserStub.prototype, 'initWithBoundary', function(boundary) { + assert.equal(boundary, BOUNDARY); + }); + + form._initMultipart(BOUNDARY); + assert.equal(form.type, 'multipart'); + assert.strictEqual(form._parser, PARSER); + + (function testRegularField() { + var PART; + gently.expect(StreamStub, 'new', function() { + PART = this; + }); + + gently.expect(form, 'onPart', function(part) { + assert.strictEqual(part, PART); + assert.deepEqual + ( part.headers + , { 'content-disposition': 'form-data; name="field1"' + , 'foo': 'bar' + } + ); + assert.equal(part.name, 'field1'); + + var strings = ['hello', ' world']; + gently.expect(part, 'emit', 2, function(event, b) { + assert.equal(event, 'data'); + assert.equal(b.toString(), strings.shift()); + }); + + gently.expect(part, 'emit', function(event, b) { + assert.equal(event, 'end'); + }); + }); + + PARSER.onPartBegin(); + PARSER.onHeaderField(new Buffer('content-disposition'), 0, 10); + PARSER.onHeaderField(new Buffer('content-disposition'), 10, 19); + PARSER.onHeaderValue(new Buffer('form-data; name="field1"'), 0, 14); + PARSER.onHeaderValue(new Buffer('form-data; name="field1"'), 14, 24); + PARSER.onHeaderEnd(); + PARSER.onHeaderField(new Buffer('foo'), 0, 3); + PARSER.onHeaderValue(new Buffer('bar'), 0, 3); + PARSER.onHeaderEnd(); + PARSER.onHeadersEnd(); + PARSER.onPartData(new Buffer('hello world'), 0, 5); + PARSER.onPartData(new Buffer('hello world'), 5, 11); + PARSER.onPartEnd(); + })(); + + (function testFileField() { + var PART; + gently.expect(StreamStub, 'new', function() { + PART = this; + }); + + gently.expect(form, 'onPart', function(part) { + assert.deepEqual + ( part.headers + , { 'content-disposition': 'form-data; name="field2"; filename="C:\\Documents and Settings\\IE\\Must\\Die\\Sun"et.jpg"' + , 'content-type': 'text/plain' + } + ); + assert.equal(part.name, 'field2'); + assert.equal(part.filename, 'Sun"et.jpg'); + assert.equal(part.mime, 'text/plain'); + + gently.expect(part, 'emit', function(event, b) { + assert.equal(event, 'data'); + assert.equal(b.toString(), '... contents of file1.txt ...'); + }); + + gently.expect(part, 'emit', function(event, b) { + assert.equal(event, 'end'); + }); + }); + + PARSER.onPartBegin(); + PARSER.onHeaderField(new Buffer('content-disposition'), 0, 19); + PARSER.onHeaderValue(new Buffer('form-data; name="field2"; filename="C:\\Documents and Settings\\IE\\Must\\Die\\Sun"et.jpg"'), 0, 85); + PARSER.onHeaderEnd(); + PARSER.onHeaderField(new Buffer('Content-Type'), 0, 12); + PARSER.onHeaderValue(new Buffer('text/plain'), 0, 10); + PARSER.onHeaderEnd(); + PARSER.onHeadersEnd(); + PARSER.onPartData(new Buffer('... contents of file1.txt ...'), 0, 29); + PARSER.onPartEnd(); + })(); + + (function testEnd() { + gently.expect(form, '_maybeEnd'); + PARSER.onEnd(); + assert.ok(form.ended); + })(); +}); + +test(function _fileName() { + // TODO + return; +}); + +test(function _initUrlencoded() { + var PARSER; + + gently.expect(QuerystringParserStub, 'new', function() { + PARSER = this; + }); + + form._initUrlencoded(); + assert.equal(form.type, 'urlencoded'); + assert.strictEqual(form._parser, PARSER); + + (function testOnField() { + var KEY = 'KEY', VAL = 'VAL'; + gently.expect(form, 'emit', function(field, key, val) { + assert.equal(field, 'field'); + assert.equal(key, KEY); + assert.equal(val, VAL); + }); + + PARSER.onField(KEY, VAL); + })(); + + (function testOnEnd() { + gently.expect(form, '_maybeEnd'); + + PARSER.onEnd(); + assert.equal(form.ended, true); + })(); +}); + +test(function _error() { + var ERR = new Error('bla'); + + gently.expect(form, 'pause'); + gently.expect(form, 'emit', function(event, err) { + assert.equal(event, 'error'); + assert.strictEqual(err, ERR); + }); + + form._error(ERR); + assert.strictEqual(form.error, ERR); + + // make sure _error only does its thing once + form._error(ERR); +}); + +test(function onPart() { + var PART = {}; + gently.expect(form, 'handlePart', function(part) { + assert.strictEqual(part, PART); + }); + + form.onPart(PART); +}); + +test(function handlePart() { + (function testUtf8Field() { + var PART = new events.EventEmitter(); + PART.name = 'my_field'; + + gently.expect(form, 'emit', function(event, field, value) { + assert.equal(event, 'field'); + assert.equal(field, 'my_field'); + assert.equal(value, 'hello world: €'); + }); + + form.handlePart(PART); + PART.emit('data', new Buffer('hello')); + PART.emit('data', new Buffer(' world: ')); + PART.emit('data', new Buffer([0xE2])); + PART.emit('data', new Buffer([0x82, 0xAC])); + PART.emit('end'); + })(); + + (function testBinaryField() { + var PART = new events.EventEmitter(); + PART.name = 'my_field2'; + + gently.expect(form, 'emit', function(event, field, value) { + assert.equal(event, 'field'); + assert.equal(field, 'my_field2'); + assert.equal(value, 'hello world: '+new Buffer([0xE2, 0x82, 0xAC]).toString('binary')); + }); + + form.encoding = 'binary'; + form.handlePart(PART); + PART.emit('data', new Buffer('hello')); + PART.emit('data', new Buffer(' world: ')); + PART.emit('data', new Buffer([0xE2])); + PART.emit('data', new Buffer([0x82, 0xAC])); + PART.emit('end'); + })(); + + (function testFieldSize() { + form.maxFieldsSize = 8; + var PART = new events.EventEmitter(); + PART.name = 'my_field'; + + gently.expect(form, '_error', function(err) { + assert.equal(err.message, 'maxFieldsSize exceeded, received 9 bytes of field data'); + }); + + form.handlePart(PART); + form._fieldsSize = 1; + PART.emit('data', new Buffer(7)); + PART.emit('data', new Buffer(1)); + })(); + + (function testFilePart() { + var PART = new events.EventEmitter(), + FILE = new events.EventEmitter(), + PATH = '/foo/bar'; + + PART.name = 'my_file'; + PART.filename = 'sweet.txt'; + PART.mime = 'sweet.txt'; + + gently.expect(form, '_uploadPath', function(filename) { + assert.equal(filename, PART.filename); + return PATH; + }); + + gently.expect(FileStub, 'new', function(properties) { + assert.equal(properties.path, PATH); + assert.equal(properties.name, PART.filename); + assert.equal(properties.type, PART.mime); + FILE = this; + + gently.expect(form, 'emit', function (event, field, file) { + assert.equal(event, 'fileBegin'); + assert.strictEqual(field, PART.name); + assert.strictEqual(file, FILE); + }); + + gently.expect(FILE, 'open'); + }); + + form.handlePart(PART); + assert.equal(form._flushing, 1); + + var BUFFER; + gently.expect(form, 'pause'); + gently.expect(FILE, 'write', function(buffer, cb) { + assert.strictEqual(buffer, BUFFER); + gently.expect(form, 'resume'); + // @todo handle cb(new Err) + cb(); + }); + + PART.emit('data', BUFFER = new Buffer('test')); + + gently.expect(FILE, 'end', function(cb) { + gently.expect(form, 'emit', function(event, field, file) { + assert.equal(event, 'file'); + assert.strictEqual(file, FILE); + }); + + gently.expect(form, '_maybeEnd'); + + cb(); + assert.equal(form._flushing, 0); + }); + + PART.emit('end'); + })(); +}); + +test(function _uploadPath() { + (function testUniqueId() { + var UUID_A, UUID_B; + gently.expect(GENTLY.hijacked.path, 'join', function(uploadDir, uuid) { + assert.equal(uploadDir, form.uploadDir); + UUID_A = uuid; + }); + form._uploadPath(); + + gently.expect(GENTLY.hijacked.path, 'join', function(uploadDir, uuid) { + UUID_B = uuid; + }); + form._uploadPath(); + + assert.notEqual(UUID_A, UUID_B); + })(); + + (function testFileExtension() { + form.keepExtensions = true; + var FILENAME = 'foo.jpg', + EXT = '.bar'; + + gently.expect(GENTLY.hijacked.path, 'extname', function(filename) { + assert.equal(filename, FILENAME); + gently.restore(path, 'extname'); + + return EXT; + }); + + gently.expect(GENTLY.hijacked.path, 'join', function(uploadDir, name) { + assert.equal(path.extname(name), EXT); + }); + form._uploadPath(FILENAME); + })(); +}); + +test(function _maybeEnd() { + gently.expect(form, 'emit', 0); + form._maybeEnd(); + + form.ended = true; + form._flushing = 1; + form._maybeEnd(); + + gently.expect(form, 'emit', function(event) { + assert.equal(event, 'end'); + }); + + form.ended = true; + form._flushing = 0; + form._maybeEnd(); +}); diff --git a/node_modules/coalesce/node_modules/formidable/test/legacy/simple/test-multipart-parser.js b/node_modules/coalesce/node_modules/formidable/test/legacy/simple/test-multipart-parser.js new file mode 100644 index 00000000..d8dc968c --- /dev/null +++ b/node_modules/coalesce/node_modules/formidable/test/legacy/simple/test-multipart-parser.js @@ -0,0 +1,50 @@ +var common = require('../common'); +var multipartParser = require(common.lib + '/multipart_parser'), + MultipartParser = multipartParser.MultipartParser, + events = require('events'), + Buffer = require('buffer').Buffer, + parser; + +function test(test) { + parser = new MultipartParser(); + test(); +} + +test(function constructor() { + assert.equal(parser.boundary, null); + assert.equal(parser.state, 0); + assert.equal(parser.flags, 0); + assert.equal(parser.boundaryChars, null); + assert.equal(parser.index, null); + assert.equal(parser.lookbehind, null); + assert.equal(parser.constructor.name, 'MultipartParser'); +}); + +test(function initWithBoundary() { + var boundary = 'abc'; + parser.initWithBoundary(boundary); + assert.deepEqual(Array.prototype.slice.call(parser.boundary), [13, 10, 45, 45, 97, 98, 99]); + assert.equal(parser.state, multipartParser.START); + + assert.deepEqual(parser.boundaryChars, {10: true, 13: true, 45: true, 97: true, 98: true, 99: true}); +}); + +test(function parserError() { + var boundary = 'abc', + buffer = new Buffer(5); + + parser.initWithBoundary(boundary); + buffer.write('--ad', 'ascii', 0); + assert.equal(parser.write(buffer), 3); +}); + +test(function end() { + (function testError() { + assert.equal(parser.end().message, 'MultipartParser.end(): stream ended unexpectedly: ' + parser.explain()); + })(); + + (function testRegular() { + parser.state = multipartParser.END; + assert.strictEqual(parser.end(), undefined); + })(); +}); diff --git a/node_modules/coalesce/node_modules/formidable/test/legacy/simple/test-querystring-parser.js b/node_modules/coalesce/node_modules/formidable/test/legacy/simple/test-querystring-parser.js new file mode 100644 index 00000000..54d3e2d5 --- /dev/null +++ b/node_modules/coalesce/node_modules/formidable/test/legacy/simple/test-querystring-parser.js @@ -0,0 +1,45 @@ +var common = require('../common'); +var QuerystringParser = require(common.lib + '/querystring_parser').QuerystringParser, + Buffer = require('buffer').Buffer, + gently, + parser; + +function test(test) { + gently = new Gently(); + parser = new QuerystringParser(); + test(); + gently.verify(test.name); +} + +test(function constructor() { + assert.equal(parser.buffer, ''); + assert.equal(parser.constructor.name, 'QuerystringParser'); +}); + +test(function write() { + var a = new Buffer('a=1'); + assert.equal(parser.write(a), a.length); + + var b = new Buffer('&b=2'); + parser.write(b); + assert.equal(parser.buffer, a + b); +}); + +test(function end() { + var FIELDS = {a: ['b', {c: 'd'}], e: 'f'}; + + gently.expect(GENTLY.hijacked.querystring, 'parse', function(str) { + assert.equal(str, parser.buffer); + return FIELDS; + }); + + gently.expect(parser, 'onField', Object.keys(FIELDS).length, function(key, val) { + assert.deepEqual(FIELDS[key], val); + }); + + gently.expect(parser, 'onEnd'); + + parser.buffer = 'my buffer'; + parser.end(); + assert.equal(parser.buffer, ''); +}); diff --git a/node_modules/coalesce/node_modules/formidable/test/legacy/system/test-multi-video-upload.js b/node_modules/coalesce/node_modules/formidable/test/legacy/system/test-multi-video-upload.js new file mode 100644 index 00000000..479e46d6 --- /dev/null +++ b/node_modules/coalesce/node_modules/formidable/test/legacy/system/test-multi-video-upload.js @@ -0,0 +1,75 @@ +var common = require('../common'); +var BOUNDARY = '---------------------------10102754414578508781458777923', + FIXTURE = TEST_FIXTURES+'/multi_video.upload', + fs = require('fs'), + util = require(common.lib + '/util'), + http = require('http'), + formidable = require(common.lib + '/index'), + server = http.createServer(); + +server.on('request', function(req, res) { + var form = new formidable.IncomingForm(), + uploads = {}; + + form.uploadDir = TEST_TMP; + form.hash = 'sha1'; + form.parse(req); + + form + .on('fileBegin', function(field, file) { + assert.equal(field, 'upload'); + + var tracker = {file: file, progress: [], ended: false}; + uploads[file.filename] = tracker; + file + .on('progress', function(bytesReceived) { + tracker.progress.push(bytesReceived); + assert.equal(bytesReceived, file.length); + }) + .on('end', function() { + tracker.ended = true; + }); + }) + .on('field', function(field, value) { + assert.equal(field, 'title'); + assert.equal(value, ''); + }) + .on('file', function(field, file) { + assert.equal(field, 'upload'); + assert.strictEqual(uploads[file.filename].file, file); + }) + .on('end', function() { + assert.ok(uploads['shortest_video.flv']); + assert.ok(uploads['shortest_video.flv'].ended); + assert.ok(uploads['shortest_video.flv'].progress.length > 3); + assert.equal(uploads['shortest_video.flv'].file.hash, 'd6a17616c7143d1b1438ceeef6836d1a09186b3a'); + assert.equal(uploads['shortest_video.flv'].progress.slice(-1), uploads['shortest_video.flv'].file.length); + assert.ok(uploads['shortest_video.mp4']); + assert.ok(uploads['shortest_video.mp4'].ended); + assert.ok(uploads['shortest_video.mp4'].progress.length > 3); + assert.equal(uploads['shortest_video.mp4'].file.hash, '937dfd4db263f4887ceae19341dcc8d63bcd557f'); + + server.close(); + res.writeHead(200); + res.end('good'); + }); +}); + +server.listen(TEST_PORT, function() { + var client = http.createClient(TEST_PORT), + stat = fs.statSync(FIXTURE), + headers = { + 'content-type': 'multipart/form-data; boundary='+BOUNDARY, + 'content-length': stat.size, + } + request = client.request('POST', '/', headers), + fixture = new fs.ReadStream(FIXTURE); + + fixture + .on('data', function(b) { + request.write(b); + }) + .on('end', function() { + request.end(); + }); +}); diff --git a/node_modules/coalesce/node_modules/formidable/test/run.js b/node_modules/coalesce/node_modules/formidable/test/run.js new file mode 100644 index 00000000..50b23610 --- /dev/null +++ b/node_modules/coalesce/node_modules/formidable/test/run.js @@ -0,0 +1,2 @@ +#!/usr/bin/env node +require('urun')(__dirname) diff --git a/node_modules/coalesce/node_modules/formidable/test/unit/test-incoming-form.js b/node_modules/coalesce/node_modules/formidable/test/unit/test-incoming-form.js new file mode 100644 index 00000000..fe2ac1c6 --- /dev/null +++ b/node_modules/coalesce/node_modules/formidable/test/unit/test-incoming-form.js @@ -0,0 +1,63 @@ +var common = require('../common'); +var test = require('utest'); +var assert = common.assert; +var IncomingForm = common.require('incoming_form').IncomingForm; +var path = require('path'); + +var form; +test('IncomingForm', { + before: function() { + form = new IncomingForm(); + }, + + '#_fileName with regular characters': function() { + var filename = 'foo.txt'; + assert.equal(form._fileName(makeHeader(filename)), 'foo.txt'); + }, + + '#_fileName with unescaped quote': function() { + var filename = 'my".txt'; + assert.equal(form._fileName(makeHeader(filename)), 'my".txt'); + }, + + '#_fileName with escaped quote': function() { + var filename = 'my%22.txt'; + assert.equal(form._fileName(makeHeader(filename)), 'my".txt'); + }, + + '#_fileName with bad quote and additional sub-header': function() { + var filename = 'my".txt'; + var header = makeHeader(filename) + '; foo="bar"'; + assert.equal(form._fileName(header), filename); + }, + + '#_fileName with semicolon': function() { + var filename = 'my;.txt'; + assert.equal(form._fileName(makeHeader(filename)), 'my;.txt'); + }, + + '#_fileName with utf8 character': function() { + var filename = 'my☃.txt'; + assert.equal(form._fileName(makeHeader(filename)), 'my☃.txt'); + }, + + '#_uploadPath strips harmful characters from extension when keepExtensions': function() { + form.keepExtensions = true; + + var ext = path.extname(form._uploadPath('fine.jpg?foo=bar')); + assert.equal(ext, '.jpg'); + + var ext = path.extname(form._uploadPath('fine?foo=bar')); + assert.equal(ext, ''); + + var ext = path.extname(form._uploadPath('super.cr2+dsad')); + assert.equal(ext, '.cr2'); + + var ext = path.extname(form._uploadPath('super.bar')); + assert.equal(ext, '.bar'); + }, +}); + +function makeHeader(filename) { + return 'Content-Disposition: form-data; name="upload"; filename="' + filename + '"'; +} diff --git a/node_modules/coalesce/node_modules/formidable/tool/record.js b/node_modules/coalesce/node_modules/formidable/tool/record.js new file mode 100644 index 00000000..9f1cef86 --- /dev/null +++ b/node_modules/coalesce/node_modules/formidable/tool/record.js @@ -0,0 +1,47 @@ +var http = require('http'); +var fs = require('fs'); +var connections = 0; + +var server = http.createServer(function(req, res) { + var socket = req.socket; + console.log('Request: %s %s -> %s', req.method, req.url, socket.filename); + + req.on('end', function() { + if (req.url !== '/') { + res.end(JSON.stringify({ + method: req.method, + url: req.url, + filename: socket.filename, + })); + return; + } + + res.writeHead(200, {'content-type': 'text/html'}); + res.end( + '
'+ + '
'+ + '
'+ + ''+ + '
' + ); + }); +}); + +server.on('connection', function(socket) { + connections++; + + socket.id = connections; + socket.filename = 'connection-' + socket.id + '.http'; + socket.file = fs.createWriteStream(socket.filename); + socket.pipe(socket.file); + + console.log('--> %s', socket.filename); + socket.on('close', function() { + console.log('<-- %s', socket.filename); + }); +}); + +var port = process.env.PORT || 8080; +server.listen(port, function() { + console.log('Recording connections on port %s', port); +}); diff --git a/node_modules/coalesce/node_modules/node-static/.npmignore b/node_modules/coalesce/node_modules/node-static/.npmignore new file mode 100644 index 00000000..073cfe29 --- /dev/null +++ b/node_modules/coalesce/node_modules/node-static/.npmignore @@ -0,0 +1,3 @@ +npm-debug.log +node_modules + diff --git a/node_modules/coalesce/node_modules/node-static/LICENSE b/node_modules/coalesce/node_modules/node-static/LICENSE new file mode 100644 index 00000000..91f6632d --- /dev/null +++ b/node_modules/coalesce/node_modules/node-static/LICENSE @@ -0,0 +1,20 @@ +Copyright (c) 2010 Alexis Sellier + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/coalesce/node_modules/node-static/README.md b/node_modules/coalesce/node_modules/node-static/README.md new file mode 100644 index 00000000..ccf25740 --- /dev/null +++ b/node_modules/coalesce/node_modules/node-static/README.md @@ -0,0 +1,201 @@ +node-static +=========== + +> a simple, *rfc 2616 compliant* file streaming module for [node](http://nodejs.org) + +node-static has an in-memory file cache, making it highly efficient. +node-static understands and supports *conditional GET* and *HEAD* requests. +node-static was inspired by some of the other static-file serving modules out there, +such as node-paperboy and antinode. + +Synopsis +-------- + + var static = require('node-static'); + + // + // Create a node-static server instance to serve the './public' folder + // + var file = new static.Server('./public'); + + require('http').createServer(function (request, response) { + request.addListener('end', function () { + // + // Serve files! + // + file.serve(request, response); + }).resume(); + }).listen(8080); + +API +--- + +### Creating a node-static Server # + +Creating a file server instance is as simple as: + + new static.Server(); + +This will serve files in the current directory. If you want to serve files in a specific +directory, pass it as the first argument: + + new static.Server('./public'); + +You can also specify how long the client is supposed to cache the files node-static serves: + + new static.Server('./public', { cache: 3600 }); + +This will set the `Cache-Control` header, telling clients to cache the file for an hour. +This is the default setting. + +### Serving files under a directory # + +To serve files under a directory, simply call the `serve` method on a `Server` instance, passing it +the HTTP request and response object: + + var static = require('node-static'); + + var fileServer = new static.Server('./public'); + + require('http').createServer(function (request, response) { + request.addListener('end', function () { + fileServer.serve(request, response); + }).resume(); + }).listen(8080); + +### Serving specific files # + +If you want to serve a specific file, like an error page for example, use the `serveFile` method: + + fileServer.serveFile('/error.html', 500, {}, request, response); + +This will serve the `error.html` file, from under the file root directory, with a `500` status code. +For example, you could serve an error page, when the initial request wasn't found: + + require('http').createServer(function (request, response) { + request.addListener('end', function () { + fileServer.serve(request, response, function (e, res) { + if (e && (e.status === 404)) { // If the file wasn't found + fileServer.serveFile('/not-found.html', 404, {}, request, response); + } + }); + }).resume(); + }).listen(8080); + +More on intercepting errors bellow. + +### Intercepting errors & Listening # + +An optional callback can be passed as last argument, it will be called every time a file +has been served successfully, or if there was an error serving the file: + + var static = require('node-static'); + + var fileServer = new static.Server('./public'); + + require('http').createServer(function (request, response) { + request.addListener('end', function () { + fileServer.serve(request, response, function (err, result) { + if (err) { // There was an error serving the file + sys.error("Error serving " + request.url + " - " + err.message); + + // Respond to the client + response.writeHead(err.status, err.headers); + response.end(); + } + }); + }).resume(); + }).listen(8080); + +Note that if you pass a callback, and there is an error serving the file, node-static +*will not* respond to the client. This gives you the opportunity to re-route the request, +or handle it differently. + +For example, you may want to interpret a request as a static request, but if the file isn't found, +send it to an application. + +If you only want to *listen* for errors, you can use *event listeners*: + + fileServer.serve(request, response).addListener('error', function (err) { + sys.error("Error serving " + request.url + " - " + err.message); + }); + +With this method, you don't have to explicitly send the response back, in case of an error. + +### Options when creating an instance of `Server` # + +#### `cache` # + +Sets the `Cache-Control` header. + +example: `{ cache: 7200 }` + +Passing a number will set the cache duration to that number of seconds. +Passing `false` will disable the `Cache-Control` header. + +> Defaults to `3600` + + +#### `serverInfo` # + +Sets the `Server` header. + +example: `{ serverInfo: "myserver" }` + +> Defaults to `node-static/{version}` + +#### `headers` # + +Sets response headers. + +example: `{ 'X-Hello': 'World!' }` + +> defaults to `{}` + +#### `gzip` # + +Enable support for sending compressed responses. This will enable a check for a +file with the same name plus '.gz' in the same folder. If the compressed file is +found and the client has indicated support for gzip file transfer, the contents +of the .gz file will be sent in place of the uncompressed file along with a +Content-Encoding: gzip header to inform the client the data has been compressed. + +example: `{ gzip: true }` +example: `{ gzip: /^\/text/ }` + +Passing `true` will enable this check for all files. +Passing a RegExp instance will only enable this check if the content-type of the +respond would match that RegExp using its test() method. + +> Defaults to `false` + + +Command Line Interface +---------------------- + +`node-static` also provides a CLI. + +### Installation # + + $ npm install -g node-static + +### Example Usage # + + # serve up the current directory + $ static + serving "." at http://127.0.0.1:8080 + + # serve up a different directory + $ static public + serving "public" at http://127.0.0.1:8080 + + # specify additional headers (this one is useful for development) + $ static -H '{"Cache-Control": "no-cache, must-revalidate"}' + serving "." at http://127.0.0.1:8080 + + # set cache control max age + $ static -c 7200 + serving "." at http://127.0.0.1:8080 + + # show help message, including all options + $ static -h diff --git a/node_modules/coalesce/node_modules/node-static/benchmark/node-static-0.3.0.txt b/node_modules/coalesce/node_modules/node-static/benchmark/node-static-0.3.0.txt new file mode 100644 index 00000000..c6083ea5 --- /dev/null +++ b/node_modules/coalesce/node_modules/node-static/benchmark/node-static-0.3.0.txt @@ -0,0 +1,43 @@ +This is ApacheBench, Version 2.3 <$Revision: 655654 $> +Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ +Licensed to The Apache Software Foundation, http://www.apache.org/ + +Benchmarking 127.0.0.1 (be patient) + + +Server Software: node-static/0.3.0 +Server Hostname: 127.0.0.1 +Server Port: 8080 + +Document Path: /lib/node-static.js +Document Length: 6038 bytes + +Concurrency Level: 20 +Time taken for tests: 2.323 seconds +Complete requests: 10000 +Failed requests: 0 +Write errors: 0 +Total transferred: 63190000 bytes +HTML transferred: 60380000 bytes +Requests per second: 4304.67 [#/sec] (mean) +Time per request: 4.646 [ms] (mean) +Time per request: 0.232 [ms] (mean, across all concurrent requests) +Transfer rate: 26563.66 [Kbytes/sec] received + +Connection Times (ms) + min mean[+/-sd] median max +Connect: 0 0 0.2 0 3 +Processing: 1 4 1.4 4 28 +Waiting: 1 4 1.3 4 18 +Total: 2 5 1.5 4 28 + +Percentage of the requests served within a certain time (ms) + 50% 4 + 66% 5 + 75% 5 + 80% 5 + 90% 5 + 95% 6 + 98% 8 + 99% 9 + 100% 28 (longest request) diff --git a/node_modules/coalesce/node_modules/node-static/bin/cli.js b/node_modules/coalesce/node_modules/node-static/bin/cli.js new file mode 100644 index 00000000..632b112c --- /dev/null +++ b/node_modules/coalesce/node_modules/node-static/bin/cli.js @@ -0,0 +1,104 @@ +#!/usr/bin/env node + +var fs = require('fs'), + path = require('path'), + tty = require('tty'), + statik = require('./../lib/node-static'); + + var argv = require('optimist') + .usage([ + 'USAGE: $0 [-p ] []', + 'simple, rfc 2616 compliant file streaming module for node'] + .join('\n\n')) + .option('port', { + alias: 'p', + 'default': 8080, + description: 'TCP port at which the files will be served' + }) + .option('cache', { + alias: 'c', + description: '"Cache-Control" header setting, defaults to 3600' + }) + .option('version', { + alias: 'v', + description: 'node-static version' + }) + .option('headers', { + alias: 'H', + description: 'additional headers (in JSON format)' + }) + .option('header-file', { + alias: 'f', + description: 'JSON file of additional headers' + }) + .option('help', { + alias: 'h', + description: 'display this help message' + }) + .argv; + + var dir = argv._[0] || '.'; + + var trainwreck = fs.readFileSync(path.join(__dirname, '../etc/trainwreck.jpg')), + notFound = fs.readFileSync(path.join(__dirname, '../etc/404.html')) + .toString() + .replace('{{trainwreck}}', trainwreck.toString('base64')); + + var colors = require('colors'); + + var log = function(request, response, statusCode) { + var d = new Date(); + var seconds = d.getSeconds() < 10? '0'+d.getSeconds() : d.getSeconds(), + datestr = d.getHours() + ':' + d.getMinutes() + ':' + seconds, + line = datestr + ' [' + response.statusCode + ']: ' + request.url, + colorized = line; + if (tty.isatty(process.stdout.fd)) + colorized = (response.statusCode >= 500) ? line.red.bold : + (response.statusCode >= 400) ? line.red : + line; + console.log(colorized); + }; + + var file, options; + +if (argv.help){ + require('optimist').showHelp(console.log); + process.exit(0); +} + +if (argv.version){ + console.log('node-static', statik.version.join('.')); + process.exit(0); +} + +if (argv.cache){ + (options = options || {}).cache = argv.cache; +} + +if (argv.headers){ + (options = options || {}).headers = JSON.parse(argv.headers); +} + +if (argv['header-file']){ + (options = options || {}).headers = + JSON.parse(fs.readFileSync(argv['header-file'])); +} + +file = new(statik.Server)(dir, options); + +require('http').createServer(function (request, response) { + request.addListener('end', function () { + file.serve(request, response, function(e, rsp) { + if (e && e.status === 404) { + response.writeHead(e.status, e.headers); + response.end(notFound); + log(request, response); + } else { + log(request, response); + } + }); + }).resume(); +}).listen(+argv.port); + +console.log('serving "' + dir + '" at http://127.0.0.1:' + argv.port); + diff --git a/node_modules/coalesce/node_modules/node-static/etc/404.html b/node_modules/coalesce/node_modules/node-static/etc/404.html new file mode 100644 index 00000000..147aeb10 --- /dev/null +++ b/node_modules/coalesce/node_modules/node-static/etc/404.html @@ -0,0 +1,23 @@ + + + + + + +

not found

+

don't worry though, it could be worse.

+ + + diff --git a/node_modules/coalesce/node_modules/node-static/etc/trainwreck.jpg b/node_modules/coalesce/node_modules/node-static/etc/trainwreck.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ac85b6357eaa21c26ff81fb101a927c6dfb89e87 GIT binary patch literal 543733 zcma&N2~<+;`!2ju958c0C@nQqM8WKJ0K?P-a{$8$O-swy)KqZDApTB*);i~`bIxY%y*6v_&A!?DdG6=BuKRj6 zo^Q+mYOc;?X8;5O0VL@M*mwZrTJQZe z*|B4X##Vi#zAjQ*cZcqV5ZI)sh?O4$f%JimUO)!`KyuPpK>zGeR~d0LA~@!yfp7?)pq8Pd*7NQ$$7fzJGo-In&_yZ}WwKqX-jkxdWEjBXQxK3{Ktl<>Ebk?kT1_8UFDLtGC<@JD?Oh%UbyW zh*J`<8OYv0CcQ#QuT?Nz z$WhP;+yR$_zU4V-hhwva^1)>-wtnaPTcW-T@cKzDfIXcGXz>+docDy2!T5-vu(x$$~zxGRuK;)mDj0B>-{LT>>EVYYmqX z**l|I!bcHwX-NQcqKqAUdI)WSf0R@MbI6OlPZY~utBxu%x^XQzjL~?3KahjRF~$k* z)i>lFs!e5;-(AZG9i2wG?2|?EmDI;JNCQp$U4X5tr9B z()uXC=bzo`>6`yP;qUsd&e09POIAr1Ir2N=aet>udwP`?34VC;)7gdb!p|HAmucpd z&>T|7JL;a*>02j>HM#QgZ~M6Vtq-!u7@>l!An^$9GVQKDY@!hm&?9BdkLECY95j?{f-TIUcqW z{!vHcEVN_#nVWGd`|cc`KBY0xgB34s0CQ(~RLKVLeaHOe+kgMcUk&8Wjq``HOm60{ zy6?L%*zNTSTeV-tpqNP zv4YWh>o{*bG~)99r$x2nQ~ZqQJj}wN7yZc1LMTP(2a~CYaf<{hQWl7E!!`rEB>|1HU^v1d0J7WNmZQer&@BU zIAjC3gRPmLVQl(H*Z@9WG`h9{Yyb}vHh>{)_56(D+Eo4qU_7+-Rq0>W8^FT0_5Xf+ z7+Zh4(_`UG&jzrzZTZe^`Lx$BHh|CKzh1sn-2nPiH-KT>r@Obc58Ftu${k5lSN6>M+P^5Xxp=YZUz2)d~X9N{m(_%nm=DQfIk7!_4@F=`oDY6 zym_<%G+`@7j!SQ~G%1beAnj~DUBf;#&i+sA&<5Z=5|rQFDGlRXA$_7m?XQpK8^G_) zsXy9lH-Oc3`#-JYdG+-P>+662Y5V(o%h>}X^J#zHZUAH3mPgyLrQ5QkK{R7Oz2DP1 zxMm`a!k@M5_(K+u-p&MQHikefjL4H`EQ_$QbHu{ma=6;3uXmuX1dNLcf&!c>(t$ zJ?}-mqxLXE_8%Hy)iuff6A28NFXv|9=1TPoLMf`a*Jh`^=Nv10@dx|v;8f~q2XeDXn%IC8iy0wHw)M5e;6qY zP91O0?icOU0OA6v(oR$sQXo!&=#yA0pWL*c(86t5UY*)O$u*_ad-LUGCu<5^%?d~j zB=eO(QjY;_Id(6NKcA}frAJbTai@_!xf+y(v?Y~lYPFF0;0*o3w+Mj7Aoqd&_@ILF zk&hbytTqoVllzGGxpR>IWf>jBc1lr%Wd=v~0~$~?5rXF*4X`- zbh{z&wm5h4tT;*bjy%BkvdmliIOL(z_%EOw%yWMYcyM8(C=EpRili)4_}i1_aP06* zQtf6wJM}bGky9|;6>DCB9aScSw?(a3?u{^wJoTb6wpV+6@9_PswE?CEbN+@M<*7Tr zjuCpYrb+KH&Pq{JWA)(V*vRC+q;w+EQ*ig~b``@Ld9=kF`yV7OUI_#N5LroM%ZKP3 z^nMkAY$v?o2mPmiTq1hPG2ZF#$UCdiw0yg^o9-ZM+`nzVV&I+yp%VR zIIKVEzN;Q-dQh5Dy1gxY-+>4mii`)m^4Wdg)>aUjusuIG(kb5Sod%;Y_mTYVS3dNk z>uz@-Xza;PtDf(Z#QA1?END4osf&J%c|~ipn}e zPrjEL%P#?|&|z2=SWvInxfRw(o9A?E&UceNNM;mLi9U;VQ3x#ymfH~>GTsTx{^Vs7%)i}<;A&odKJ+T>RT3qnbUx$Ebw+?c$s!ojOmi*fS3+H&Hai{TM@~z))`FM9055bL&~FLma8>m^&!ZRe4IgZI{P~R=Xuy0t0Fx`G9vz} zh$O00iJ`thIu=k15j%q&C{Hgv`EiYru|)b{GGMk~7Lq>& zf^#y&hAG{FEq;xoi);VKoxdBJpJ04SP)>Uw0&6vsUNr=0B@n8ZhxVyP3>9fgIK*71 zRD`w|6LvZuj_@=P8T(}L$UVAfqZ>Uf&~UBQz$s8RK<(rUMaKHbaM-YQzJy&@P)02( zKg;uU$owWS(pPayI?G#6S=L1M3(RF~S;oGu}Bp=DaU6Nh_|Z zz2kiDj33KMPaZE=Dr3bVYGF?aB}-)djM!KT29vZ0>2Zi5br!L#w8dD$R#uZsLJkZr zxmqAr+>jZ0U+PiG0xv0iBa^u#Yu@L6v`y$Xx>B~K!5^BiM?juSZqW_O7ug~lXM))! z)=-oC@?jqTPnBQ z{CiE=ACm{jRk6{JYW*ufa6({4AOyJzt3@fN(Fog{#gb7tSEB;F+4tv!)f7R77T>X0uCO%Ys zq6gLOxS}kRx`nk_*0t`)ryHHlhk?l z7C!QJO`hL%84ad*ogwo5C*J)_Jp_S36}51Ky8?6z&`?{Ytj6&Zj}u#->S5F%>QD@C z)!Vxn4Ti#}M$NCUO>a8LjBzPB%;ZJJ9UGeP zy?B+624FcT3;KEL*!@z^qlU_D7Ll78*W|M9lc~xz!OoEeX&2la>r)AKvjvA5m(L$j zHsffyD}HnfSU8Ce8~MkX@DSf{hQ8o;+>p;NewLo9;dwz0BO4@$QHGT0MjonKkUJ;; zhMSGd#vK_;xp30zRm_V&lJmg)?JEufS2fns{xeZj(Z zz0PJxxVocFKl2nX)#5NDhpX;vH3Y3p2Ps%!o;>5rP+K3GkD?iI2d_ltCRCC6 z>skBQf(oap#>|LSTFAdcA|pb%lM>b!?o9*kuhS!bZmmPeIt~#|Ev(y_$=7)Vglo9y zbyph4TIZb zF3l^bRHx*<=vpI5nTtA!!dhmlvIrh=`ZVDni~$Xcb1x&ZRy@E?NhOGK+NrZRNgOFY zXhpLHNf=Byn3E9*E{lUzhva;3an!Yl?A2ffP7u;j-R%nMxOWD;WqFUdK!P2 z%byP}AUr_~W%kWtZ)oR!ZNX5s5siAV)gjDPa#@CWS5O}x7_=6E$J1|=(~#wIdTQ~~ zv@2ji@Cs*Z?No5WUHBeN6J2@cs}m13i^GY>=UFe_TbY} zitnB%j*9-*B|#0i*7oeT$`z~4{VK)`k^yVapq4dx-czs{*buEV)^k6CfUvgFW*>ym2T{n&ZrlFv>4 zLy+cRg73O%VL-7K#LIqxRlSW`GQHZ&Fk((Ox4P+c=vrci6iR$V#|e?1 z@NS8b6f-5{?2jOsvK8>zbz9ndyrfUPeAMy!r>05(M9;BXbPA}3_>=sg5u1u1Z}LQ_ z&m`5s3Y&YG`p&6NxDh?fgrfNrk1*kSN-k}reF5E&)Wj4d_KBGR&n5cgUjB!P3cLEAb1zTqwxLpFz^uG=_ZvlYZL2mS&(5I>+L(4}akJq-379>abG?CS@ zdma!$1TAe3nYuL`)KLpLmt6Bg7>jmLT$1G81vMVPbCe3rFpPn>|F6kN3YtcPC@Lc> zBKzNaA<|CD72&n1CTy2a?k}_9ugj%k)?f^+#xaYmvFk=2QebsRhx` z6n>0+OfG*$Mg|dU^XVW=XX8TsN3dv1Rv0l-)qtf`{@Fo8mmr~UF=I^eTtjXA&c95qM38&d^2BK)iYFT&=YJ!^T+ZD)|~$Q~*izOZD>^m!oL`7W?_&Wa};xO^<6;1G)O^O0>&gKl;5&LX(4LNd!adIBo}9+(TQpv}T!F_mwpLX+5`&Hi0-J)q7Z?Mc#$zBE6fg zgVvIUvb%>fK0}c6wMV|0F6mL-mA}@FZt|7&1WDp40AO>+>jRla+oS=6i|85f)ChPIz!7S&gcp!lX3{xcH@(GYFzGn&Ue zdb?;(o1^l9^2>rftNn_G#6t%H@x#Rz&y~pz%jV;pnp4mOe>G24L~Nw3=aEA`y0Nxt z#*O<8KJH>Om=>v{F;yqdP$yt8Xlw*Dl;cio`@itD{{l_je>c?kiAjop%3c~3Il%P* zq(gVEr0{F*Fo$hP3W^V7pJm0)g!(bTEBk>)yZR)33!1azwlHGp{1rq#d{*9^N3#g> z{;G2iH&^MF#Ft5`%@ppKFCfS=VI}$HBUdX}D~LD}L576n`DAFK*y*V&fe!9ud)~6p znnkm4+!l-ZL?TLPp)3NGY{2tY$mSiXR9qDsOU0py!aNfpDoIl27|#3B_eh_u(d(CO zM&biZk?~-f$+HsK)j(M(xKWm>H<<)8OE)RY|B61qREIG*2E4Dcfn~F>Var*uu``i7 z&!5bZbi-eNYf;zIYLPjMTNtD-|MsaZlUzm-Ke^|vu)L7LmyXWDXV}W?+T)G)kuLOQ z#1n)0Vg>W*E@C+iWXf;cC3qXJd3$s@Pw|m>%Or;iuGk3tw#r45P zDZM-|ojzD)v}YcgQlQU9E*W(j%RZ#zy8cxe-6=c6iyYtFo?cy*hZsHZq`^T*;M zSDu_F)}ns*U*WU#n#or|gp5_E>eqrCvQ~Y70sAby&=@2#1C&c^`9@_tYUV?E8Ub)d zu?x(#e)%zFq=kqb@EMMCJeu$X^lK<*wE}iSHg^ah&!fr+no_Q*8^`n@fWuMce1d{B zB5nqAYNUW6m4kxWY=l!1pRE!{`Is!2fK`IWivdkrZ)m7!U!Cze#cxea(J)^PnQ&-V zlMjEuINpgmspn@U2{4Kw=)Bv0_rm+f%!pHl#uldm8(;UYZ%4;iuo*SNqm%``a}Tp( zV902VRo2x6m;E0ZQWUkE>ibsk#mY4LK^`*3z|wEikvs4>XucQY%PFRM zTk2m;B$K9m0G-C|W4{UFt7+NLtL2fU?{!G;o9m7+C1k!45NatU^lU8SAtdxx0Sq?~zcTZ;&_iVqtNp1n5uJ##p4$Cy%_} zbl}A0vE3|8QZ3kV9J(jr(j}#XuGD89u!c3a_=%UBl=ja4n>x0=F3~7a!LT|&7Gybb>r(rB z#yl#Cb&&$DgsYv>4re7rs6k{vJz9KEIii*VhsX>(xfHE75wBqBzSiw1aJ`?JQ+?>m zsGORu=NY|qbF?|T4C?H_s=Ho2a+%m5BkvnP*(Oi9fx}ACL zl{hE*V1~#YdtEnR5Gr#{mEQAy8*LA73`VKz)dmq>9{O}!xsaKIYQ|o~ZU0)x2r;@1 zk2*0TFhm0(24YZZSk0u81Ab1lzXn#AsZr8rd%%Ti8FNlMfUl^=wjEQC+NzC4Uip{3 z`QY|&O%T5+NXBI_!~f%zn*qL6>&m8w@^`@8>v~SWO^n#7s^Z{1mqyp16I8M-bKk8f z{`K?0Fp86nPptn7t@OoA!Y^N+QZKKMG{_*V=>I)kWtSz@JD;g3=V-7_48mp+I0>vdCOn9xnFCG;GpNy zeJ|dZp23s@+CgF@xip*ak5Yxr#F{+l2Tt+1?%G7YxdIdSPF zBap=k^G;?DVrPun@caZf1B3Yrz%Lsq-W8Vve^Z1#O^JldH*!wSEF>QA3vURt&zkr~ypYvcxhloiN~(Y)h=AD2K%b zLRNnblfGM^36Hq$=tr=67Y%pY(@Fe~sxn=tGe~6`<;n0jnt1pU|JyG=mg?DwLXvu* zCnARr!PrU#B~Q>ne2b!O*{ZucD8o{OZPbr^NSIQo0VQ=y);qw@#;;bNrVc;t2pKEU;G+}({9=iaywNd zs$vqOc>F`4k+hL_#_fvcIO&Roc(3YAHX^&$NVaq@TIPUtX>D9a#{LdlDnklA`2Rt? zV5NA323T4PiEZJ1snebjqqCgBzr5qg1u(uMIHzTICzlE_FoIPwr^`UpkR9qIsCOTD zy+y`d!B&K2gVbSDvUf~`q(1QQ7Pbl=yGvjn6BKNMy0z;XVFM5!ODT(r-jC2w*Ttxm z+&yYq{})3!NVIA6)Y!?UPSGvefyehDvidi+`DWg|{H1GA5i##VyOwh{>Kyj{3I2U5 zU?A2Im`%v|dP7mc%}2Vvrnse>KlhFvzB@%m#W`A4k1bdb>n^SmolGpQ34KHSM|X`J z_BMsJze0{1EnZ3Z_z6}>_UYvf&|}UIRx^kjfN#V_BabyTt2%~-swD4j>a*~rp#`vn zxa53dtx=hCll!Rk5vtAqSo%TvrM1*b4tXZ2Ve{Wdw(h1ME&TXFQF3$qWY2DT{KD^t zX63bjS+`(zQHt zpq)p9M9Z6N%-8I!nk$r!p+>)+jkO!o7+aO{Rsxk{Zcq0yU#a7E)kwU8t58%a{Dd=3 zn~tLU7!(L>&l0C7s|91kN${PB$oyC^i@JDwx=^kN@Yo@xfr-C4ll&N4DUqCOzd)U( zgUHYX_{Bw2($t>ff4@Pi>?O>brpBgk6~U@eqvhwr*IP21ie!$th@whvnc{9>4AGjr zt)2(N`bG8esz(ogp7^NfXXp&F=XC{^4X32NLB^0urP6Qt`{S2B_L23_W{6S$Oyj)B zXL&S}|C?U^U-;|ZflPHVsnni#B5boYLS^K<_Bd0+-3$Cpmu7(1XaBkStrk!eN(mRR z?5&760a+&J%rP*$MkbL+(9+krT%zP{93gSaU zhvd}A+4^0MIao$$9(ouePRhwMc_d>mNE zg7H6POh%EhHP4MV3(1<5F+1JQba|Re+v?HZO}4G5@UjE!vBa=#&pTsX>=ug0KQ%iY zw<6fpRi%v?foJsv(eq#4{i0Ka|)w8&rB0R4sFi1WXM@>@n}~@6NX~`p~I1n zG)TC|#fK-_VJ`7<+mBsq7hHU3k7wP!G0JX()d&4qix`~^&GxkKhF#9Y;48%T@jhmb ze_IQO#gVtL&J1#08@qy2X6 z^9hBg{HB6*)fD0TGlvpR`wn9uQQ2sn_ghc1i$`PUkevABhHh(tO?*9=zwD7R)b4dO zvXxMfFUcBix|E!V$w9ftDzKi}9%@&vPo-|hljcSSw>Jl|$zjt5We2v89j)DG<@U+T zzAkn%;Y3DP{m_;V{onYh?p{zc8WRI%ox z>sNDCZ?By9(a}rA)xOGq=%IK@J=)kj!*#c9r8b#*8)aQLw%`COtnyS&!<2t_qN6n| z_0zo&%SN~B4>{zZ`@yHAMHasaDqurGDH^oxc~+~;;ZQx){Y{PBQfBzIiq?`l9;D}I zx~oW0TM0dRk>0hNTZ|H7>-rjP_WNE5e8V71R8y|F*>Y-zrk0lGFB~6vth!Sdw0JT|Yldyze2*AVyrdo1>rm8V zfUATYbSOZDpl;bYF82Qno0s=-+B7`&_{{xCv%YpF!4Srh|F;pUjkVmlB{px{8Stj$rahe*eWfnPZuN4 zb|0avV0 z{AC^zaqj?SrzBMrn!wR7lcx-2t6A&RlM1q149y6oyw6-Pkt<>Ark)jJZW{fGe27S{ z8IUKZnppX2EEWj@3Y5fa`7!h%JbHS}o|OldjZC zKv^7|7|^@8C&yJ;pa70@4FCgX#)W2_!omi+Q3*-bCfCuKYz_P?btK^RPMjZO~* z^s_qK3iJ%%N>S^`xh&mOZ}!VsS2>j{|3Cy=$2aeSU3oN+;L_Hhs9UXQ?zpK~M-OA5 z&)-7nf)uPcbPMz$411VN)0PQAn{haswq$=c=BNo<1^MjjkI80Z1*UpGEa8abz@KV+ zT=?8kYB>K4@kg+dt+H`INVC!F5v?Ay^&>qOjIAMH4GJaA^5JBS%jq=~W zynV|C5xOS5iVS8Vb1iDL^<)3YmX_|su(!O1$XNhF%&~I z?;XbN|KcA|Kg=_RiPx0!79Q33EAcw*vGcVf71_>F3R z4#@e23i!}r<8GzY>sobxMDIs`v~-~JhZJCL|6F13bA$-jis@u?o$B$Y=$EqjYcYlTWejYmejS2okyR=1lcg#KnvX9h8ZV&N|S{xc%aEr3&0K6oMrBIQl|=7j>JQuHz(Q@g1%{XG8?$3>>bl z;u;ab#Op@%1T%at-Zc0oh#vts9LMaE{>qo_v78|_O4%&#P~Ac!ZH|kmw>>+be*4x% zK2if3(q?kV%zjzxU_YKT_1R_B;hohZ(`M}n$6Un!4_<6qYz z5~8kj;`SCu*=v`>GdA2zY*Vh-Ed+|gW+5>(}uo~j$xfD7BT zlb2{5RoJA3h&3te%Bp$2-@;P7=WYB8FbSvIvv7={DZ$h%aY_$@xzo(kdl+XPs(x## z@VXk<&8vIbvz zZxv-4!{*9EnlQV5pK&|p4%PNiT=D-2yD6$uq<}Mw2E_@}EhFm54Tai*y-!mQY#)GD zwFWJ_ZAyp%5E_>KntvjWVW}XzWd$pD$nSq+ni$zns7DI5=6sIV)f3pDZ`!{`f}nBa z|3ZWR&1&)6FA6}<49W-d6}09H%e)gT@Sg(b{LX=?OjMamE-O}69sXfZTK!l2#PXUh zR1U|z`_5;mSnii62oO#?bEzDo`7V;kh#o7f(Et~?+T?v%(3R3!W*}1Y6UiBcz73l( z+l&SVhCP_Sh8#1%Lrmt>a3#YMc3s6ODVM6OE-9BsBl>ccjuf!I_A=s8(mLl`7BvCv zm*2x9>XP@OCv%knTWW#9gp{7G_U3v!P&o2vLdAChpli=t(PEf9QnTSXn9IW75H+=M zbJ;yDL};ovcwoJjtY8-T5S;vpM4kyv7I>EEcOigOR&08#{OMr^#CGTd^4ks`LAkF_ zQm_v{&!x$ekmKp6)F)Rwp6hpcLQ1itiu$(R1SIbOMBh9xU4d59!X~#so1C0ZtXKBO z9R^u9sE=-$uA1fm=H@Ki#j_qK7`h}QhMVr?c5RYgP`bH1e_x%!nhfS@1v8iHN33reg2O+Kd17L|Ae|*igbso0e2_TO$d;U(|J%b0We7nLIFzf+!Zf&K4fza z@`SdzOJnJ6H{L(SL!Ef{_-(o#f)T>XzKK*EPp-Und`Sy* zp*DksGAMf%<3DjBex1)&EMPr3ytv1?SaKx}J)MN`4XEFf_xTt2U`wzEA_4Blr)}Ns zM<^ZFD3clU3T3 zx~RUqQ9Hq{CkP?Lz`DBR#*~7fwP#&-*!PE9<*tgL2`>a8nCK+k}H# zd+ywcJ8HqHBQ0Zkep*F0v43jb?PeO03WFJ z_%a?%LFXTnry#S?btz_)rbh->_O`V4nj>W&pF`&oV3{XZ$jAisKz&-!s#eS9TjeyX z%(_{g)6DE%6JbdOwo(zrMFACJYpE|gQiO^{p@quHD;~BEfl7HnQ9(dfI91I(o4)4(?y~Uj@Zdx&gDaRZK;;6en?gi?DkU>f` zs$(AqqhCix2y=aQ?u3;i%Z7`eBOOBKi%dakAuC>YrZ`4Bu=+2Q*qa^hQXm>XJ&#Wq zp}`ryJS(D8hR)Z8lJk zqEA0u!t-R4C73%uK1CQ4GEnsTai1AWj?`w+z3=0!h;TPHm+zyS*~GDgUs??R%k(3# zug6rqKudJ2Wesy&T<5IL@~M$+F$!`igGv~b(4isuBNqCGwYBVqI2 zD`Ds4$0i|^0~g#dN>>;P`t^xRX^-8(wu>%Fy!mdAF;)8h0AE5?K~8z3zUMuk=BJ_a z9v9V!#QS3ylUZmR zt|l_h`O?tD863eUG#{2$a_-s1-Yn(pRsU|80W@?w!Xqvque1YA)7oZPW863ArcigVRh2 zZTMI;0jybzfQVC^XZO;CB%WhBNXuFvi?3C7%=NA$iEyVSg&_Il6_S3EI4L){%-%in zA-<#q`Oumb_@#=Vp*?=iS$W$5WvAV=fM1~kOjBM;+#Y0PSq;mj>bGjo#@J_Y5 z438|d)LIg+(NQ7VnTOWHpp?J2fWuGx8I@e@Eq}m^nG$N&I?5s|L`egRS^{%G8*1wv z#C$74Ak|1r5n2NoH?_^70Ff7VDeAL+5n1@HMkuw_AO>M`nFTtcq#^*oG73;d$WuAB zB(JwSVCR*7*C%I)^(YU)|4FgZs+5W}&l8qN6s|1x1vIQMt^UdBA*e&G8amsrj_eV_ z%UfF(-6H|J~R@WG@Mja_vwk#E@ zWeII_BMF-m(fh7;edzWJv3>PF24jA-yvywG_Hd7Ue8~ zkZ$wM`Gf|9*qQj^TV-*&uRA#pvlV*d5%$^f?w|%`MO@s~g{7t_E6*UuD_e;9s5}4;lR?42aDHZaYGS->Y|yrWn#rFhA497pdQ?rkKvVN4y}(>T{w) z{_lNb03}Ane6HJjcZ#w4GTrA+_IA=Q?|;|TTl0A*7|CLDx~pgPRn1R_CP!o9JX2R4 zvZ6gIcytXEnfLiALQMF8(9+kxek7>2JnazFyLY|mTxsatfVXP_HOjloR&e}hDNKK^ zdwl@)`F+BC#>ww)mowJUdIZMv`5RlKkJ!Y9!ggEdx%r>?!*0BgAAzQ%Rht|-UOnNz zbB{nOU!ySh0!MWrR$~rv90hopli=~7q5I=&9v?7223_0R(6{ddzO{aCfokR+OQ